1

У меня есть "A, B, C и D." Мне нужно "если a> 0, используйте a, в противном случае используйте b. Если b имеет ошибку «# N/A», используйте c, в противном случае используйте b. Если c = 0, используйте d/61, в противном случае используйте c.

Пока у меня есть это:

=IF(DB11>0,DB11,IF(ISNA(DA11),CZ11,IF(CZ11=0,BE11/61,CZ11)))

Где: DB11 = 0 (A), DA11 = # N/A (B), CZ11 = 138 (C) и BE11 = 6000 (D)

1 ответ1

1

Я думаю, что переформулировка ваших условий может помочь вам понять, где вы ошиблись. Вместо этого подумайте об этом:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .