Forum Discussion

Marius-7's avatar
Marius-7
Copper Contributor
Apr 18, 2022

Calculation using the IF function

I made the https://tuiasiro-my.sharepoint.com/:x:/g/personal/marius-stelian_imbrea_staff_tuiasi_ro/EcSuAMfDbrpMqPhgKrNi8ncBf6CwTwOLxdl2XFg3FObQ_g?e=Gk9ZSN to determine the indexes of some utility meters.
To determine a value for recalculating some consumptions I used the function =IF(ISBLANK(R$3);"";Q4-P4+Q4) which is marked with a light green that works. But I would like to make an improvement and replace the calculation from (value_if_false) with another function that I tried in the table and it is marked in yellow =IF(F4>0;O4-N4+O4;O4-N4+O4-F4+E4, but when I try to combine the two functions =IF(ISBLANK(P$3);"";IF(F4>0;O4-N4+O4;O4-N4+O4-F4+E4)) I don't get the correct result but notification (Microsoft Excel cannot calculate a formula. There is a circular reference in an open workbook, but the references that cause it cannot be listed for you. Try editing the last formula you entered or removing it with the Undo command.)
Can anyone explain to me where the mistake is and how I can correct it?

3 Replies

  • SergeiBaklan's avatar
    SergeiBaklan
    Diamond Contributor

    Marius-7 

    With that formula in P4 you reference the cell F4. Formula in F4 in turn reference the range which includes F4. Thus circular reference.  If in F4 take shorter range, e.g.

    =LOOKUP(9.99E+307,G4:O4)-INDIRECT(ADDRESS(ROW(3:3)+1,MATCH(LOOKUP(9.99E+307,G3:O3),3:3,0)-1,4))

    it works.

    You need to change the logic to exclude cross-references.

    • Marius-7's avatar
      Marius-7
      Copper Contributor
      Thank you
      I understand the problem now
      The proposed function does not solve the situation but it helped me to simulate and understand where the problem occurred.
      • SergeiBaklan's avatar
        SergeiBaklan
        Diamond Contributor

        Marius-7 

        Yes, I didn't propose that as a formula to work, only to illustrate why an issue appeared.

Resources