Contents
Index 🔎︎

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

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

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

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

Case | Formula | Results and comments
A1: 1 B1: <Empty> | C1: =B1 | Displays 0
=B1=0 | TRUE
=B1="" | TRUE
=C1=0 | TRUE
=C1="" | TRUE (previously was FALSE)
=ISNUMBER(B1) | FALSE
=ISNUMBER(C1) | FALSE (previously was TRUE)
=ISNUMBER(VLOOKUP(1;A1:C1;2)) | FALSE (B1)
=ISNUMBER(VLOOKUP(1;A1:C1;3)) | FALSE (C1, previously was TRUE)
=ISTEXT(B1) | FALSE
=ISTEXT(C1) | TRUE
=ISTEXT(VLOOKUP(1;A1:C1;2)) | FALSE (B1, previously was TRUE)
=ISTEXT(VLOOKUP(1;A1:C1;3)) | FALSE (C1)
=ISBLANK(B1) | TRUE
=ISBLANK(C1) | TRUE
=ISBLANK(VLOOKUP(1;A1:C1;2)) | TRUE (B1, previously was FALSE)
=ISBLANK(VLOOKUP(1;A1:C1;3)) | FALSE (C1)

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

Case | Formula | Results and comments
A1: <Empty> | B1: =A1 | Displays 0, but is just a reference to an empty cell.
=ISNUMBER(A1) | FALSE
=ISTEXT(A1) | FALSE
=A1=0 | TRUE
=A1="" | TRUE
=ISNUMBER(B1) | FALSE (Microsoft Excel: TRUE)
=ISTEXT(B1) | FALSE
=B1=0 | TRUE
=B1="" | TRUE (Microsoft Excel: FALSE)
C1: =VLOOKUP(...) with empty cell result | displays empty (Microsoft Excel: displays 0)
=ISNUMBER(VLOOKUP(...)) | FALSE
=ISTEXT(VLOOKUP(...)) | FALSE
=ISNUMBER(C1) | FALSE (Microsoft Excel: TRUE)
=ISTEXT(C1) | FALSE