=ORAZ(B2>=50;C2>=50) (po angielsku AND) zwraca PRAWDA tylko wtedy, gdy oba warunki są spełnione. =LUB(B2>=50;C2>=50) (OR) zwraca PRAWDA, gdy spełniony jest co najmniej jeden z nich. W funkcji JEŻELI zamieniają dwa warunki w jeden test: =JEŻELI(ORAZ(B2>=50;C2>=50);"Pass";"Fail"). Tabele pokazują formuły po angielsku, ale możesz w nich wpisywać formuły także po polsku, ze średnikami.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Student | Exam | Project | Both 50+ | Either 50+ |
| 2 | Ana | 72 | 64 | Pass | Pass |
| 3 | Ben | 45 | 80 | Fail | Pass |
| 4 | Chloe | 58 | 51 | Pass | Pass |
| 5 | Dan | 38 | 42 | Fail | Fail |
| 6 | Eve | 91 | 47 | Fail | Pass |
=JEŻELI(ORAZ(B2>=50;C2>=50);"Pass";"Fail")Ben i Eve zaliczają jedną część, a drugiej nie, więc nie zaliczają w kolumnie D (ORAZ), a zaliczają w kolumnie E (LUB). Dan nie zalicza żadnej części i nie zalicza w obu kolumnach. Zmień egzamin Bena w B3 na 55, a zaliczy także w D.
Funkcja ORAZ
=AND(logical1, [logical2], ...)
ORAZ przyjmuje do 255 warunków i zwraca PRAWDA tylko wtedy, gdy każdy z nich daje PRAWDA. Wystarczy jeden FAŁSZ, aby wynik był FAŁSZ. Sama ORAZ pokazuje w komórce PRAWDA albo FAŁSZ; w funkcji JEŻELI decyduje, który wynik JEŻELI zwróci.
Sprawdzanie, czy liczba jest między dwiema wartościami
Excel nie ma funkcji MIĘDZY. Użyj ORAZ z dolną i górną granicą:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Sample | Temp | Between 10 and 20 | Status |
| 2 | S1 | 14 | TRUE | OK |
| 3 | S2 | 22 | FALSE | Check |
| 4 | S3 | 10 | TRUE | OK |
| 5 | S4 | 7 | FALSE | Check |
| 6 | S5 | 20 | TRUE | OK |
=ORAZ(B2>=10;B2<=20)S3 i S5 leżą dokładnie na granicach i liczą się jako mieszczące się w zakresie, bo testy używają >= i <=. Aby wykluczyć granice, użyj > i <. Gdy granice trzymasz w komórkach, =ORAZ(B2>=$F$1;B2<=$F$2), możesz zmienić zakres bez edycji formuły. Test taki jak 10<=B2<=20 w Excelu nie działa: porównuje 10<=B2 (PRAWDA albo FAŁSZ) z 20, a Excel stawia PRAWDA i FAŁSZ wyżej niż każdą liczbę, więc wynik zawsze to FAŁSZ.
Funkcja LUB
=OR(logical1, [logical2], ...)
LUB zwraca PRAWDA, jeśli co najmniej jeden warunek daje PRAWDA, a FAŁSZ tylko wtedy, gdy wszystkie dają FAŁSZ. To zwykły sposób na zaakceptowanie kilku wartości tekstowych:
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Zone |
| 2 | 1001 | North | Zone 1 |
| 3 | 1002 | East | Zone 2 |
| 4 | 1003 | South | Zone 1 |
| 5 | 1004 | West | Zone 2 |
| 6 | 1005 | south | Zone 1 |
=JEŻELI(LUB(B2="North";B2="South");"Zone 1";"Zone 2")Porównania tekstu nie rozróżniają wielkości liter, więc south małymi literami też trafia do Zone 1. Przy długiej liście akceptowanych wartości =OR(B2={"North","South","Central"}) (postać angielska) porównuje B2 z każdym elementem stałej tablicowej za jednym razem.
NIE i XOR
NIE (NOT) odwraca wartość logiczną: =NIE(PRAWDA) daje FAŁSZ. Dobrze się czyta, gdy masz warunek odwrotny do tego, którego potrzebujesz: =JEŻELI(NIE(C2="Done");"Follow up";"") to to samo co =JEŻELI(C2<>"Done";"Follow up";"").
XOR, dostępna od Excela 2013, to alternatywa wykluczająca: przy dwóch warunkach daje PRAWDA, gdy dokładnie jeden z nich daje PRAWDA, a FAŁSZ, gdy oba dają PRAWDA albo oba FAŁSZ. Przy większej liczbie warunków daje PRAWDA, gdy prawdziwych jest nieparzyście wiele.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Task | Owner | Status | Open | One check only |
| 2 | Report | Ana | Done | FALSE | FALSE |
| 3 | Budget | Ben | Open | TRUE | FALSE |
| 4 | Slides | Ana | Open | TRUE | TRUE |
| 5 | Survey | Ben | Done | FALSE | TRUE |
| 6 | Plan | Ana | Done | FALSE | FALSE |
=NIE(C2="Done")Kolumna E daje TRUE dla Slides (Ana, ale nie Done) i Survey (Done, ale nie Ana), a FALSE tam, gdzie spełnione są oba warunki albo żaden.
ORAZ i LUB razem
Warunki można zagnieżdżać: ORAZ w LUB albo LUB w ORAZ. Handlowiec dostaje premię, gdy jest z regionu North i albo sprzedał więcej niż 1000, albo podpisał umowę z nowym klientem:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Rep | Region | Sales | New client | Bonus |
| 2 | Ana | North | 1200 | No | Bonus |
| 3 | Ben | North | 700 | Yes | Bonus |
| 4 | Chloe | South | 1500 | Yes | |
| 5 | Dan | North | 900 | No | |
| 6 | Eve | North | 1100 | Yes | Bonus |
=JEŻELI(ORAZ(B2="North";LUB(C2>1000;D2="Yes"));"Bonus";"")W polskim Excelu formuła z E2 to =JEŻELI(ORAZ(B2="North";LUB(C2>1000;D2="Yes"));"Bonus";""). Premię dostają Ana (sprzedaż), Ben (nowy klient) i Eve (oba). Chloe spełnia część z LUB, ale jest z South, a Dan jest z North, ale nie spełnia żadnego warunku z LUB.
Ćwiczenie: darmowa wysyłka
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Total | Member | Shipping |
| 2 | 1001 | 35 | Yes |
Twoja kolej: W D2 pokaż "Free", gdy wartość zamówienia w B2 wynosi co najmniej 50 albo klient jest członkiem (C2 to "Yes"), a w przeciwnym razie pokaż "Paid".
ORAZ i LUB w formułach tablicowych: użyj * i +
ORAZ i LUB sprowadzają wszystko, co dostaną, do jednego PRAWDA albo FAŁSZ. W jednym wierszu o to właśnie chodzi, ale nie wtedy, gdy formuła działa na całej kolumnie naraz: =ORAZ(B2:B6="North";C2:C6>100) zwraca jedną wartość dla pięciu wierszy razem. W formułach tablicowych (FILTRUJ, SUMA.ILOCZYNÓW, SUMA z warunkiem) zapisz warunki w nawiasach i mnóż je zamiast ORAZ, a dodawaj zamiast LUB. PRAWDA liczy się jako 1, a FAŁSZ jako 0, więc iloczyn daje 1 tylko wtedy, gdy oba warunki są spełnione, a suma wynosi co najmniej 1, gdy spełniony jest którykolwiek.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Region | Sales | Count | ||
| 2 | Ana | North | 1200 | North and over 1,000 | 2 | |
| 3 | Ben | South | 700 | North or over 1,000 | 4 | |
| 4 | Chloe | North | 900 | |||
| 5 | Dan | South | 1500 | |||
| 6 | Eve | North | 1100 |
=SUMA.ILOCZYNÓW((B2:B6="North")*(C2:C6>1000))F2 liczy 2 wiersze (Ana i Eve), F3 liczy 4 (wszyscy poza Benem). W F3 ważne jest >0: wiersz, który spełnia oba warunki, daje sumę 2, a porównanie zamienia każdą sumę większą od 0 w jedno PRAWDA. Ten sam schemat filtruje wiersze, =FILTRUJ(A2:C6;(B2:B6="North")*(C2:C6>1000)); do zwykłego liczenia z logiką ORAZ wystarczy LICZ.WARUNKI bez tablic: =LICZ.WARUNKI(B2:B6;"North";C2:C6;">1000"), zobacz stronę o LICZ.WARUNKI.
Najczęściej zadawane pytania
Jak użyć JEŻELI z ORAZ w Excelu?
Wstaw ORAZ do testu funkcji JEŻELI: =JEŻELI(ORAZ(B2>=50;C2>=50);"Pass";"Fail"). Wynik to Pass tylko wtedy, gdy i B2, i C2 wynoszą co najmniej 50.
Jak sprawdzić, czy liczba jest między dwiema wartościami w Excelu?
Użyj ORAZ z dwoma porównaniami: =ORAZ(B2>=10;B2<=20) zwraca PRAWDA dla każdej wartości od 10 do 20 włącznie. W funkcji JEŻELI: =JEŻELI(ORAZ(B2>=10;B2<=20);"In range";"Out of range").
Czym różni się ORAZ od LUB w Excelu?
ORAZ zwraca PRAWDA tylko wtedy, gdy każdy warunek daje PRAWDA. LUB zwraca PRAWDA, gdy co najmniej jeden warunek daje PRAWDA. =ORAZ(PRAWDA;FAŁSZ) daje FAŁSZ, a =LUB(PRAWDA;FAŁSZ) daje PRAWDA.
Dlaczego ORAZ nie działa w mojej formule z FILTRUJ albo SUMA.ILOCZYNÓW?
ORAZ i LUB sprowadzają cały zakres do jednego PRAWDA albo FAŁSZ zamiast do jednej wartości na wiersz. W formułach tablicowych mnóż warunki zamiast ORAZ, (B2:B6="North")*(C2:C6>100), i dodawaj je zamiast LUB.
Czy mogę użyć ORAZ i LUB w tej samej formule?
Tak, zagnieźdź jedną funkcję w drugiej: =JEŻELI(ORAZ(B2="North";LUB(C2>1000;D2="Yes"));"Bonus";"") wymaga North oraz albo sprzedaży powyżej 1000, albo Yes w D2.