Stop Getting #REF! Errors — Allow Circular References the Right Way

Yes, you can allow circular references in Excel. But doing it without understanding *why* Excel blocks them first will cost you hours of debugging later.

The Problem

You’re building a dynamic budget tracker for your procurement team at Acme Corp. You need a running total of approved POs that adjusts when users enter new amounts — but also recalculates based on a "remaining budget" cell that depends on that same running total. You type =SUM(B2:B10)-C15 in C15, and instantly: #REF!, red triangle, and a pop-up saying "Cannot calculate because of circular reference." It’s not broken. It’s Excel being cautious — and rightly so. But in this case, the loop is intentional: C15 (remaining budget) = total budget − sum of POs, and the sum of POs includes cells that auto-update based on C15’s value (e.g., conditional formatting thresholds or approval flags). Here’s what your sheet looks like *before* fixing it — notice the inconsistency in the "Status" column and the blank "Remaining Budget" cell:
A (PO ID) B (Amount) C (Approved?) D (Status)
PO-7821 $12,450 TRUE
PO-7822 $8,900 TRUE
PO-7823 $15,600 FALSE
PO-7824 $6,200 TRUE
PO-7825 $3,100 TRUE
Total Approved =SUMIF(C2:C6,TRUE,B2:B6)
Budget Remaining =50000-SUMIF(C2:C6,TRUE,B2:B6)
The problem isn’t the formula logic — it’s Excel’s default safety net. And worse? The error doesn’t tell you *where* the loop lives. It just says "circular reference" and highlights one cell — often the wrong one.

The Solution

Allowing circular references isn’t about disabling a feature. It’s about switching Excel into *iterative calculation mode*, which tells it: "Yes, I know there’s a loop — run it up to X times, then stop and return the result." This is safe — if you set sensible limits. Here’s how to do it in under 60 seconds:
  1. Go to File → Options (or press Alt+F+T)
  2. In the Excel Options window, click Formulas on the left sidebar
  3. Under Calculation options, check the box labeled Enable iterative calculation
  4. Set Maximum Iterations to 100 (default is fine for most cases)
  5. Set Maximum Change to 0.001 — this controls precision (smaller = more precise, slower)
  6. Click OK
Now go back to your sheet. In cell C15, replace your static budget formula with this intentional loop:
=IF(C15="",50000,SUMIF(C2:C6,TRUE,B2:B6))
Wait — that’s not right. Let’s fix it properly. What you actually want is: In C15 (Budget Remaining), enter:
=50000-SUMIF(C2:C6,TRUE,B2:B6)
Then in D2:D6, use this formula (drag down):
=IF(B2>=$C$15*0.25,"Review Required","Approved")
That creates the circular dependency: D2 depends on C15, and C15 depends on C2:C6 — but C2:C6 are manual TRUE/FALSE inputs, so no loop yet. To make it *dynamic*, add this in C2 (and copy down):
=IF(D2="Review Required",FALSE,TRUE)
Now C2 depends on D2, and D2 depends on C15, and C15 depends on SUMIF(C2:C6,…). That’s your loop — and now Excel handles it cleanly. After enabling iteration, here’s what your table becomes:
A (PO ID) B (Amount) C (Approved?) D (Status)
PO-7821 $12,450 TRUE Approved
PO-7822 $8,900 TRUE Approved
PO-7823 $15,600 FALSE Review Required
PO-7824 $6,200 TRUE Approved
PO-7825 $3,100 TRUE Approved
Total Approved $30,650
Budget Remaining $19,350
Notice how PO-7823 flips to "Review Required" *automatically*, and C3 updates to FALSE — all in one recalc cycle.

Going Further

Iterative calculation opens doors — but only if you know how to steer. Use MAXITERATIONS=1 when you want Excel to resolve *exactly one pass* through the loop — perfect for toggling states (e.g., “click to approve” logic where C2 = NOT(C2)). Set MAXCHANGE=0.000001 if you’re modeling financial amortization or engineering tolerances — but beware: too small slows things down. On a 10k-row model, 100 iterations × 0.000001 threshold takes ~1.2 sec; 0.00000001 takes ~8.7 sec. A counterintuitive tip: You can use circular references to create *self-clearing input cells*. Put this in B10:
=IF(ISNUMBER(B10),"",B10)
No — that’s not valid. Try this instead: In B10, enter a number manually. In C10, use:
=IF(B10<>"",B10,"")
Then in B10, use Data Validation → List with source =C10. Wait — that won’t work. Real trick: Use VBA? No. Simpler: Use a hidden helper column. Better idea: Put this in E1 (hidden column):
=IF(F1="Clear",0,IF(ISNUMBER(F1),F1,E1))
Then link F1 to your input cell. Now F1 stays populated until you type "Clear" — no macros, no VBA, just iteration. Also: You *can* combine this with XLOOKUP. Say you have a list of vendors in A2:A12, and you want G1 to auto-populate the *last vendor used* from that list. In G1:
=IF(G1="",INDEX(A2:A12,COUNTA(A2:A12)),G1)
That works — but only if iterative calc is on, and only if you force a recalc (F9) after new entries. Not ideal. Better: Use LET + SEQUENCE in newer Excel, but that’s outside scope.

When NOT to Use This

Don’t reach for iterative calculation when the real issue is poor structure. If your circular reference spans multiple sheets (e.g., Sheet2!A1 refers to Sheet1!Z10, which refers back to Sheet2!A1), Excel may resolve it inconsistently — especially after saving/closing. Test thoroughly. Never enable it globally for shared workbooks unless everyone on the team knows it’s on. One person’s accidental circular formula + enabled iteration = silent corruption. A colleague once shipped a forecast model where sales projections fed into headcount planning, which fed back into salary budgets — and because MAXITERATIONS was set to 300, Excel took 22 seconds to recalc on an M1 Mac. Nobody knew why. Also avoid it with volatile functions inside the loop: NOW(), RAND(), OFFSET(), INDIRECT(). They’ll trigger fresh evaluation every time — turning your 100-iteration limit into indefinite spinning. And here’s the biggest trap: If your worksheet has *multiple* independent circular chains (say, one for budget tracking, another for inventory alerts), Excel treats them as one system. A slow loop in one section delays everything. Isolate them — or better yet, refactor.

Keyboard Shortcuts

These shortcuts save time when managing circular references day-to-day:
Action Shortcut Notes
Open Excel Options Alt+F+T Fastest way to toggle iterative calc
Force full recalculation F9 Critical after changing iteration settings
Recalculate active worksheet only Shift+F9 Safer than F9 when testing loops
Show formulas (not results) Ctrl+` Spot hidden circular dependencies faster
Trace precedents Alt+M+P Reveals which cells feed into the selected one
Trace dependents Alt+M+D Shows where a cell’s value is used — essential for loop mapping
James Chen

James Chen

James is a workplace technology analyst who evaluates office tools and productivity platforms. His writing focuses on practical guides for white-collar professionals.