1

В Excel у меня есть длинное, сложное выражение (выражение A), которое я использую в формуле. Я хочу, чтобы эта формула возвращала значение выражения A, за исключением случая, когда это выражение равно некоторому конкретному значению (например, 0), и в этом случае оно возвращает что-то еще, например, «(нет)».

Есть ли способ записи =IF(<Expression A> = 0, "(none)", <Expression A>) , который не требовал бы от меня повторения всего выражения A дважды? ( Вроде как работает IFERROR , кроме как с пользовательским условием)

4 ответа4

7

В случае, когда вы хотите отобразить что-то другое, а не ноль, в частности, вы можете вызвать ошибку, когда выражение разрешится до нуля, разделив 1 на этот результат, например, с помощью функции IFERROR - доступно в Excel 2007 или более поздней

=IFERROR(1/(1/<Expression A>),"(none)")

или используйте пользовательский формат, где ноль отображается как «(нет)», например

0;-0;"(none)"

0

«Нет», при условии обычного предостережения, не без VBA.

Но с помощью другого подхода вы можете избежать некоторых проблем, скажем, с помощью условного форматирования.

0

Это может быть сделано довольно легко в VBA.  Вот несколько примеров функций:

Function DISPLAY_0_DEFAULT(exp_val)
    If exp_val = 0 Then
        DISPLAY_0_DEFAULT = "(none)"
    Else
        DISPLAY_0_DEFAULT = exp_val
    End If
End Function

Function DISPLAY_3_ARGS(exp_val, test_val, display_val)
    If exp_val = test_val Then
        DISPLAY_3_ARGS = display_val
    Else
        DISPLAY_3_ARGS = exp_val
    End If
End Function

Функция DISPLAY_0_DEFAULT делает то, что вы описали в своем вопросе, принимая «Выражение A» в качестве аргумента.  Функция DISPLAY_3_ARGS делает то же самое, за исключением того, что позволяет вам указать «конкретное значение» (для сравнения) и значение, отображаемое, если «выражение A» соответствует «конкретному значению».  Вот иллюстрация их использования:

пример использования DISPLAY_0_DEFAULT и DISPLAY_3_ARGS

-1

Есть несколько вариантов:

Скрытая колонна

Вы можете написать <Expression A> в отдельной ячейке в скрытом столбце, а затем обратиться к этому.

    Column A           Column B
    (hidden)

=<Expression A>  =IF(A1=0,"(none)",A1)

Форматирование чисел

Просто используйте формулу =<Expression A> , не беспокойтесь о функции IF .

Установите форматирование ячейки в Custom: 0;-0;"(none)"

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