How to Find and Fix Circular References in Excel
Excel names one cell, not the loop. How to find the whole ring, why interest on average debt needs iterative calculation, and how to tell a deliberate circularity from a mistake.
Excel puts a warning on screen, writes something like Circular Reference: D42 in the status bar, and leaves you to work out the rest. That single cell is one link in a chain that might run through six formulas and three sheets.
In a financial model there is a further wrinkle: some circular references are deliberate and correct. Knowing which kind you have is the actual problem.
Finding the ones Excel will tell you about
Go to Formulas > Error Checking > Circular References. Excel lists cells it has flagged. Click one and it takes you there.
Two limitations to know about. Excel typically surfaces one cell per loop rather than the full ring, so you still have to walk the chain yourself. And the menu reports on the active sheet, so on a multi-tab model you need to check each sheet rather than trusting one look.
Walking the loop by hand
Start at the flagged cell and use Formulas > Trace Precedents. Follow the arrows back one cell at a time. Eventually you arrive back where you started, and the path you walked is the loop.
This works. It is also slow across sheets, because the native tracer draws a dashed arrow to a small sheet icon rather than taking you to the cell. If you do this often, tracing precedents across sheets covers the faster routes.
The circular reference you actually want
The classic case is interest on average debt. Interest expense depends on the average debt balance, the balance depends on the cash flow, the cash flow depends on net income, and net income depends on interest expense. That is a genuine loop, and it is the correct way to model it.
To let Excel solve it, turn on File > Options > Formulas > Enable iterative calculation. Excel then recalculates the loop repeatedly until the change between passes falls under the Maximum Change value. A hundred iterations and a maximum change of 0.001 is a common starting point.
Two things to keep in mind once iteration is on. First, it applies to the whole workbook, so genuine mistakes stop announcing themselves and quietly return a number instead. Second, if the loop does not converge you can end up with a stable-looking value that is wrong, which is worse than an error.
Telling a deliberate loop from a mistake
A few questions that usually settle it quickly:
- Does the loop run through a recognised pair? Interest and debt, or a revolver and a cash sweep, are usually intentional. A SUM that includes its own cell is not.
- Does the total sit inside its own range?
=SUM(B2:B10)written inB10is the most common accidental circularity there is, and it is almost always an off-by-one when the range was dragged. - Was it there yesterday? If the model calculated fine last week and someone has since edited a schedule, the loop is new and it is a mistake.
- Does it converge? Turn iteration on and watch the value settle. If it drifts or oscillates, the loop is not a model, it is a bug.
Breaking an accidental loop
Once you have the ring, the fix is usually one cell. A SUM range that swallowed its own total gets bounded correctly. A balance that referenced the closing figure instead of the opening one gets pointed at the right row. A hardcoded plug that someone typed into a calculated cell gets removed, which is the case worth checking first because it hides so well.
If you are not sure which cells were typed over, a hardcode scan is the faster way in. There is a walkthrough in how to find hardcoded numbers in an Excel model.
Doing it in one pass
ExcelSurge's audit finds every circular ring in the workbook rather than one cell per loop, lists the exact cells in each, and distinguishes an intentional interest or debt circularity from an accidental one so you are not chasing the loops that are supposed to be there.
It runs inside Excel on your own machine. Nothing about the model is uploaded, which is covered in detail on the security page.
Find every loop, not one cell
ExcelSurge lists every circular ring in the workbook with the exact cells involved, and tells an intentional interest circularity apart from an accident. 14-day free trial, $20/month.
Download free