
Obecný vzorec
(=MIN(IF((range>=TODAY()),range)))
souhrn
Chcete-li získat další naplánovanou událost ze seznamu událostí s daty, můžete použít maticový vzorec založený na funkcích MIN a DNES k vyhledání dalšího data a INDEX a MATCH k zobrazení události k tomuto datu. V zobrazeném příkladu je vzorec v G6:
(=MIN(IF((date>=TODAY()),date)))
Kde „datum“ je pojmenovaný rozsah D5: D14.
Poznámka: toto je maticový vzorec a musí být zadán pomocí kláves Control + Shift + Enter.
Vysvětlení
První část řešení využívá funkce MIN a DNES k vyhledání „dalšího data“ na základě dnešního data. To se provádí filtrováním dat pomocí funkce IF:
IF((date>=TODAY()),date)
Logický test generuje pole hodnot PRAVDA / NEPRAVDA, kde PRAVDA odpovídá datům větším nebo rovným dnešku:
(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)
Když je výsledek TRUE, datum je předáno do pole vráceného IF. Když je výsledek FALSE, datum je nahrazeno booleovským FALSE. Funkce IF vrací následující pole na MIN:
(FALSE;FALSE;FALSE;43371;43385;43399;43413;43427;43441;43455)
Funkce MIN poté ignoruje FALSE hodnoty a vrátí nejmenší hodnotu data (43371), což je datum 28. září 2018 v datovém systému aplikace Excel.
Získání názvu filmu
K zobrazení filmu spojeného s „dalším datem“ “používáme INDEX a MATCH:
=INDEX(movie,MATCH(G6,date,0))
V INDEXU MATCH najde pozici data v G6 v seznamu dat. Tato pozice, v příkladu 4, je vrácena do INDEXU jako číslo řádku:
=INDEX(movie,4)
a INDEX vrací film na této pozici „Temný rytíř“.
Vše v jednom vzorci
Chcete-li vrátit další film v jednom vzorci, můžete použít tento vzorec pole:
(=INDEX(movie,MATCH(MIN(IF((date>=TODAY()),date)),date,0)))
S MINIFY
Pokud máte novější verzi aplikace Excel, můžete místo vzorce pole v G6 použít funkci MINIFS:
=MINIFS(date,date,">="&TODAY())
MINIFS byl představen v aplikaci Excel 2016 prostřednictvím Office 365.
Zpracování chyb
Vzorec na této stránce bude fungovat, i když události nebudou seřazeny podle data. Pokud však neexistují žádná nadcházející data, vrátí funkce MIN místo chyby nulu. Toto se zobrazí jako datum „0-Jan-00“ v G6 a vzorec INDEX a MATCH způsobí chybu # N / A, protože neexistuje žádný nultý řádek, ze kterého by se měla získat hodnota. Chcete-li tuto chybu zachytit, můžete nahradit MIN funkcí SMALL a poté zabalit celý vzorec do IFERROR takto:
=(IFERROR(SMALL(IF((date>=TODAY()),date),1),"None found"))
Na rozdíl od MIN funkce SMALL vyvolá chybu, když není nalezena hodnota, takže ke správě chyby lze použít IFERROR.