Spis treści
Tutorial wyjaśnia, jak używać zagnieżdżonej funkcji JEŻELI w Excelu do sprawdzania wielu warunków. Poznasz również kilka innych funkcji, które mogą być dobrą alternatywą dla używania zagnieżdżonej formuły w Excelu.
Jak zwykle implementujesz logikę decyzyjną w swoich arkuszach Excela? W większości przypadków użyłbyś formuły IF, aby przetestować warunek i zwrócić jedną wartość, jeśli warunek jest spełniony, inną wartość, jeśli warunek nie jest spełniony. Aby ocenić więcej niż jeden warunek i zwrócić różne wartości w zależności od wyników, zagnieżdżasz wiele IF wewnątrz siebie.
Choć bardzo popularna, zagnieżdżona instrukcja IF nie jest jedynym sposobem na sprawdzenie wielu warunków w Excelu. W tym poradniku znajdziesz garść alternatyw, które zdecydowanie warto poznać.
Zagnieżdżone oświadczenie IF w Excelu
Oto klasyczna zagnieżdżona formuła IF w Excelu w postaci ogólnej:
IF( stan1 , wynik1 , IF( stan2 , wynik2 , IF( stan3 , wynik3 , wynik4 )))Można zauważyć, że każda kolejna funkcja IF jest osadzona w wartość_jeśli_false Każda funkcja IF jest ujęta w swój własny zestaw nawiasów, ale wszystkie nawiasy zamykające znajdują się na końcu formuły.
Nasza ogólna zagnieżdżona formuła IF ocenia 3 warunki i zwraca 4 różne wyniki (wynik 4 jest zwracany, jeśli żaden z warunków nie jest TRUE). Tłumacząc na język ludzki, to zagnieżdżone oświadczenie IF mówi Excelowi, aby wykonał następujące czynności:
Test stan1 , jeśli TRUE - return wynik1 , jeśli FALSE -.test stan2 , jeśli TRUE - zwróć r wynik2 , jeśli FALSE -.
test stan3 , jeśli TRUE - return wynik3 , jeśli FALSE -.
powrót wynik4
Jako przykład, znajdźmy prowizje dla kilku sprzedawców na podstawie ilości dokonanych przez nich sprzedaży:
Komisja | Sprzedaż |
3% | $1 - $50 |
5% | $51 - $100 |
7% | $101 - $150 |
10% | Ponad 150 dolarów |
W matematyce zmiana kolejności dodawania nie zmienia sumy. W Excelu zmiana kolejności funkcji JEŻELI zmienia wynik. Dlaczego? Ponieważ zagnieżdżona formuła JEŻELI zwraca wartość odpowiadającą pierwszy warunek TRUE Dlatego w zagnieżdżonych instrukcjach IF bardzo ważne jest, aby ułożyć warunki w odpowiednim kierunku - od wysokiego do niskiego lub od niskiego do wysokiego, w zależności od logiki twojej formuły. W naszym przypadku sprawdzamy najpierw warunek "najwyższy", następnie "drugi najwyższy" i tak dalej:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
Gdybyśmy umieścili warunki w odwrotnej kolejności, od dołu do góry, wyniki byłyby wszystkie złe, ponieważ nasza formuła zatrzymałaby się po pierwszym teście logicznym (B2>=1) dla każdej wartości większej niż 1. Powiedzmy, że mamy 100 dolarów w sprzedaży - jest to wartość większa niż 1, więc formuła nie sprawdziłaby innych warunków i zwróciłaby 3% jako wynik.
Jeśli wolisz ułożyć warunki od niskich do wysokich, to użyj operatora "less than" i oceń najpierw "najniższy" warunek, a następnie "drugi najniższy" i tak dalej:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
Jak widzisz, potrzeba sporo myślenia, aby zbudować logikę zagnieżdżonego oświadczenia IF poprawnie aż do końca. I chociaż Microsoft Excel pozwala na zagnieżdżanie do 64 funkcji IF w jednej formule, nie jest to coś, co naprawdę chciałbyś zrobić w swoich arkuszach. Tak więc, jeśli ty (lub ktoś inny) wpatruje się w swoją zagnieżdżoną formułę IF w Excelu, próbując dowiedzieć się, co właściwie robi, nadszedł czas, abyponownie przemyśleć swoją strategię i prawdopodobnie wybrać inne narzędzie w swoim arsenale.
Więcej informacji na ten temat można znaleźć w artykule Excel zagnieżdżone oświadczenie IF.
Zagnieżdżony IF z warunkami OR/AND
W przypadku, gdy trzeba ocenić kilka zestawów różnych warunków, można wyrazić te warunki za pomocą funkcji OR oraz AND, zagnieździć funkcje wewnątrz instrukcji IF, a następnie zagnieździć instrukcje IF między sobą.
Zagnieżdżone JEŻELI w Excelu z oświadczeniami OR
Za pomocą funkcji OR można sprawdzić dwa lub więcej różnych warunków w teście logicznym każdej funkcji IF i zwrócić TRUE, jeśli dowolny (przynajmniej jeden) z argumentów OR ocenia na TRUE. Aby zobaczyć, jak to faktycznie działa, rozważ następujący przykład.
Załóżmy, że masz dwie kolumny sprzedaży, powiedzmy, że sprzedaż w styczniu w kolumnie B i lutym w kolumnie C. Chcesz sprawdzić liczby w obu kolumnach i obliczyć prowizję w oparciu o wyższą liczbę. Innymi słowy, budujesz formułę z następującą logiką: jeśli albo Jan lub luty sprzedaż jest większa niż 150 dolarów, sprzedawca dostaje 10% prowizji, jeśli Jan lub luty sprzedaż jest większa lub równa101 dolarów, sprzedawca dostaje 7% prowizji itd.
Aby mieć to zrobione, napisz kilka stwierdzeń OF, takich jak OR(B2>150, C2>150) i zagnieżdż je w testach logicznych funkcji IF omówionych powyżej. Jako wynik otrzymasz taką formułę:
=IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, "")))).
I mieć przypisaną prowizję na podstawie wyższej kwoty sprzedaży:
Więcej przykładów formuł znajdziesz w Excelu IF OR statement.
Zagnieżdżone IF w Excelu z oświadczeniami AND
Jeśli twoje testy logiczne zawierają wiele warunków, a wszystkie te warunki powinny być oceniane jako TRUE, wyraź je za pomocą funkcji AND.
Na przykład, aby przypisać prowizje na podstawie mniejszej liczby sprzedaży, weź powyższą formułę i zamień OR na AND oświadczenia. Mówiąc inaczej, mówisz Excelowi, aby zwrócił 10% tylko wtedy, gdy sprzedaż w styczniu i lutym jest większa niż 150 USD, 7%, jeśli sprzedaż w styczniu i lutym jest większa lub równa 101 USD, i tak dalej.
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))
W rezultacie nasza zagnieżdżona formuła IF oblicza prowizję na podstawie niższej liczby w kolumnach B i C. Jeśli któraś z kolumn jest pusta, prowizji nie ma w ogóle, ponieważ żaden z warunków AND nie jest spełniony:
Jeśli chcesz zwrócić 0% zamiast pustych komórek, zastąp pusty łańcuch ('') w ostatnim argumencie 0%:
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))
Więcej informacji można znaleźć tutaj: Excel IF z wieloma warunkami AND/OR.
VLOOKUP zamiast zagnieżdżonego IF w Excelu
Gdy mamy do czynienia z "skalami", czyli ciągłymi zakresami wartości liczbowych, które łącznie obejmują cały zakres, w większości przypadków zamiast zagnieżdżonych JEŻELI można użyć funkcji VLOOKUP.
Na początek utwórz tabelę referencyjną, jak pokazano na poniższym zrzucie ekranu. A następnie zbuduj formułę Vlookup z przybliżone dopasowanie , tj. z range_lookup argument ustawiony na TRUE.
Zakładając, że wartość lookup jest w B2, a tabela referencyjna to F2:G5, formuła przebiega następująco:
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Proszę zauważyć, że naprawiamy tablica z odwołaniami bezwzględnymi ($F$2:$G$5), aby formuła poprawnie kopiowała się do innych komórek:
Ustawiając ostatni argument formuły Vlookup na TRUE, każesz Excelowi szukać najbliższy odpowiednik - jeśli dokładne dopasowanie nie zostanie znalezione, zwróć następną największą wartość, która jest mniejsza niż wartość lookup. W rezultacie twoja formuła będzie pasować nie tylko do dokładnych wartości w tabeli lookup, ale także do wszelkich wartości, które mieszczą się pomiędzy nimi.
Na przykład, wartość lookup w B3 to 95$. Ta liczba nie istnieje w tabeli lookup, a Vlookup z dokładnym dopasowaniem zwróciłby w tym przypadku błąd #N/A. Ale Vlookup z dopasowaniem przybliżonym kontynuuje wyszukiwanie, dopóki nie znajdzie najbliższej wartości, która jest mniejsza niż wartość lookup (która w naszym przykładzie wynosi 50$) i zwraca wartość z drugiej kolumny w tym samym wierszu (która wynosi 5%).
Ale co jeśli wartość lookup jest mniejsza niż najmniejsza liczba w tabeli lookup lub komórka lookup jest pusta? W takim przypadku formuła Vlookup zwróci błąd #N/A. Jeśli to nie jest to, czego faktycznie chcesz, zagnieżdż VLOOKUP wewnątrz IFERROR i dostarcz wartość do wyjścia, gdy wartość lookup nie zostanie znaleziona.Na przykład:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Poza zakresem")
Ważna uwaga! Aby formuła Vlookup z dopasowaniem przybliżonym działała poprawnie, pierwsza kolumna w tabeli lookup musi być posortowana w wzrastający , od najmniejszego do największego.
Więcej informacji można znaleźć w części Dokładne dopasowanie VLOOKUP vs. przybliżone dopasowanie VLOOKUP.
Instrukcja IFS jako alternatywa dla zagnieżdżonej funkcji IF
W Excelu 2016 i późniejszych wersjach Microsoft wprowadził specjalną funkcję do oceny wielu warunków - funkcję IFS.
Formuła IFS może obsłużyć do 127 logiczny_test / wartość_jeśli_true pary, a pierwszy test logiczny, który oceni się na TRUE "wygrywa":
IFS(logiczne_test1, wartość_jeśli_true1, [logiczne_test2, wartość_jeśli_true2]...)Zgodnie z powyższą składnią, nasza zagnieżdżona formuła IF może być zrekonstruowana w ten sposób:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Zwróć uwagę, że funkcja IFS zwraca błąd #N/A, jeśli żaden z podanych warunków nie jest spełniony. Aby tego uniknąć, możesz dodać jeszcze jeden logiczny_test / wartość_jeśli_true na końcu swojej formuły, która zwróci 0 lub pusty ciąg ("") lub jakąkolwiek wartość, którą chcesz, jeśli żaden z poprzednich testów logicznych nie jest TRUE:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
W rezultacie nasza formuła zwróci pusty ciąg (pustą komórkę) zamiast błędu #N/A, jeśli odpowiednia komórka w kolumnie B jest pusta lub zawiera tekst lub liczbę ujemną.
Uwaga. Podobnie jak w przypadku zagnieżdżonego IF, funkcja IFS w Excelu zwraca wartość odpowiadającą pierwszemu warunkowi, który ma wartość TRUE, dlatego też kolejność testów logicznych w formule IFS ma znaczenie.
Więcej informacji znajdziesz w artykule Funkcja IFS w Excelu zamiast zagnieżdżonego IF.
CHOOSE zamiast zagnieżdżonej formuły IF w Excelu
Innym sposobem testowania wielu warunków w ramach jednej formuły w Excelu jest użycie funkcji CHOOSE, której zadaniem jest zwrócenie wartości z listy na podstawie pozycji tej wartości.
Zastosowana do naszego przykładowego zbioru danych formuła przyjmuje następujący kształt:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
W pierwszym argumencie (. indeks_num ), oceniasz wszystkie warunki i sumujesz wyniki. Biorąc pod uwagę, że TRUE równa się 1, a FALSE - 0, w ten sposób obliczasz pozycję wartości do zwrócenia.
Na przykład wartość w B2 wynosi 150$.Dla tej wartości pierwsze 3 warunki są TRUE, a ostatni (B2> 150) jest FALSE.Zatem, indeks_num równa się 3, co oznacza, że zwracana jest trzecia wartość, czyli 7%.
Wskazówka Jeśli żaden z testów logicznych nie jest TRUE, indeks_num jest równa 0, a formuła zwraca błąd #VALUE! Łatwą poprawką jest zawinięcie CHOOSE w funkcję IFERROR w ten sposób:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Więcej informacji znajdziesz w artykule Excel funkcja CHOOSE z przykładami formuł.
Funkcja SWITCH jako zwięzła forma zagnieżdżonego IF w Excelu
W sytuacjach, gdy mamy do czynienia z ustalonym zestawem predefiniowanych wartości, a nie skalami, funkcja SWITCH może być kompaktową alternatywą dla złożonych, zagnieżdżonych instrukcji IF:
SWITCH(wyrażenie, wartość1, wynik1, wartość2, wynik2, ..., [domyślnie])Funkcja SWITCH ocenia wyraz w stosunku do listy wartości i zwraca wynik odpowiadający pierwszemu znalezionemu dopasowaniu.
W przypadku, gdybyś chciał obliczyć prowizję na podstawie poniższych ocen, a nie kwot sprzedaży, mógłbyś użyć tej kompaktowej wersji zagnieżdżonej formuły IF w Excelu:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
Lub możesz zrobić tabelę referencyjną, jak pokazano na poniższym zrzucie ekranu i użyć odniesień do komórek zamiast wartości hardcoded:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
Zauważ, że wszystkie odwołania oprócz pierwszego blokujemy znakiem $, aby zapobiec ich zmianie podczas kopiowania formuły do innych komórek:
Uwaga. Funkcja SWITCH jest dostępna tylko w programie Excel 2016 i nowszych.
Więcej informacji znajdziesz w artykule Funkcja SWITCH - zwarta forma zagnieżdżonej instrukcji IF.
Łączenie wielu funkcji IF w programie Excel
Jak wspomniano w poprzednim przykładzie, funkcja SWITCH została wprowadzona dopiero w Excelu 2016. Aby poradzić sobie z podobnymi zadaniami w starszych wersjach Excela, można połączyć dwa lub więcej stwierdzeń IF za pomocą operatora Concatenate (&) lub funkcji CONCATENATE.
Na przykład:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Albo
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Jak pewnie zauważyłeś, w obu formułach mnożymy wynik przez 1. Robi się to po to, aby przekształcić ciąg znaków zwrócony przez formułę Concatenate na liczbę. Jeśli twoim oczekiwanym wyjściem jest tekst, to operacja mnożenia nie jest potrzebna.
Więcej informacji znajdziesz w artykule Funkcja CONCATENATE w programie Excel.
Jak widać, Microsoft Excel oferuje garść dobrych alternatyw dla zagnieżdżonych formuł IF i mam nadzieję, że ten tutorial dał ci kilka wskazówek, jak wykorzystać je w twoich arkuszach. Aby przyjrzeć się bliżej przykładom omówionym w tym tutorialu, zapraszamy do pobrania naszego przykładowego skoroszytu poniżej. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu w przyszłym tygodniu!
Zeszyt ćwiczeń do pobrania
Excel zagnieżdżone oświadczenie If - przykłady (plik .xlsx)