Archiwa tagu: zagnieżdżanie

Funkcja IFS kontra zagnieżdżanie funkcji IF

Funkcja IF (polska nazwa funkcji to JEŻELI)

Składnia funkcji IF:

= IF ( warunek logiczny , co jeśli spełniony jest warunek , co jeśli nie jest spełniony warunek )

Warunki logiczne przykłady:

• Równa się: B2=A1.
• Większe niż: B2>A1.
• Większy lub równe: B2>=A1.
• Mnie niż: B2<A1.
• Mniejsze lub równe: B2<=A1.
• Różne od: B2<>A1.

Jeśli nie zadeklarujemy trzeciego argumentu, gdyż nie jest obowiązkowy, domyślnie zwróci nam FALSE.  Natomiast w przypadku kiedy chcemy zadeklarować w drugim lub trzecim argumencie tekst jako rezultat, to należy go ująć w cudzysłów.

=IF(A1>5,"Pass","Fail")

Jeżeli w komórce A1 wartość będzie wyższa niż 5 formuła zwróci Pass w przeciwnym wypadku Fail.

Kiedy chcemy zastosować jeden warunek logiczny to tworzenie funkcji IF jest proste i oczywiste. Natomiast co jeśli chcemy wprowadzić kolejne warunki? Wtedy należy dodać kolejna funkcje IF w już istniejacą.

Zagnieżdżenie funkcji IF

Chyba każdy z nas miał przynajmniej w pewnym momencie kłopoty z opanowaniem funkcji IF, kiedy dochodziło do jej zagnieżdżania. Czyli wtedy, gdy przynajmniej raz funkcja IF stanowiła argument funkcji IF. Ponadto zagnieżdżona funkcja stanowi obciążenie dla pracy systemu podczas przeliczania, oczywiście w przypadku, kiedy tą funkcję zastosujemy bardzo często w arkuszu.
Podam teraz prosty przykład funkcji IF zagnieżdżonej jednokrotnie. W miejsce trzeciego argumentu wprowadzona jest nowa funkcja IF zawierająca kolejny warunek.

= IF ( warunek logiczny , co jeśli spełniony jest warunek , IF ( warunek logiczny 2 , co jeśli spełniony jest warunek 2 , co jeśli nie ))
=IF(A1>5,"Excellent",IF(A1>3,"Good","Poor"))

Jeżeli w komórce A1 wartość będzie wyższa niż 5 formuła zwróci Excellent, jeżeli  nie ale bedzie wyższa niż 3 zwróci Good, w przeciwnym wypadku Fail.

Funkcja IFS (polska nazwa funkcji to WARUNKI)

W 2016 w Excelu pojawiła się alternatywa dla funkcji IF, czyli funkcja IFS, która daje możliwość wprowadzenie więcej warunków logicznych niż jeden, która uproszcza tworzenie formuły oraz znacznie przyspiesza jej prace.

= IFS ( Pierwszy warunek logiczny , co jeśli spełniony jest warunek, kolejny warunek logiczny , co jeśli spełniony jest kolejny warunek , …)
=IFS(A1>5,"Excellent",A1>3,"Good")

Jeżeli w komórce A1 wartość będzie wyższa niż 5 formuła zwróci Excellent, jeżeli  nie ale bedzie wyższa niż 3 zwróci Good, w przeciwnym wypadku zwróci błąd #NA.

Może się zdarzyć, że więcej niż jednokrotnie warunek zostanie spełniony w argumentach funkcji IFS. W takim wypadku decydujący jest ten, który jest zapisany najwcześniej.

=IFS(A1>3,"Good",A1>5,"Excellent")

W takim wypadku gdy zawartość komórki A1 będzie wyższa niż 3 funkcja zwróci zawsze Good (nigdy nie zwróci Excellent). Dlatego ważna jest kolejność zapisywania warunków. Jeśli żaden z warunków nie będzie spełniony, formuła zwróci błąd #NA. 

IFS vs. IF (WARUNKI kontra JEŻELI)

  • Funkcja IFS pozwala w prosty sposób na wprowadzenia kolejnych warunków logicznych bez konieczności zagnieżdżania.
  • Ze względu na brak zagnieżdżania wydajność funkcji IFS jest znacznie efektywniejsza.
  • Pozwala zastosować dwukrotnie więcej, czyli 127 warunków, podczas gdy zagnieżdżona formuła 64 warunki.
  • Jeśli żaden z warunków nie zostanie spełnionych funkcja IFS zwróci błąd #NA. W takim przypadku warto dodatkowo zastosować, funkcje IFEROOR. W drugim argumencie tej funkcji podajemy co ma być, jeśli nie spełniony jest żaden z  warunków.
= IFERROR ( IFS ( warunek logiczny , co jeśli pełniony jest warunek , warunek logiczny 2 , co jeśli pełniony jest warunek 2 ) , co jeśli nie jest spełniony żaden warunek )
=IFERROR(IFS(A1>5,"Excellent",A1>3,"Good"),"Poor")

Jeżeli w komórce A1 wartość będzie wyższa niż 5 formuła zwróci Excellent, jeżeli  nie ale bedzie wyższa niż 3 zwróci Good, w przeciwnym wypadku zwróci Poor.

Podobne zagadnienia i sztuczki w Excel-u można nauczyć się u mnie na kompleksowym Szkoleniu w Londynie.

English Version