
Všeobecný vzorec
(=MIN(IF((range>=TODAY()),range)))
Zhrnutie
Ak chcete získať nasledujúcu naplánovanú udalosť zo zoznamu udalostí s dátumami, môžete použiť vzorec poľa založený na funkciách MIN a DNES na vyhľadanie nasledujúceho dátumu a INDEX a MATCH na zobrazenie udalosti k danému dátumu. V zobrazenom príklade je vzorec v G6:
(=MIN(IF((date>=TODAY()),date)))
Kde „dátum“ je pomenovaný rozsah D5: D14.
Poznámka: toto je vzorec poľa a musí byť zadaný pomocou klávesov Control + Shift + Enter.
Vysvetlenie
Prvá časť riešenia využíva funkcie MIN a DNES na vyhľadanie „nasledujúceho dátumu“ na základe dnešného dátumu. To sa deje filtrovaním dátumov pomocou funkcie IF:
IF((date>=TODAY()),date)
Logický test vygeneruje pole hodnôt TRUE / FALSE, kde TRUE zodpovedá dátumom väčším alebo rovným dnešku:
(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)
Ak je výsledok TRUE, dátum sa odovzdá do poľa vráteného IF. Ak je výsledok FALSE, dátum sa nahradí boolovským FALSE. Funkcia IF vráti nasledujúce pole na MIN:
(FALSE;FALSE;FALSE;43371;43385;43399;43413;43427;43441;43455)
Funkcia MIN potom ignoruje FALSE hodnoty a vráti najmenšiu hodnotu dátumu (43371), ktorá je v systéme dátumov programu Excel dátum 28. september 2018.
Získanie názvu filmu
Na zobrazenie filmu spojeného s „nasledujúcim dátumom“ “používame INDEX a MATCH:
=INDEX(movie,MATCH(G6,date,0))
V rámci INDEXU MATCH nájde pozíciu dátumu v G6 v zozname dátumov. Táto pozícia, v príklade 4, sa vráti na INDEX ako číslo riadku:
=INDEX(movie,4)
a INDEX vráti film na tomto mieste „The Dark Knight“.
Všetko v jednom vzorci
Ak chcete vrátiť ďalší film v jednom vzorci, môžete použiť tento vzorec poľa:
(=INDEX(movie,MATCH(MIN(IF((date>=TODAY()),date)),date,0)))
S MINIFS
Ak máte novšiu verziu Excelu, môžete namiesto vzorca poľa v G6 použiť funkciu MINIFS:
=MINIFS(date,date,">="&TODAY())
MINIFS bol predstavený v programe Excel 2016 prostredníctvom služieb Office 365.
Zaobchádzanie s chybami
Vzorec na tejto stránke bude fungovať, aj keď udalosti nebudú zoradené podľa dátumu. Ak však neexistujú žiadne nadchádzajúce dátumy, funkcia MIN vráti namiesto chyby nulu. Toto sa v G6 zobrazí ako dátum „0-január-00“ a vzorec INDEX a MATCH spôsobí chybu # N / A, pretože neexistuje nultý riadok, z ktorého by sa mala získať hodnota. Na zachytenie tejto chyby môžete nahradiť MIN funkciou SMALL a potom zabaliť celý vzorec do IFERROR takto:
=(IFERROR(SMALL(IF((date>=TODAY()),date),1),"None found"))
Na rozdiel od MIN funkcia SMALL spôsobí chybu, keď sa nenájde hodnota, takže na správu chyby je možné použiť IFERROR.