Spis treści
Indeks 🔎︎

# Sposób postępowania z pustymi komórkami

We wcześniejszych wersjach programu w niektórych kontekstach wymuszane było wstawianie w pustych komórkach wartości 0, a w innych – pustego ciągu. Wyjątek stanowiło bezpośrednie porównanie, gdzie zarówno formuła =A1=0, jak i formuła =A1="" zwracały wartość PRAWDA w przypadku, gdy komórka A1 była pusta. Atrybut braku zawartości jest teraz dziedziczony aż do momentu użycia, dlatego tak formuła =WYSZUKAJ.PIONOWO(...)=0, jak i formuła =WYSZUKAJ.PIONOWO(...)="" zwracają wartość PRAWDA, jeśli wynikiem wyszukiwania jest pusta komórka.

Użycie prostego odwołania do pustej komórki powoduje wyświetlanie wartości 0, która jednak nie zawsze jest wartością numeryczną, w związku z czym operacje porównywania z komórką odwołującą się do danej wartości również są wykonywane poprawnie.

W poniższych przykładach komórka A1 zawiera liczbę, komórka B1 jest pusta, a komórka C1 zawiera odwołanie do komórki 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)

Warto zauważyć, że program Microsoft Excel zachowuje się inaczej: jako wynik odwołania do pustej komórki lub komórki formuły zawierającej wynik dla pustej komórki zawsze zwraca liczbę. Przykład:

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