Formuła Excel MAX IF do znalezienia największej wartości z warunkami

  • Udostępnij To
Michael Brown

Artykuł pokazuje kilka różnych sposobów na uzyskanie wartości maksymalnej w Excelu na podstawie jednego lub kilku określonych przez użytkownika warunków.

W naszym poprzednim tutorialu przyjrzeliśmy się powszechnym zastosowaniom funkcji MAX, która została zaprojektowana w celu zwrócenia największej liczby w zbiorze danych. W niektórych sytuacjach jednak, możesz potrzebować drążyć dane dalej, aby znaleźć maksymalną wartość w oparciu o określone kryteria. Można to zrobić za pomocą kilku różnych formuł, a ten artykuł wyjaśnia wszystkie możliwe sposoby.

    Formuła Excel MAX IF

    Do niedawna Microsoft Excel nie miał wbudowanej funkcji MAX IF, aby uzyskać maksymalną wartość na podstawie warunków. Wraz z wprowadzeniem MAXIFS w Excelu 2019, możemy zrobić warunkowy max łatwy sposób.

    W Excelu 2016 i wcześniejszych wersjach nadal trzeba tworzyć własne formuła macierzowa poprzez połączenie funkcji MAX z instrukcją IF:

    {=MAX(IF( kryteria_zakresu = kryteria , maksymalny zakres ))}

    Aby zobaczyć, jak ta ogólna formuła MAX IF działa na rzeczywistych danych, rozważ następujący przykład. Załóżmy, że masz tabelę z wynikami długiego skoku kilku studentów. Tabela zawiera dane dla trzech rund, a ty szukasz najlepszego wyniku konkretnego zawodnika, powiedzmy Jakuba. Z nazwiskami studentów w A2:A10 i odległościami w C2:C10, formuła przyjmuje taki kształt:

    =MAX(IF(A2:A10="Jacob", C2:C10))

    Należy pamiętać, że formuła tablicowa musi być zawsze wprowadzona przez jednoczesne naciśnięcie klawiszy Ctrl + Shift + Enter. W rezultacie jest ona automatycznie otoczona nawiasami klamrowymi, jak pokazano na poniższym zrzucie ekranu (ręczne wpisanie nawiasów nie zadziała!).

    I prawdziwych arkuszy, to jest bardziej wygodne, aby wprowadzić kryterium w jakiejś komórce, dzięki czemu można łatwo zmienić warunek bez zmiany formuły. Tak więc, wpisujemy żądaną nazwę w F1 i otrzymujemy następujący wynik:

    =MAX(IF(A2:A10=F1, C2:C10))

    Jak działa ta formuła

    W teście logicznym funkcji JEŻELI porównujemy listę nazw (A2:A10) z nazwą docelową (F1). Wynikiem tej operacji jest tablica TRUE i FALSE, gdzie wartości TRUE reprezentują nazwy pasujące do nazwy docelowej (Jakub):

    {FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE}

    Dla wartość_jeśli_true podajemy wyniki długiego skoku (C2:C10), więc jeśli test logiczny zakończy się TRUE, zwrócona zostanie odpowiednia liczba z kolumny C. wartość_jeśli_false argument jest pominięty, co oznacza, że będzie miał tylko wartość FALSE, gdy warunek nie jest spełniony:

    {FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}

    Ta tablica jest podawana do funkcji MAX, która zwraca maksymalną liczbę ignorując wartości FALSE.

    Wskazówka Aby zobaczyć omówione powyżej tablice wewnętrzne, należy zaznaczyć w arkuszu odpowiednią część formuły i nacisnąć klawisz F9. Aby wyjść z trybu oceny formuły, należy nacisnąć klawisz Esc.

    Formuła MAX IF z wieloma kryteriami

    W sytuacji, gdy trzeba znaleźć wartość max na podstawie więcej niż jednego warunku, można albo:

    Użyj zagnieżdżonych instrukcji IF, aby uwzględnić dodatkowe kryteria:

    {=MAX(IF( kryteria_zakresu1 = kryteria1 , IF( kryteria_zakresu2 = kryteria2 , maksymalny zakres )))}

    Lub obsługuj wiele kryteriów za pomocą operacji mnożenia:

    {=MAX(IF(( kryteria_zakresu1 = kryteria1 ) * ( kryteria_zakresu2 = kryteria2 ), maksymalny zakres ))}

    Załóżmy, że masz wyniki chłopców i dziewcząt w jednej tabeli i chcesz znaleźć najdłuższy skok wśród dziewcząt w rundzie 3. Aby to zrobić, wprowadzamy pierwsze kryterium (kobieta) w G1, drugie kryterium (3) w G2 i używamy następujących formuł do opracowania wartości maksymalnej:

    =MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16))

    =MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))

    Ponieważ obie są formułami tablicowymi, pamiętaj, aby nacisnąć Ctrl + Shift + Enter, aby wypełnić je poprawnie.

    Jak widać na poniższym zrzucie ekranu, formuły dają ten sam wynik, więc to, której z nich użyć, jest kwestią twoich osobistych preferencji. Dla mnie formuła z logiką boolowską jest łatwiejsza do odczytania i zbudowania - pozwala na dodanie dowolnej liczby warunków bez zagnieżdżania dodatkowych funkcji IF.

    Jak działają te formuły

    Pierwsza formuła wykorzystuje dwie zagnieżdżone funkcje IF do oceny dwóch kryteriów. W teście logicznym pierwszej instrukcji IF porównujemy wartości w kolumnie Płeć (B2:B16) z kryterium w G1 ("Kobieta"). Wynikiem jest tablica wartości TRUE i FALSE, gdzie TRUE reprezentuje dane pasujące do kryterium:

    {FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE}.

    W podobny sposób druga funkcja IF sprawdza wartości w kolumnie Round (C2:C16) względem kryterium w G2.

    Dla wartość_jeśli_true argument w drugiej instrukcji IF, dostarczamy wyniki długiego skoku (D2:D16) i w ten sposób otrzymujemy pozycje, które mają TRUE w dwóch pierwszych tablicach na odpowiednich pozycjach (czyli pozycje, w których płeć to "female", a runda to 3):

    {FALSE; FALSE; FALSE; FALSE; FALSE; 4,63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4,52}.

    Ta ostatnia tablica trafia do funkcji MAX, a ona zwraca największą liczbę.

    Druga formuła ocenia te same warunki w ramach jednego testu logicznego, a operacja mnożenia działa jak operator AND:

    Gdy wartości TRUE i FALSE są używane w jakiejkolwiek operacji arytmetycznej, są zamieniane odpowiednio na 1 i 0. A ponieważ mnożenie przez 0 zawsze daje zero, wynikowa tablica ma 1 tylko wtedy, gdy wszystkie warunki są TRUE. Tablica ta jest oceniana w teście logicznym funkcji IF, która zwraca odległości odpowiadające elementom 1 (TRUE).

    MAX IF bez tablicy

    Wielu użytkowników Excela, w tym ja, jest uprzedzonych do formuł tablicowych i stara się ich pozbyć wszędzie, gdzie to tylko możliwe. Na szczęście Microsoft Excel posiada kilka funkcji, które natywnie obsługują tablice i jedną z takich funkcji, a mianowicie SUMPRODUCT, możemy wykorzystać jako swego rodzaju "wrapper" wokół MAX.

    Ogólna formuła MAX IF bez tablicy jest następująca:

    =SUMA(MAX(( kryteria_zakresu1 = kryteria1 ) * ( kryteria_zakresu2 = kryteria2 ) * maksymalny zakres ))

    Oczywiście w razie potrzeby można dodać więcej par zakresów/kryteriów.

    Aby zobaczyć formułę w działaniu, użyjemy danych z poprzedniego przykładu. Celem jest uzyskanie maksymalnego skoku zawodniczki w rundzie 3:

    =SUMA(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

    Formuła ta konkuruje z normalnym naciśnięciem klawisza Enter i zwraca taki sam wynik jak formuła Array MAX IF:

    Rzucając okiem na powyższy zrzut ekranu, można zauważyć, że nieważne skoki oznaczone "x" w poprzednich przykładach mają teraz wartości 0 w wierszach 3, 11 i 15, a następna sekcja wyjaśnia dlaczego.

    Jak działa ta formuła

    Podobnie jak w przypadku formuły MAX IF, oceniamy dwa kryteria porównując każdą wartość w kolumnach Gender (B2:B16) i Round (C2:C16) z kryteriami w komórkach G1 i G2. W rezultacie otrzymujemy dwie tablice wartości TRUE i FALSE. Mnożenie elementów tablic w tych samych pozycjach zamienia TRUE i FALSE odpowiednio na 1 i 0, gdzie 1 reprezentuje pozycje spełniające oba kryteria.Trzecie mnożenieTablica zawiera wyniki długiego skoku (D2:D16). A ponieważ mnożenie przez 0 daje zero, przetrwały tylko te pozycje, które mają 1 (TRUE) na odpowiednich pozycjach:

    {0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}

    W przypadku maksymalny zakres zawiera dowolną wartość tekstową, operacja mnożenia zwraca błąd #VALUE, z powodu którego cała formuła nie będzie działać.

    Funkcja MAX przejmuje ją stąd i zwraca największą liczbę, która spełnia określone warunki. Wynikowa tablica składająca się z pojedynczego elementu {4,63} trafia do funkcji SUMPRODUCT, a ta wyprowadza w komórce liczbę maksymalną.

    Uwaga. Ze względu na specyficzną logikę, formuła działa z następującymi zastrzeżeniami:

    • Zakres, w którym szukasz najwyższej wartości, musi zawierać tylko liczby. Jeśli istnieją jakiekolwiek wartości tekstowe, zwracany jest błąd #VALUE!
    • Formuła nie może ocenić warunku "nie równa się zero" w ujemnym zestawie danych. Aby znaleźć maksymalną wartość ignorując zera, użyj formuły MAX IF lub funkcji MAXIFS.

    Formuła Excel MAX IF z logiką OR

    Aby znaleźć wartość maksymalną, gdy każdy z podanych warunków jest spełniony, użyj znanej już formuły tablicowej MAX IF z logiką Booleana, ale dodaj warunki zamiast je mnożyć.

    {=MAX(IF(( kryteria_zakresu1 = kryteria1 ) + ( kryteria_zakresu2 = kryteria2 ), maksymalny zakres ))}

    Alternatywnie możesz użyć następującej formuły bez tablic:

    =SUMA(MAX(( kryteria_zakresu1 = kryteria1 ) + ( kryteria_zakresu2 = kryteria2 )) * maksymalny zakres ))

    Jako przykład opracujmy najlepszy wynik w rundach 2 i 3. Zwróć uwagę, że w języku Excela zadanie jest sformułowane inaczej: zwróć wartość max, jeśli runda to 2 lub 3.

    Mając rundy wymienione w B2:B10, wyniki w C2:C10 i kryteria w F1 i H1, formuła przebiega następująco:

    =MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))

    Wprowadź formułę, naciskając kombinację klawiszy Ctrl + Shift + Enter, a otrzymasz ten wynik:

    Wartość max z tymi samymi warunkami można również znaleźć za pomocą tego wzoru bez tablic:

    =SUMPRODUKT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))

    Musimy jednak w tym przypadku zastąpić wszystkie wartości "x" w kolumnie C zerami, ponieważ SUMPRODUCT MAX działa tylko z danymi liczbowymi:

    Jak działają te formuły

    Formuła tablicowa działa dokładnie tak samo jak MAX IF z logiką AND, z tym że do kryteriów dołączasz operację dodawania zamiast mnożenia. W formułach tablicowych dodawanie działa jak operator OR:

    Sumując dwie tablice TRUE i FALSE (które wynikają ze sprawdzenia wartości w B2:B10 pod kątem kryteriów w F1 i H1) otrzymujemy tablicę 1 i 0, gdzie 1 reprezentuje pozycje, dla których któryś z warunków jest TRUE, a 0 reprezentuje pozycje, dla których oba warunki są FALSE. W rezultacie funkcja JEŻELI "zachowuje" wszystkie pozycje w C2:C10 ( wartość_jeśli_true ), dla których każdy warunek jest TRUE (1); pozostałe pozycje są zastępowane FALSE, ponieważ. wartość_jeśli_false argument nie jest określony.

    Formuła bez tablicy działa w podobny sposób. Różnica polega na tym, że zamiast testu logicznego IF, mnożymy elementy tablicy 1's i 0's przez elementy tablicy wyników długich skoków (C2:C10) w odpowiednich pozycjach. W ten sposób unieważniamy elementy, które nie spełniają żadnego warunku (mają 0 w pierwszej tablicy) i zachowujemy elementy, które spełniają jeden z warunków (mają 1 w pierwszejarray).

    MAXIFS - łatwy sposób na znalezienie najwyższej wartości z warunkami

    Użytkownicy Excela 2019, 2021 i Excela 365 są wolni od kłopotów z oswajaniem tablic w celu zbudowania własnej formuły MAX IF. Te wersje Excela udostępniają długo oczekiwaną funkcję MAXIFS, dzięki której znalezienie największej wartości z warunkami jest dziecinnie proste.

    W pierwszym argumencie MAXIFS podajemy zakres, w którym ma być znaleziona wartość maksymalna (w naszym przypadku D2:D16), a w kolejnych argumentach możemy podać do 126 par zakres/kryterium. Na przykład:

    =MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)

    Jak widać na poniższym zrzucie ekranu, ta prosta formuła nie ma problemu z przetwarzaniem zakresu, który zawiera zarówno wartości liczbowe, jak i tekstowe:

    Szczegółowe informacje na temat tej funkcji można znaleźć w artykule Excel MAXIFS funkcja z przykładami formuł.

    Tak właśnie można znaleźć wartość max z warunkami w Excelu. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Zeszyt ćwiczeń do pobrania

    Przykłady formuły Excel MAX IF (plik .xlsx)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.