Yuk
Aleks1977
Согласен, что повторный расчёт - это нехорошо. Но в данном случае не шла речь об оптимизации кода и ускорении обработки больших таблиц. Я специально привёл решение с использованием только стандартных средств MS Excel без применения VBA.
Если подойдёт псевдопустая ячейка вместо нулевого значения, то можно в условном форматировании поставить условие - формулу =ЕНД(A1)=ИСТИНА и в качестве формата задать цвет текста равным цвету фона (стандартно - белый). Тогда в ячейке по-прежнему будет содержаться значение #Н/Д, но отображаться будет пустая ячейка, как и отображалась бы ячейка с нулём при снятом параметре Отображать нулевые значения. Это, разумеется, подходит в случае, когда полученные значения - самоцель, а не используются для вычислений.
Не поленился и протестировал на большой таблице. Вариант с двумя ВПР оказался быстрее, чем с функцией IsError (на 10000 ячейках примерно на 2 сек.). Сам не ожидал
Aleks1977
Согласен, что повторный расчёт - это нехорошо. Но в данном случае не шла речь об оптимизации кода и ускорении обработки больших таблиц. Я специально привёл решение с использованием только стандартных средств MS Excel без применения VBA.
Если подойдёт псевдопустая ячейка вместо нулевого значения, то можно в условном форматировании поставить условие - формулу =ЕНД(A1)=ИСТИНА и в качестве формата задать цвет текста равным цвету фона (стандартно - белый). Тогда в ячейке по-прежнему будет содержаться значение #Н/Д, но отображаться будет пустая ячейка, как и отображалась бы ячейка с нулём при снятом параметре Отображать нулевые значения. Это, разумеется, подходит в случае, когда полученные значения - самоцель, а не используются для вычислений.
Не поленился и протестировал на большой таблице. Вариант с двумя ВПР оказался быстрее, чем с функцией IsError (на 10000 ячейках примерно на 2 сек.). Сам не ожидал