Я думаю, что переформулировка ваших условий может помочь вам понять, где вы ошиблись. Вместо этого подумайте об этом:
If `a>0`, then `a`. Otherwise, check if `b=#N/A`.
If `b=#N/A`, then check if `c=0`. Otherwise, `b`.
If `c=0`, then `d/61`. Otherwise, `c`.
Обратите внимание на разницу между первой строкой и тем, что вы описали. Вы прыгнули прямо на «использовать b », а затем проверили, что b соответствует условию после того, как вы уже сказали использовать его. Это не будет работать во вложенном условном выражении. Если вы что-то заключаете, то это сделано; другие условия не проверяются.
Чтобы проиллюстрировать это, рассмотрим случай, когда a=0 , b=#N/A , c=0 и d=61 . Вы ожидаете, что это приведет к 1 . Оценка вашей формулы будет выглядеть следующим образом:
=IF(0>0,DB11,IF(ISNA(DA11),CZ11,IF(CZ11=0,BE11/61,CZ11)))
=IF(FALSE,DB11,IF(ISNA(DA11),CZ11,IF(CZ11=0,BE11/61,CZ11)))
=IF(ISNA(DA11),CZ11,IF(CZ11=0,BE11/61,CZ11))
=IF(ISNA(#N/A),CZ11,IF(CZ11=0,BE11/61,CZ11))
=IF(TRUE,CZ11,IF(CZ11=0,BE11/61,CZ11))
=CZ11
=0
Поскольку проверка условия на b заканчивается на c , условие на c никогда даже не проверяется. Это источник вашей ошибки.
Вот как ваша формула должна быть построена.
=IF(DB11>0,DB11,IF(ISNA(DA11),IF(CZ11=0,BE11/61,CZ11),DA11))
Чтобы проиллюстрировать, как это работает, посмотрите на тот же пример, что и выше.
=IF(0>0,DB11,IF(ISNA(DA11),IF(CZ11=0,BE11/61,CZ11),DA11))
=IF(FALSE,DB11,IF(ISNA(DA11),IF(CZ11=0,BE11/61,CZ11),DA11))
=IF(ISNA(DA11),IF(CZ11=0,BE11/61,CZ11),DA11)
=IF(ISNA(#N/A),IF(CZ11=0,BE11/61,CZ11),DA11)
=IF(TRUE,IF(CZ11=0,BE11/61,CZ11),DA11)
=IF(CZ11=0,BE11/61,CZ11)
=IF(0=0,BE11/61,CZ11)
=IF(TRUE,BE11/61,CZ11)
=BE11/61
=61/61
=1