Menu

Zagnieżdżone JEŻELI (nested IF) w Excelu: wiele warunków

=JEŻELI(B2>=90;"A";JEŻELI(B2>=80;"B";JEŻELI(B2>=70;"C";"F"))) wstawia jedną funkcję JEŻELI w drugą, aby wybrać spośród więcej niż dwóch wyników. Zobacz, jak czytać zagnieżdżone JEŻELI, dlaczego kolejność warunków ma znaczenie i kiedy lepsze są WARUNKI albo tabela.

Każdy arkusz na tej stronie działa na żywo: zmień liczbę albo formułę, a się przeliczy.

Zagnieżdżone JEŻELI (po angielsku nested IF) to funkcja JEŻELI wewnątrz innej funkcji JEŻELI, używana, gdy możliwych wyników jest więcej niż dwa. =JEŻELI(B2>=90;"A";JEŻELI(B2>=80;"B";JEŻELI(B2>=70;"C";"F"))) daje A za 90 lub więcej, B za 80 do 89, C za 70 do 79 i F poniżej 70. Tabela pokazuje formułę po angielsku, =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F"))), ale możesz w niej wpisywać formuły także po polsku, ze średnikami.

Oceny z wyników
C2
ABC
1StudentScoreGrade
2Ana94A
3Ben81B
4Chloe70C
5Dan65F
6Eve88B
7Finn90A
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =JEŻELI(B2>=90;"A";JEŻELI(B2>=80;"B";JEŻELI(B2>=70;"C";"F")))

Kliknij C2 i spójrz na pasek formuły: trzy funkcje JEŻELI i trzy nawiasy zamykające na końcu. Zmień wynik Dana w B5 na 75, a jego ocena zmieni się z F na C.

Jak czytać zagnieżdżone JEŻELI

Excel czyta formułę od początku i zatrzymuje się na pierwszym teście, który daje PRAWDA:

=IF(B2>=90, "A",
   IF(B2>=80, "B",
      IF(B2>=70, "C",
         "F")))
  1. Czy wynik wynosi 90 lub więcej? Wtedy A i nic więcej nie jest sprawdzane.
  2. W przeciwnym razie: czy wynosi 80 lub więcej? Wtedy B. Ten test nie musi mówić „i poniżej 90”, bo wynik 90 lub wyższy nigdy do niego nie dociera.
  3. W przeciwnym razie: czy wynosi 70 lub więcej? Wtedy C.
  4. W przeciwnym razie F, czyli wartość_jeżeli_fałsz ostatniej funkcji JEŻELI.

Każda wewnętrzna funkcja JEŻELI siedzi w miejscu wartość_jeżeli_fałsz poprzedniej. Excel pozwala na 64 poziomy, ale formułę z więcej niż czterema czy pięcioma trudno sprawdzić wzrokiem. Excel przyjmuje podziały wierszy w formule, więc długą formułę możesz tak rozpisać w pasku formuły: naciśnij Alt+Enter (Windows) albo Control+Option+Return (Mac) przed każdym JEŻELI.

Dlaczego kolejność warunków ma znaczenie

Ponieważ Excel zatrzymuje się na pierwszym teście dającym PRAWDA, przy >= progi muszą iść od najwyższego do najniższego. Kolumna D ma te same trzy testy w odwrotnej kolejności:

Te same testy w złej kolejności
D2
ABCD
1StudentScoreRight orderWrong order
2Ana94AC
3Ben81BC
4Chloe70CC
5Dan65FF
6Eve88BC
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =JEŻELI(B2>=70;"C";JEŻELI(B2>=80;"B";JEŻELI(B2>=90;"A";"F")))

W kolumnie D każdy z wynikiem 70 lub wyższym dostaje C: wynik 94 przechodzi pierwszy test, B2>=70, a testy na B i A nigdy nie zostają sprawdzone. Jeśli wolisz zacząć od najniższego przedziału, odwróć operatory: =JEŻELI(B2<70;"F";JEŻELI(B2<80;"C";JEŻELI(B2<90;"B";"A"))) daje te same oceny co kolumna C.

Zagnieżdżone JEŻELI z tekstem

Testy mogą też porównywać tekst. Tutaj opłata za dostawę zależy od regionu, a każdy region spoza listy dostaje ostatnią wartość:

Opłata za dostawę według regionu
C2
ABC
1OrderRegionFee
21001North$5.00
31002South$7.00
41003West$9.00
51004East$6.00
61005Islands$9.00
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =JEŻELI(B2="North";5;JEŻELI(B2="South";7;JEŻELI(B2="East";6;9)))

West i Islands nie pasują do żadnego z trzech testów i dostają ostatnią wartość, $9.00. Gdy każdy test porównuje tę samą komórkę ze stałą wartością, jak tutaj, PRZEŁĄCZ (SWITCH) zapisuje tę samą regułę z każdym regionem tylko raz: =PRZEŁĄCZ(B2;"North";5;"South";7;"East";6;9). Zobacz stronę o PRZEŁĄCZ.

Zagnieżdżone JEŻELI z ORAZ

Zagnieżdżone JEŻELI może łączyć swoje poziomy z ORAZ albo LUB, gdy jeden przedział zależy od dwóch komórek. Handlowiec ze sprzedażą co najmniej 2000 i stażem co najmniej 3 lat dostaje 10%, każdy inny powyżej 2000 dostaje 5%, a reszta nic:

Stawka prowizji
D2
ABCD
1RepSalesYearsRate
2Ana2400410%
3Ben210015%
4Chloe150060%
5Dan3000310%
6Eve90020%
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =JEŻELI(ORAZ(B2>=2000;C2>=3);10%;JEŻELI(B2>=2000;5%;0))

