Baza wiedzy / Excel

Daty według warunków: MIN.WARUNKÓW i MAKS.WARUNKÓW

Wybierz datę dla miasta i roku, prześledź kolejność argumentów oraz pokaż brak danych zamiast daty wynikającej z zera.

Kajo RudzińskiOpublikowano Aktualizacja 5 min czytania

Karty kalendarza przechodzą przez bramkę wybierającą część dat

Chcesz znaleźć datę pierwszego zamówienia z danego miasta albo ostatniego zdarzenia w wybranym roku. W takim zadaniu wybieram najmniejszą lub największą datę spośród rekordów spełniających warunki. Excel ma do tego MIN.WARUNKÓW i MAKS.WARUNKÓW, czyli MINIFS oraz MAXIFS.

Dawna nazwa tego hasła, DATA.WARUNKI, była błędna: taka funkcja Excela nie istnieje. Nie istnieją też użyte wcześniej MIN.JEŻELI i MAKS.JEŻELI. Poprawny temat to wyszukiwanie dat skrajnych z warunkami. Funkcje opisane poniżej są dostępne w Microsoft 365 oraz Excelu 2019, 2021 i 2024.

Najpierw daty liczbowe i zgodne zakresy

Excel przechowuje prawidłowe daty jako liczby kolejne. Dzięki temu najmniejsza liczba odpowiada wcześniejszej dacie w tym samym systemie dat. Tekst wyglądający jak data wymaga wcześniejszej konwersji: samo ustawienie formatu daty nie daje gwarancji poprawnego typu.

Według dokumentacji MIN.WARUNKÓW pierwszy argument jest zakresem wartości do porównania. Dopiero później podajesz zakres i kryterium:

=MIN.WARUNKÓW(zakres_dat;zakres_kryterium;kryterium)
=MAKS.WARUNKÓW(zakres_dat;zakres_kryterium;kryterium)

Kolejne warunki dopisujesz parami. Wszystkie muszą być spełnione dla tego samego rekordu. Zakresy muszą mieć ten sam rozmiar i kształt. Dodatkowo powinny odnosić się do tych samych wierszy: przesunięcie zakresu o jedną komórkę może dać technicznie poprawny, ale merytorycznie błędny wynik.

Przykłady PL używają średników między argumentami. Wersja EN pokazuje nazwy angielskie i przecinki. Separatory w Twoim środowisku zależą od ustawień regionalnych.

Mała tabela zamówień

Załóżmy, że nagłówki są w A1:C1, a pięć syntetycznych zamówień zajmuje wiersze 2:6:

Wiersz arkusza A: ID B: Miasto C: Data zamówienia
2 1 Warszawa 2024-01-10
3 2 Kraków 2024-01-12
4 3 Warszawa 2024-01-05
5 4 Gdańsk 2024-02-01
6 5 Warszawa 2025-01-02

Kolumna „Wiersz arkusza” jest tylko objaśnieniem; nie wklejaj jej jako dodatkowej kolumny przed A. W C2 wpisz =DATA(2024;1;10), w C3 =DATA(2024;1;12), w C4 =DATA(2024;1;5), w C5 =DATA(2024;2;1), a w C6 =DATA(2025;1;2). Ustaw format daty.

W ten sposób unikamy zgadywania, czy zapis tekstowy 2024-01-10 zostanie rozpoznany przy wklejeniu. To kompletne, znane daty. Sprawdzanie niepełnego eksportu jest osobnym zadaniem.

Najwcześniejsza data dla miasta

Dla Warszawy:

=MIN.WARUNKÓW(C2:C6;B2:B6;"Warszawa")

Najpierw wybieram wiersze 2, 4 i 6, bo ich miasto spełnia kryterium. Odpowiadające daty to 10 stycznia 2024, 5 stycznia 2024 i 2 stycznia 2025. Najwcześniejsza jest data 2024-01-05, więc taki wynik zobaczysz po ustawieniu formatu daty.

Kolejność rekordów w arkuszu nie wybiera wyniku. Funkcja nie zwraca „pierwszego pasującego wiersza”, tylko najmniejszą wartość z odpowiednich komórek. Dlatego pomimo że zamówienie z 10 stycznia stoi wyżej, wynik pochodzi z 5 stycznia.

Jeśli potrzebujesz ID zamówienia powiązanego z tą datą, sama funkcja minimum go nie zwróci. Przy remisie dwóch zamówień z tego samego dnia potrzebujesz dodatkowej reguły wyboru albo listy wszystkich dopasowań.

Najpóźniejsza data z miasta i wybranego roku

Szukam ostatniego zamówienia warszawskiego w 2024 roku:

=MAKS.WARUNKÓW(C2:C6;B2:B6;"Warszawa";C2:C6;">="&DATA(2024;1;1);C2:C6;"<"&DATA(2025;1;1))

Warunek miasta zostawia trzy rekordy. Granice roku wyłączają 2 stycznia 2025, więc pozostają 5 i 10 stycznia 2024. Funkcja wybiera większą datę, czyli 2024-01-10.

