![](https://cdn.wiki-base.com/7054375/excel_formula_get_next_scheduled_event__2.png.webp)
Fórmula genérica
(=MIN(IF((range>=TODAY()),range)))
Resumo
Para obter o próximo evento agendado de uma lista de eventos com datas, você pode usar uma fórmula de matriz baseada nas funções MIN e TODAY para encontrar a próxima data e INDEX e MATCH para exibir o evento nessa data. No exemplo mostrado, a fórmula em G6 é:
(=MIN(IF((date>=TODAY()),date)))
Onde "data" é o intervalo nomeado D5: D14.
Observação: esta é uma fórmula de matriz e deve ser inserida com Control + Shift + Enter.
Explicação
A primeira parte da solução usa as funções MIN e TODAY para encontrar a "próxima data" com base na data de hoje. Isso é feito filtrando as datas por meio da função IF:
IF((date>=TODAY()),date)
O teste lógico gera uma matriz de valores TRUE / FALSE, onde TRUE corresponde a datas maiores ou iguais a hoje:
(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)
Quando um resultado é TRUE, a data é passada para a matriz retornada por IF. Quando um resultado é FALSE, a data é substituída pelo booleano FALSE. A função IF retorna a seguinte matriz para MIN:
(FALSE;FALSE;FALSE;43371;43385;43399;43413;43427;43441;43455)
A função MIN então ignora os valores FALSE e retorna o menor valor de data (43371), que é a data 28 de setembro de 2018 no sistema de datas do Excel.
Obtendo o nome do filme
Para exibir o filme associado à "próxima data" ", usamos INDEX e MATCH:
=INDEX(movie,MATCH(G6,date,0))
Dentro de INDEX, MATCH encontra a posição da data em G6 na lista de datas. Esta posição, 4 no exemplo, é retornada para INDEX como um número de linha:
=INDEX(movie,4)
e INDEX retorna o filme naquela posição, "O Cavaleiro das Trevas".
Tudo em uma fórmula
Para retornar o próximo filme em uma única fórmula, você pode usar esta fórmula de matriz:
(=INDEX(movie,MATCH(MIN(IF((date>=TODAY()),date)),date,0)))
Com MINIFS
Se você tiver uma versão mais recente do Excel, poderá usar a função MINIFS em vez da fórmula de matriz em G6:
=MINIFS(date,date,">="&TODAY())
MINIFS foi introduzido no Excel 2016 via Office 365.
Tratamento de erros
A fórmula nesta página funcionará mesmo quando os eventos não forem classificados por data. No entanto, se não houver datas futuras, a função MIN retornará zero em vez de um erro. Isso será exibido como a data "0-Jan-00" em G6, e a fórmula INDEX e MATCH gerará um erro # N / A, já que não há zero-ésima linha para obter um valor. Para detectar esse erro, você pode substituir MIN pela função SMALL e, em seguida, envolver toda a fórmula em IFERROR assim:
=(IFERROR(SMALL(IF((date>=TODAY()),date),1),"None found"))
Ao contrário de MIN, a função SMALL lançará um erro quando um valor não for encontrado, então IFERROR pode ser usado para gerenciar o erro.