
Generisk formel
(=MIN(IF((range>=TODAY()),range)))
Sammendrag
For å få neste planlagte hendelse fra en liste over hendelser med datoer, kan du bruke en matriseformel basert på MIN og DAG-funksjonene for å finne neste dato, og INDEKS og MATCH for å vise hendelsen på den datoen. I eksemplet vist er formelen i G6:
(=MIN(IF((date>=TODAY()),date)))
Hvor "dato" er det navngitte området D5: D14.
Merk: dette er en matriseformel og må angis med Control + Shift + Enter.
Forklaring
Den første delen av løsningen bruker MIN og TODAY-funksjonene for å finne "neste dato" basert på datoen i dag. Dette gjøres ved å filtrere datoene gjennom IF-funksjonen:
IF((date>=TODAY()),date)
Den logiske testen genererer en rekke SANNE / FALSE verdier, der SANT tilsvarer datoer som er større enn eller lik i dag:
(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)
Når et resultat er SANT, overføres datoen til matrisen som returneres av IF. Når et resultat er FALSE, erstattes datoen med den boolske FALSE. IF-funksjonen returnerer følgende matrise til MIN:
(FALSE;FALSE;FALSE;43371;43385;43399;43413;43427;43441;43455)
MIN-funksjonen ignorerer da FALSE-verdiene, og returnerer den minste datoverdien (43371), som er datoen 28. september 2018 i Excels datasystem.
Få filmenavnet
For å vise filmen knyttet til "neste dato" ", bruker vi INDEX og MATCH:
=INDEX(movie,MATCH(G6,date,0))
Inne i INDEX finner MATCH posisjonen til datoen i G6 i listen over datoer. Denne posisjonen, 4 i eksemplet, returneres til INDEX som et radnummer:
=INDEX(movie,4)
og INDEX returnerer filmen på den posisjonen, "The Dark Knight".
Alt i en formel
For å returnere neste film i en enkelt formel, kan du bruke denne matriseformelen:
(=INDEX(movie,MATCH(MIN(IF((date>=TODAY()),date)),date,0)))
Med MINIFS
Hvis du har en nyere versjon av Excel, kan du bruke MINIFS-funksjonen i stedet for matriseformelen i G6:
=MINIFS(date,date,">="&TODAY())
MINIFS ble introdusert i Excel 2016 via Office 365.
Håndteringsfeil
Formelen på denne siden fungerer selv når hendelser ikke er sortert etter dato. Imidlertid, hvis det ikke er noen kommende datoer, vil MIN-funksjonen returnere null i stedet for en feil. Dette vil vises som datoen "0-Jan-00" i G6, og INDEKS- og MATCH-formelen vil kaste en # N / A-feil, siden det ikke er noen null-rad å hente en verdi fra. For å fange denne feilen, kan du erstatte MIN med SMALL-funksjonen, og deretter pakke hele formelen i FEIL slik:
=(IFERROR(SMALL(IF((date>=TODAY()),date),1),"None found"))
I motsetning til MIN, vil SMALL-funksjonen kaste en feil når en verdi ikke blir funnet, slik at FEIL kan brukes til å håndtere feilen.