Модуль
Зміст
Покажчик 🔎︎

# Обробка порожніх комірок

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

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

У наступних прикладах в A1 міститься число, B1 порожня, а в C1 міститься посилання на B1:

A1: 1 B1: <Порожньо> C1: =B1 (виводиться 0)

=B1=0 => TRUE

=B1="" => TRUE

=C1=0 => TRUE

=C1="" => TRUE (раніше був FALSE)

=ISNUMBER(B1) => FALSE

=ISNUMBER(C1) => FALSE (раніше був TRUE)

=ISNUMBER(VLOOKUP(1;A1:C1;2)) => FALSE (B1)

=ISNUMBER(VLOOKUP(1;A1:C1;3)) => FALSE (C1, раніше був TRUE)

=ISTEXT(B1) => FALSE

=ISTEXT(C1) => FALSE

=ISTEXT(VLOOKUP(1;A1:C1;2)) => FALSE (B1, раніше було TRUE)

=ISTEXT(VLOOKUP(1;A1:C1;3)) => FALSE (C1)

=ISBLANK(B1) => TRUE

=ISBLANK(C1) => FALSE

=ISBLANK(VLOOKUP(1;A1:C1;2)) => TRUE (B1, раніше було FALSE)

=ISBLANK(VLOOKUP(1;A1:C1;3)) => FALSE (C1)

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

A1: <Порожньо>

B1: =A1 => виводить 0, але є лише посиланням на порожню комірку

=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(...) при порожній комірці результат => виводиться порожня комірка (Microsoft Excel: виводиться 0)

=ISNUMBER(VLOOKUP(...)) => FALSE

=ISTEXT(VLOOKUP(...)) => FALSE

=ISNUMBER(C1) => FALSE (Microsoft Excel: TRUE)

=ISTEXT(C1) => FALSE