Содержимое

# Обработка пустых ячеек

В предыдущих версиях программы в пустых ячейках в некоторых контекстах принудительно устанавливалось число 0, а в других - пустая строка, за исключением прямого сравнения, где обе формулы =A1=0 и =A1="" возвращали значение ИСТИНА в том случае, если ячейка A1 была пустой. Теперь пустота ячейки наследуется до момента её использования, поэтому оба выражения =ВПР(...)=0 и =ВПР(...)="" возвращают значение ИСТИНА, если в результате поиска возвращена пустая ячейка.

Простая ссылка на пустую ячейку также отображается как число 0, однако не обязательно имеет числовой тип; поэтому сравнения со ссылающейся ячейкой выполняются в соответствии с ожиданиями.

В следующих примерах в A1 содержится число, B1 пуста, а в C1 содержится ссылка на B1:

Регистр | Формула | Результаты и комментарии
--- | --- | ---
A1: 1 B1: <Empty> | C1 содержит формулу "=B1" | Отображает 0
=B1=0 | ИСТИНА
=B1="" | ИСТИНА
=C1=0 | ИСТИНА
=C1="" | ИСТИНА (раньше было ЛОЖЬ)
=ЕЧИСЛО(B1) | ЛОЖЬ
=ЕЧИСЛО(C1) | ЛОЖЬ (раньше было ИСТИНА)
=ЕЧИСЛО(ВПР(1; A1:C1; 2)) | ЛОЖЬ (B1)
=ЕЧИСЛО(ВПР(1; A1:C1; 3)) | ЛОЖЬ (C1, раньше было ИСТИНА)
=ЕТЕКСТ(B1) | ЛОЖЬ
=ЕТЕКСТ(C1) | ИСТИНА
=ЕТЕКСТ(ВПР(1; A1:C1; 2)) | ЛОЖЬ (B1, раньше было ИСТИНА)
=ЕТЕКСТ(ВПР(1; A1:C1; 3)) | ЛОЖЬ (C1)
=ЕПУСТО(B1) | ИСТИНА
=ЕПУСТО(C1) | ИСТИНА
=ЕПУСТО(ВПР(1; A1:C1; 2)) | ИСТИНА (B1, раньше было ЛОЖЬ)
=ЕПУСТО(ВПР(1; A1:C1; 3)) | ЛОЖЬ (C1)

Следует отметить, что поведение Microsoft Excel отличается: в качестве результата ссылки на пустую ячейку или ячейку с формулой, содержащую результат пустой ячейки, всегда возвращается число. Пример:

Регистр | Формула | Результаты и комментарии
--- | --- | ---
A1: <Пусто> | B1 содержит формулу "=A1" | Отображает 0, но это просто ссылка на пустую ячейку.
=ЕЧИСЛО(A1) | ЛОЖЬ
=ЕТЕКСТ(A1) | ЛОЖЬ
=A1=0 | ИСТИНА
=A1="" | ИСТИНА
=ЕЧИСЛО(B1) | ЛОЖЬ (Microsoft Excel: ИСТИНА)
=ЕТЕКСТ(B1) | ЛОЖЬ
=B1=0 | ИСТИНА
=B1="" | ИСТИНА (Microsoft Excel: ЛОЖЬ)
C1: =ВПР(...) с пустой ячейкой в результате | отображает пустую (Microsoft Excel: отображает 0)
=ЕЧИСЛО(ВПР(...)) | ЛОЖЬ
=ЕТЕКСТ(ВПР(...)) | ЛОЖЬ
=ЕЧИСЛО(C1) | ЛОЖЬ (Microsoft Excel: ИСТИНА)
=ЕТЕКСТ(C1) | ЛОЖЬ

Пожалуйста, поддержите нас!