=WARUNKI(B2>=90;"A";B2>=80;"B";B2>=70;"C";PRAWDA;"F") (po angielsku IFS) sprawdza warunki od pierwszego do ostatniego i zwraca wartość przypisaną do pierwszego, który daje PRAWDA. Robi to samo co zagnieżdżone JEŻELI, bez wstawiania jednej funkcji JEŻELI w drugą. WARUNKI wymagają Excela 2019 lub nowszego albo Microsoft 365. Tabela pokazuje formułę po angielsku, 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 |
=WARUNKI(B2>=90;"A";B2>=80;"B";B2>=70;"C";PRAWDA;"F")Kliknij C2: cztery pary test i wynik oraz jeden nawias zamykający. Zmień wynik Chloe w B4 na 69, a jej ocena spadnie do F.
Składnia funkcji WARUNKI
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
- Argumenty występują parami: test, który daje PRAWDA albo FAŁSZ, a potem wartość zwracana, gdy test daje PRAWDA.
- Excel sprawdza testy po kolei i zwraca wartość pierwszego prawdziwego. Dalsze testy nie są sprawdzane, więc przy testach
>=najwyższy próg wpisz jako pierwszy. - Par może być do 127.
- Nie ma osobnego argumentu „w przeciwnym razie”. Tę rolę pełni ostatnia para z
TRUE(PRAWDA) jako testem.
Test bez wartości (nieparzysta liczba argumentów) sprawia, że Excel odrzuca formułę z komunikatem o zbyt małej liczbie argumentów (You've entered too few arguments for this function).
PRAWDA jako wartość domyślna i #N/D!, gdy nic nie pasuje
Jeśli żaden test nie daje PRAWDA, WARUNKI zwracają #N/D! (po angielsku #N/A; tabela pokazuje angielskie nazwy błędów). Kolumna C poniżej nie ma wartości domyślnej i nie radzi sobie z dwoma niskimi wynikami; kolumna D kończy się na TRUE,"F" i je wyłapuje:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | No default | TRUE default |
| 2 | Ana | 94 | A | A |
| 3 | Ben | 81 | B | B |
| 4 | Dan | 65 | #N/A | F |
| 5 | Eve | 88 | B | B |
| 6 | Gus | 52 | #N/A | F |
#N/A Szukanej wartości nie ma w zakresie wyszukiwania.W polskim Excelu: =WARUNKI(B4>=90;"A";B4>=80;"B";B4>=70;"C")PRAWDA to test, który zawsze jest prawdziwy, więc dochodzi do niego tylko wtedy, gdy każdy wcześniejszy test dał FAŁSZ, i musi być ostatnią parą: niczego po nim Excel już nie sprawdza. Wartość domyślna może być dowolna: PRAWDA;"" dla pustej komórki, PRAWDA;"Check", aby oznaczyć wiersz. Jeśli chcesz ukryć #N/D! bez wartości domyślnej, działa też =JEŻELI.ND(WARUNKI(...);"No grade"); strona o JEŻELI.BŁĄD wyjaśnia JEŻELI.ND (IFNA).
WARUNKI z tekstem oraz z ORAZ i LUB
Testy to zwykłe wyrażenia logiczne, więc mogą porównywać tekst i używać ORAZ i LUB. Tutaj sposób dostawy zależy od regionu i wartości zamówienia:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Region | Total | Delivery |
| 2 | 1001 | North | $120 | Free |
| 3 | 1002 | North | $60 | Standard |
| 4 | 1003 | South | $150 | Express |
| 5 | 1004 | East | $40 | Post |
| 6 | 1005 | north | $300 | Free |
=WARUNKI(ORAZ(B2="North";C2>=100);"Free";B2="North";"Standard";C2>=100;"Express";PRAWDA;"Post")Zamówienie 1001 jest z North i przekracza 100, więc dostaje Free. Zamówienie 1002 jest z North, ale poniżej 100, więc pierwszy test się nie udaje, a drugi, B2="North", daje Standard. Porównania tekstu nie rozróżniają wielkości liter, więc 1005, zapisane north, też dostaje Free.
Gdy każdy test porównuje tę samą komórkę ze stałą wartością (B2="N", B2="S", B2="E"), PRZEŁĄCZ (SWITCH) wymienia każdą wartość raz i jest krótsza: =PRZEŁĄCZ(B2;"N";"North";"S";"South";"Other").
Ćwiczenie: czas dostawy
| A | B | C | |
|---|---|---|---|
| 1 | Order | Days | Speed |
| 2 | 1001 | 3 | |
| 3 | 1002 | 1 | |
| 4 | 1003 | 7 | |
| 5 | 1004 | 2 | |
| 6 | 1005 | 5 |
Twoja kolej: W C2 zwróć "Express", gdy liczba dni w B2 wynosi 1 lub mniej, "Standard", gdy wynosi 3 lub mniej, a w przeciwnym razie "Slow". Użyj funkcji WARUNKI. Formuła kopiuje się w dół do C6.
WARUNKI a zagnieżdżone JEŻELI
Dwie formuły poniżej zwracają tę samą ocenę dla każdego wyniku:
=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
W polskim Excelu: =JEŻELI(B2>=90;"A";JEŻELI(B2>=80;"B";JEŻELI(B2>=70;"C";"F"))) i =WARUNKI(B2>=90;"A";B2>=80;"B";B2>=70;"C";PRAWDA;"F").
| WARUNKI | Zagnieżdżone JEŻELI | |
|---|---|---|
| Nawiasy | Jedna para | Jedna para na każde JEŻELI |
| Wartość domyślna | Ostatnia para z TRUE | wartość_jeżeli_fałsz ostatniego JEŻELI |
| Żaden test nie pasuje | #N/D!, chyba że dodasz TRUE | wartość_jeżeli_fałsz ostatniego JEŻELI (FAŁSZ, jeśli ją pominąłeś) |
| Limit | 127 par | 64 zagnieżdżone JEŻELI |
| Excel 2016 i starszy | #NAZWA? | Działa |
Wybierz WARUNKI, gdy każdy, kto otwiera plik, ma Excela 2019 lub nowszego, a zagnieżdżone JEŻELI, gdy plik trafi do kogoś ze starszym Excelem. Przy tylko dwóch wynikach zwykłe JEŻELI jest prostsze od obu. Przy wielu przedziałach liczbowych (progi podatkowe, wagi przesyłek) żadne z nich nie jest najlepszym narzędziem: tabela z dopasowaniem przybliżonym trzyma progi w komórkach, jak pokazuje strona o zagnieżdżonym JEŻELI.
Najczęściej zadawane pytania
Jak dodać wartość „w przeciwnym razie” do funkcji WARUNKI?
Jako ostatni test wpisz PRAWDA, który zawsze jest prawdziwy: =WARUNKI(B2>=90;"A";B2>=80;"B";PRAWDA;"F"). Każda wartość, która nie pasowała do wcześniejszych testów, dostaje F.
Dlaczego WARUNKI zwraca #N/D!?
Żaden test nie dał PRAWDA, a na końcu nie ma pary z PRAWDA. =WARUNKI(B2>=90;"A";B2>=80;"B") zwraca #N/D! dla wyniku 75. Dodaj na końcu PRAWDA;"F" albo obejmij formułę funkcją JEŻELI.ND.
Które wersje Excela mają funkcję WARUNKI?
Excel 2019, Excel 2021, Excel 2024 i Microsoft 365, a także Excel dla sieci Web. W Excelu 2016 i starszym formuła z WARUNKI pokazuje #NAZWA?, więc tam użyj zagnieżdżonego JEŻELI. Arkusze Google też mają IFS.
Czy WARUNKI są lepsze od zagnieżdżonego JEŻELI?
Łatwiej je czytać i mają tylko jeden nawias zamykający, ale działają tak samo: wygrywa pierwszy test dający PRAWDA. Zagnieżdżone JEŻELI nadal jest dobrym wyborem, gdy plik musi się otwierać w Excelu 2016 lub starszym.