MAKS.WARUNKÓW otrzymuje tutaj dwa dodatkowe kryteria dotyczące tego samego zakresu dat. Zapis ">="&DATA(...) łączy operator z liczbową datą graniczną. Nie muszę porównywać tekstowych nazw miesięcy ani dodawać kolumny z rokiem.

Górna granica jest wyłączona. To wygodne również wtedy, gdy dane obejmują godziny, ale ten przykład dotyczy dat bez czasu. Przy znacznikach czasu ustal dodatkowo strefę i znaczenie momentu zdarzenia.

Brak dopasowania może wyglądać jak data

Jeśli jako miasto podasz Poznań, w naszej tabeli nie ma dopasowania. MINIFS i MAXIFS mogą wtedy zwrócić zero, co dokumentacja pokazuje na przykładach bez pasujących rekordów. Po nadaniu formatu daty wynik może wyglądać jak okolice początku systemu dat zamiast komunikatu „brak danych”.

Dlatego dla raportu przygotowuję jawną kontrolę liczności. W E2 wpisz miasto. Poniższa formuła zakłada współczesne, dodatnie daty liczbowe w C2:C6 i pomija wartości niedodatnie:

=JEŻELI(LICZ.WARUNKI(B2:B6;E2;C2:C6;">0")=0;"Brak dat";MIN.WARUNKÓW(C2:C6;B2:B6;E2;C2:C6;">0"))

LICZ.WARUNKI sprawdza te same kryteria co minimum. Dla Warszawy licznik wyniesie 3, a dla Poznania 0. Formuła zwróci odpowiednio datę lub tekst Brak dat. To świadomie mieszany typ wyniku: wygodny do prezentacji, lecz przy dalszych obliczeniach czasem lepiej przechowywać osobno datę i status dostępności.

Jeśli do minimum dopiszesz granice roku, dopisz je również do licznika. Liczenie wszystkich lat przy wybieraniu daty tylko z jednego roku nie zapewni poprawnej kontroli braku dopasowań.

Mechaniczny selektor nad pustymi przegródkami i osobny rząd kart kalendarza

Co sprawdzam, gdy wynik się nie zgadza

Najpierw oglądam kilka wartości dat po zmianie formatu na Ogólny. Prawdziwe daty pokażą liczby kolejne. Jeśli źródło miesza tekst z liczbami, porządkuję je przed wybieraniem minimum. Nie przykrywam całego obliczenia obsługą błędów, która ukryłaby uszkodzony import.

Następnie sprawdzam wyrównanie zakresów, literówki w mieście i dodatkowe spacje. B2:B6 oraz C3:C7 mają ten sam rozmiar, ale opisują inne pary komórek. Excel nie zna znaczenia nagłówków na tyle, żeby naprawić takie przesunięcie.

To hasło dotyczy dat skrajnych. Przesuwanie daty o liczbę miesięcy jest osobnym zadaniem dla NR.SER.DATY / EDATE, a budowanie daty z roku, miesiąca i dnia opisuje hasło DATA. Nie zamieniam tych operacji miejscami tylko dlatego, że wszystkie dotyczą kalendarza.

Ćwiczenie: przestaw wiersze i zmień kryterium

Dla Warszawy przewidź minimum oraz maksimum bez ograniczenia roku. Oczekiwane daty to 2024-01-05 i 2025-01-02. Następnie przestaw kolejność pięciu rekordów razem z całymi wierszami. Wyniki powinny pozostać takie same, bo wybór dotyczy wartości dat, a nie położenia rekordów.

Na końcu wpisz w E2 miasto nieobecne w tabeli. Ja chcę zobaczyć jawny komunikat o braku dat, a nie przypadkowo sformatowane zero. To niewielka różnica w formule i bardzo duża różnica dla osoby czytającej raport.

Najważniejsze w pigułce

Czy istnieje funkcja DATA.WARUNKI?

Nie. Opisany wybór dat skrajnych wykonują MIN.WARUNKÓW i MAKS.WARUNKÓW, czyli MINIFS i MAXIFS.

Czy MIN.WARUNKÓW zwraca pierwszy pasujący wiersz?

Wybiera najmniejszą wartość spośród komórek spełniających kryteria. Kolejność wierszy nie jest regułą wyboru daty.

Jak uniknąć dziwnej daty przy braku dopasowania?

Sprawdź LICZ.WARUNKI z takimi samymi kryteriami. Dla współczesnych dat liczbowych można wykluczyć wartości niedodatnie i zwrócić jawny komunikat o braku dat.

Przy pracy nad artykułem użyto w zautomatyzowany sposób sztucznej inteligencji. Jeśli też chcesz tak umieć, sprawdź ten projekt.

Kajo Rudziński

Newsletter KajoData

Zostańmy w kontakcie.

Piszę o analizie danych, uczeniu się i zmianie pracy. Dzielę się tym, co pomaga mi ogarniać technologię i zawodowe decyzje. Jeśli lubisz ten sposób myślenia, zapraszam do mojego newslettera.