Excel 2013 - Como ter um Lookup retorna a primeira data após uma data especificada?

0

Por isso, estou procurando criar uma função que pesquise um código de ID exclusivo em uma coluna e retorne um registro de data e hora correspondente de outra coluna. No entanto, existem vários carimbos de hora associados a cada código de ID exclusivo. Quero apenas retornar o registro de data e hora imediatamente após um período especificado.

Por exemplo, para o ID Exclusivo "9f45Q3", há quatro carimbos de hora associados a ele:

  • 11:00
  • 11:15
  • 11:40
  • 11:55

Eu preciso encontrar uma maneira de dizer ao Excel para retornar o carimbo de data / hora para "9f45Q3" que mais imediatamente seguiu às 11:30. (apenas um tempo arbitrário para explicar) Nesse caso, eu gostaria que o Excel retornasse 11:40, porque ele segue o tempo especificado mais imediatamente.

Qualquer ajuda seria muito apreciada. Obrigada!

    
por Derek 09.11.2017 / 20:56

1 resposta

0

Use INDEX e AGGREGATE

Use o agregado para determinar o número da linha que corresponde aos seus critérios ou o segundo ou o terceiro. No seu caso, segundo. O AGGREGATE realiza operações parecidas com um array, então você vai querer evitar o uso de referências completas de colunas.

=AGGREGATE(14,6, row(range of interest)/(true condition check(range of interest)*true condition check n (range of interest)),2)

14 tells AGGREGATE to sort an array of results from smallest to largest.

 6 tells AGGREGATE to ignore any errors and exclude them from the array of results)

ROW(range of interest) will return the row number corresponding to the current calculation

Condition check will be some formula you come up with that returns a TRUE or FALSE result.  If it is false it will result in a divide by 0 calculation which the 6 will tell aggregate to ignore.  You can apply multiple conditions and separate them by a * which will act as an AND function.
 2 tells AGGREGATE to return the 2nd result in the sorted array.  So in this case it should be the second row number that matches your results.

A próxima coisa a fazer é colocar a função AGGREGATE dentro do INDEX para retornar a informação que você deseja. Como o INDEX não realiza cálculos parecidos com matrizes, é seguro usar referências de colunas completas. Digamos que seu carimbo de data / hora esteja na coluna B. Sua fórmula de índice seria algo como:

=INDEX(B:B,AGGREGATE())

Então, no final, supondo que seu ID estava no intervalo A2: A8 e seu carimbo de data / hora estava no intervalo B2: B8. E o código de ID que você estava procurando estava em C1, sua fórmula pode parecer:

=INDEX(B:B,AGGREGATE(14,6,ROW(A2:A8)/(A2:A8=C1),2)

Agora, se você quiser adicionar um pouco de verificação de erros, você pode incluir a função IFERROR e fazer com que pareça:

=IFERROR(INDEX(B:B,AGGREGATE(14,6,ROW(A2:A8)/(A2:A8=C1),2),"Could NOT find the darned thing")
    
por 09.11.2017 / 21:32