Ana i Dan dostają 10%, Ben ma sprzedaż, ale nie staż, więc dostaje 5%, a Chloe i Eve dostają 0%. Tutaj kolejność też ma znaczenie: ostrzejszy test idzie pierwszy.

WARUNKI: to samo bez zagnieżdżania

W Excelu 2019, Excelu 2021 i Microsoft 365 funkcja WARUNKI (IFS) przyjmuje testy i wyniki parami, bez wewnętrznego JEŻELI i z jednym nawiasem zamykającym. TRUE (PRAWDA) jako ostatni test działa jak „wszystko inne”:

=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")

W polskim Excelu: =WARUNKI(B2>=90;"A";B2>=80;"B";B2>=70;"C";PRAWDA;"F"). Funkcja czyta warunki w tej samej kolejności i zatrzymuje się na pierwszym prawdziwym, więc powyższa zasada kolejności nadal obowiązuje. Strona o WARUNKI omawia ją dokładnie, łącznie z błędem #N/D! (po angielsku #N/A), który zwraca, gdy żaden test nie pasuje. W Excelu 2016 i starszym funkcji WARUNKI nie ma, a plik, który jej używa, pokazuje tam #NAZWA? (#NAME?). Tabele na tej stronie pokazują angielskie nazwy błędów.

Ćwiczenie: prowizja w trzech przedziałach

Prowizja
C2
ABC
1RepSalesCommission
2Ana$6,200
3Ben$2,400
4Chloe$600
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

Twoja kolej: W C2 wypłać 10% sprzedaży z B2, gdy wynosi ona 5000 lub więcej, 5%, gdy wynosi 1000 lub więcej, a w przeciwnym razie 0. Formuła kopiuje się w dół do C4.

Tabela wyszukiwania zamiast wielu JEŻELI

Gdy przedziały są liczbami i jest ich więcej niż trzy czy cztery, trzymaj progi w małej tabeli i je wyszukuj. Tabela jest posortowana od najniższego progu w górę, a dopasowanie przybliżone (TRUE jako ostatni argument, w polskim Excelu PRAWDA) zwraca wiersz największego progu, który nie przekracza wyniku:

Oceny z tabeli przedziałów
C2
ABCDEF
1StudentScoreGradeMin scoreGrade
2Ana94A0F
3Ben81B70C
4Chloe70C80B
5Dan65F90A
6Eve88B
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.W polskim Excelu: =WYSZUKAJ.PIONOWO(B2;$E$2:$F$5;2;PRAWDA)

W polskim Excelu formuła z C2 to =WYSZUKAJ.PIONOWO(B2;$E$2:$F$5;2;PRAWDA). Wyniki zgadzają się z zagnieżdżonym JEŻELI z góry strony. Aby przesunąć przedział B do 85, zmień E4 na 85: żadna formuła się nie zmienia, a każda ocena się aktualizuje. Z X.WYSZUKAJ (XLOOKUP) to samo wyszukiwanie to =X.WYSZUKAJ(B2;$E$2:$E$5;$F$2:$F$5;;-1), gdzie -1 oznacza „dokładne dopasowanie albo następna mniejsza wartość”; tabela nie musi wtedy być posortowana.

Spróbuj sam: tabela przedziałów jest gotowa, napisz wyszukiwanie.

Ocena z WYSZUKAJ.PIONOWO
C2
ABCDEF
1StudentScoreGradeMin scoreGrade
2Ana860F
370C
480B
590A
Kliknij komórkę, aby zobaczyć jej formułę. Zmień liczbę albo formułę, a arkusz przeliczy się na nowo.

Twoja kolej: W C2 zwróć ocenę dla wyniku z B2 na podstawie tabeli przedziałów w E2:F5.

Najczęściej zadawane pytania

Jak napisać kilka funkcji JEŻELI w jednej formule w Excelu?

Wstaw kolejną funkcję JEŻELI w argument wartość_jeżeli_fałsz poprzedniej: =JEŻELI(B2>=90;"A";JEŻELI(B2>=80;"B";JEŻELI(B2>=70;"C";"F"))). Excel sprawdza warunki od pierwszego do ostatniego i zatrzymuje się na pierwszym, który daje PRAWDA.

Ile funkcji JEŻELI można zagnieździć w Excelu?

Do 64 poziomów w Excelu 2007 i nowszym. Na długo przed tym limitem formuła staje się trudna do czytania i sprawdzenia; przy więcej niż trzech czy czterech przedziałach łatwiej utrzymać tabelę z przybliżonym WYSZUKAJ.PIONOWO albo X.WYSZUKAJ.

Dlaczego moje zagnieżdżone JEŻELI zwraca zły wynik?

Zwykle dlatego, że warunki są w złej kolejności. Przy testach >= zacznij od najwyższego progu: jeśli B2>=70 jest pierwsze, wynik 95 zatrzymuje się na nim i dostaje wynik przedziału od 70.

Czego mogę użyć zamiast zagnieżdżonego JEŻELI w Excelu?

Funkcji WARUNKI w Excelu 2019 i nowszym (=WARUNKI(B2>=90;"A";B2>=80;"B";PRAWDA;"F")), PRZEŁĄCZ, gdy porównujesz jedną wartość ze stałymi wartościami, oraz tabeli z =WYSZUKAJ.PIONOWO(B2;$E$2:$F$5;2;PRAWDA) dla przedziałów liczbowych.

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