Unikanie niepoprawnych formuł w Excelu

Autor: Marcin Sarna
Podczas pracy z arkuszem kalkulacyjnym nie sposób ustrzec się przed popełnianiem błędów w formułach. W bardziej skomplikowanych skoroszytach znalezienie formuły z błędem potrafi być naprawdę czasochłonnym wyzwaniem.
Przede wszystkim należy pamiętać, aby każdą formułę rozpoczynać od znaku równości (=), w przeciwnym razie wpisany tekst formuły zostanie wyświetlony jako zawartość komórki.
Po drugie, każdy nawias kiedyś się zaczyna i kiedyś się kończy – liczba nawiasów otwierających i zamykających musi być taka sama w każdej formule.
Jedną z najczęstszych przyczyn błędów w działaniu skoroszytu jest nieprowadzenie wszystkich argumentów wymaganych przez daną formułę. Są wprawdzie formuły, które argumentów nie posiadają (np. DZIŚ), ale większość funkcji wymaga podania co najmniej jednego argumentu.
Zawsze więc trzeba podawać wszystkie argumenty i to w formacie przewidzianym przez daną funkcję.
 
Na przykład funkcja LITERY.WIELKIE(X) przyjmuje jako argument X zarówno ciąg tekstowy („krzesło”), jak i odwołanie do komórki (E4).
Rysunek 1. Funkcja LITERY.WIELKIE zmienia sposób wyświetlania ciągu tekstowego
Podanie błędnego argumentu (niezgodnego ze składnią danej funkcji) będzie skutkowało błędem #ARG! Albo podawaniem przez arkusz błędnego wyniku.
Rysunek 2. Funkcja SUMA(A;B;C;…) jako argumenty przyjmuje liczby czy odwołania do komórek z liczbami, ale już nie wartości tekstowe. Efektem jest błąd #ARG!
Wprowadzając dane liczbowe należy je wprowadzać „gołe”, tj. bez jakichkolwiek symboli (np. dolar, euro) czy przedzielania tysięcy przecinkami (np. 5,000,000). Komórka powinna bowiem posiadać bezwzględnie określoną wartość, a to, co dana wartość prezentuje (kwota pieniędzy, temperatura), wynika ze sposobu sformatowania tej komórki, a nie jej zawartości.
Co zrobić, gdy formuła =2+2 wyświetla jako zawartość komórki 4,00 zamiast 4? Okazuje się, że za niewłaściwe „działanie” komórek często jest odpowiedzialne złe ustawienie ich formatowania. Najczęściej jest to spowodowane np. sformatowaniem komórki jako typ danych Liczbowe, a następnie – po długiej pracy z arkuszem – stwierdzenie, że warto tam trzymać wynik obliczenia bez miejsc po przecinku. Niestety, wówczas najczęściej zapominamy o przywróceniu komórki do typu danych Ogólne. Warto więc wyrobić sobie nawyk ustawiania formatowania komórek na Ogólne, np. gdy wyczyścimy ich zawartość:
  1. Zaznacz komórki, których formatowanie chcemy wyczyścić.
  2. Z karty Narzędzia główne w polu Liczba należy wybrać z rozwijanej listy Forma liczb pozycję Ogólne.
 
Rysunek 3. Lista Forma liczb w polu Liczba
Jeszcze inną „przypadłością” jest używanie przy mnożeniu zamiast znaku * litery x.
Pożytecznym przyzwyczajeniem jest także umieszczanie wszelkich ciągów tekstowych podawanych jako argumenty funkcji pomiędzy znakami cudzysłowów. Pozwala to uniknąć błędów w przypadku gdy tekst zawiera spację czy niektóre znaki specjalne. Co więcej, taka formuła jest najczęściej znacznie bardziej czytelna.
Na przykład formuła ="Dzisiaj mamy dzień tygodnia: " & TEKST(DZIŚ();"dddd") wyraźnie oddziela dwa ciągi tekstowe od funkcji DZIŚ().
Irytującym błędem jest także błąd dzielenia przez zero. Na przykład jakaś formuła dzieli każdą ilość towaru w jednej z kolumn tabeli na określoną ilość palet. Jeżeli nie wpiszemy ilości palet dla danego towaru, którego jest 10 sztuk, to wynik dzielenia 10 / 0 będzie wypisany jako błąd #DZIEL/0!. Zapewne wolelibyśmy wówczas mieć wpisane po prostu 0, jako że tak mała ilość towaru nie będzie wymagała ani jednej palety. Posłuży nam do tego funkcja =JEŻELI.BŁĄD(1/0;0), które stwierdzi, że 1/0 jest błędem i w związku z tym wypisze 0.
Oczywiście zamiast 10 możemy wpisać adres komórki z ilością towaru.
Rysunek 4. Efekt działania funkcji JEŻELI.BŁĄD


Marcin Sarna


Tagi: excel

Zaloguj się, aby dodać komentarz

Nie masz konta? Zarejestruj się »

Zobacz także

Skuteczne narzędzia do wykrywania uszkodzonych podzespołów

pobierz

Wykrywanie i usuwanie niechcianych programów

pobierz

Polecane artykuły

Array ( [docId] => 50009 )

Array ( [docId] => 50009 )
Array ( [docId] => 50009 )