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.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
| 7 | Finn | 90 | A |
=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")))
- Czy wynik wynosi 90 lub więcej? Wtedy A i nic więcej nie jest sprawdzane.
- 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.
- W przeciwnym razie: czy wynosi 70 lub więcej? Wtedy C.
- 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:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | Right order | Wrong order |
| 2 | Ana | 94 | A | C |
| 3 | Ben | 81 | B | C |
| 4 | Chloe | 70 | C | C |
| 5 | Dan | 65 | F | F |
| 6 | Eve | 88 | B | C |
=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ść:
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Fee |
| 2 | 1001 | North | $5.00 |
| 3 | 1002 | South | $7.00 |
| 4 | 1003 | West | $9.00 |
| 5 | 1004 | East | $6.00 |
| 6 | 1005 | Islands | $9.00 |
=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:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Sales | Years | Rate |
| 2 | Ana | 2400 | 4 | 10% |
| 3 | Ben | 2100 | 1 | 5% |
| 4 | Chloe | 1500 | 6 | 0% |
| 5 | Dan | 3000 | 3 | 10% |
| 6 | Eve | 900 | 2 | 0% |
=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
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Commission |
| 2 | Ana | $6,200 | |
| 3 | Ben | $2,400 | |
| 4 | Chloe | $600 |
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:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 94 | A | 0 | F | |
| 3 | Ben | 81 | B | 70 | C | |
| 4 | Chloe | 70 | C | 80 | B | |
| 5 | Dan | 65 | F | 90 | A | |
| 6 | Eve | 88 | B |
=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.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 86 | 0 | F | ||
| 3 | 70 | C | ||||
| 4 | 80 | B | ||||
| 5 | 90 | A |
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.