Błąd #N/D!

Jednym z częściej pojawiających się błędów w trakcie pracy z Excelem jest błąd #N/D!. Spowodowany jest on najczęściej dwoma rzeczami: odwołaniem do komórki w której występuje taki sam błąd, bądź też w sytuacji gdy funkcja wyszukująca nie może znaleźć pasującej wartości. Niejednokrotnie jego wystąpienie nie oznacza błędu, a zamierzoną sytuację. W takich sytuacjach należy zastanowić się jak obsłużyć ten błąd.

Przed podaniem rozwiązanie tego problemu należy poznać z dokładniejsze przyczyny powstawania tego błędu:

  • zastąpienie brakujących danych wartością #N/D!,
  • podanie niewłaściwej wartości wyszukiwanej w funkcji WYSZUKAJ.POZIOMOWYSZUKAJPODAJ.POZYCJĘ lub WYSZUKAJ.PIONOWO,
  • wykorzystanie funkcji WYSZUKAJ.PIONOWOWYSZUKAJ.POZIOMO lub PODAJ.POZYCJĘ w celu zlokalizowania wartości w nieposortowanej tabeli,
  • użycie formuły tablicowej ze złą liczbą argumentów,
  • użycie niestandardowej funkcji, która jest niedostępna,
  • uruchomienie makro, które wprowadza funkcję zwracającą wartość #N/D!.

Najczęściej spotykaną przyczyną w trakcie codziennej pracy z Excelem jest podanie niewłaściwej wartości w funkcji wyszukującej. Niejednokrotnie wystąpienie tego błędu nie oznacza od razu błędu w formule, arkuszu. Rozważania będą prowadzone na jednej z bardziej użytecznych funkcji w Excelu – WYSZUKAJ.PIONOWO. W naszym przykładzie służyć ona będzie do podania ceny poszczególnych artykułów na podstawie ich nazwy.

Błąd #N/D!W kolumnach A i B znajduje się lista artykułów z ich cenami. Natomiast w komórkach D2 i D3 wykorzystano formułę WYSZUKAJ.PIONOWO do znalezienia ceny na podstawie nazwy artykułu. Jak widać na rysunku w pierwszym przypadku (D2) zapytano o cenę “Róży” i otrzymano wynik 5 zł. W drugim przypadku zapytano o cenę “Gruszki” i otrzymano wynik #N/D!. Oba przykłady potwierdzają wiedzę teoretyczną.

W drugim przypadku (wyszukiwanie ceny “Gruszki”) należy się zastanowić, czy nie warto zmienić nieczytelnego błędu #N/D! na bardziej czytelny dla użytkownika komunikat. Ma to duże znaczenie, gdy arkusz ma służyć jako raport dla innych osób. W takiej sytuacji nie wskazane jest występowanie różnego rodzaju błędów. Błąd #N/D! można zastąpić komunikatem “Brak ceny”.

Do tego celu można użyć funkcji sprawdzającej czy w komórce występuje błąd #N/D!. Taką funkcją jest CZY.BRAK. Zwraca ona wartość PRAWDAw przypadku wystąpienia błędu #N/D!. Dodatkowo należy zastosować również funkcję JEŻELI:

=JEŻELI(CZY.BRAK(WYSZUKAJ.PIONOWO(“NAZWA_ARTYKUŁU”; $A$2:$B$4; 2; FAŁSZ)); “Brak ceny”; WYSZUKAJ.PIONOWO(“NAZWA_ARTYKUŁU”; $A$2:$B$4; 2; FAŁSZ))

Rozwiązane to sprawdzi się bardzo dobrze w przypadku małych arkuszy kalkulacyjnych. W przypadku dużych ma znaczącą wadę  – musi wykonać się dwa razy funkcja WYSZUKAJ.PIONOWO. Lepszym rozwiązaniem jest wykorzystanie funkcji LICZ.JEŻELI. W tym przypadku, jeśli liczba szukanych artykułów wyniesie 0 należy wyświetlić komunikat o braku ceny:

=JEŻELI(LICZ.JEŻELI($A$2:$B$4;”NAZWA_ARTYKUŁU”)>0; WYSZUKAJ.PIONOWO(“NAZWA_ARTYKUŁU”; $A$2:$B$4; 2; FAŁSZ); “Brak ceny”)

Powyższa formułę można dodatkowo uprościć ponieważ Excel wartość 0 traktuje jako FAŁSZ. Dlatego też można opuścić “>0″:

=JEŻELI(LICZ.JEŻELI($A$2:$B$4; “NAZWA_ARTYKUŁU”); WYSZUKAJ.PIONOWO(“NAZWA_ARTYKUŁU “; $A$2:$B$4; 2; FAŁSZ); “Brak ceny”)

Trzecią możliwością jest wykorzystanie funkcji JEŻELI.BŁĄD. Funkcja ta pojawiła się dopiero wraz z Excelem 2007. Pierwszym argumentem tej funkcji jest funkcja obliczana (która może zwrócić błąd), drugim natomiast jest funkcja która ma zostać wykonana w sytuacji wystąpienia błędu – w tym przypadku “Brak ceny”:

=JEŻELI.BŁĄD(WYSZUKAJ.PIONOWO(“NAZWA_ARTYKUŁU”; $A$2:$B$4; 2; FAŁSZ); “Brak ceny”)

Niestety zastosowanie tej funkcji też jest obarczone pewnym błędem. W przypadku pierwszego i drugiego rozwiązania pojawienie się innego błędu niż #N/D! powodowało jego wyświetlenie. Natomiast w tym przypadku za każdym razem pojawi się komunikat “Brak ceny”.

Plik: Przykład z błędem #N/D!

Opublikowano: 05 lutego 2009, Kategorie: Inne , , , , ,

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">