vlookup datetime FALSE; valor de retorno de uma das duas colunas com base na data / hora exata

0

Com base nos dados abaixo, estou tentando fazer um vlookup tal que se o datetime em termina em 18:59 retorne o valor em column_3, se o datetime terminar em 6:59 retorne o valor em column_4 ...

10/7/2013 18:59  534    2246
10/7/2013 6:59  2265    2241
10/6/2013 18:59 2265    2070
10/6/2013 6:59  2165    2070
10/5/2013 18:59 2165    2076
10/5/2013 6:59  1599    2076
10/4/2013 18:59 1599    1934
10/4/2013 6:59  1772    1934
10/3/2013 18:59 1772    1972
10/3/2013 6:59  2004    1972
10/2/2013 18:59 2004    2047
10/2/2013 6:59  2034    2047
10/1/2013 18:59 2034    1976
10/1/2013 6:59  2074    1976

Como no mundo eu faço isso?

    
por Julie Kadas 08.10.2013 / 21:30

1 resposta

0

Não há VLOOKUP para fazer aqui. Basta usar IF e HOUR :

=IF(HOUR(A1)=18, B1, C1)

HOUR retorna a hora, como você deve ter imaginado.

Se houver mais horas e minutos:

=IF(TEXT(A1,"hh:mm")="18:59", B1, IF(TEXT(A1,"hh:mm")="06:59", C1, "")

TEXT retorna a versão em texto do formato fornecido, aqui eu usei hh:mm .

De acordo com novas informações no comentário:

Não tenho certeza porque não é tão claro, mas uma fórmula genérica poderia ser:

=VLOOKUP(A1, 'Pathname[Filename]Sheetname'!A:D, IF(MOD(A1,1)>0.5, 3, 4), 0)

MOD(A1,1) fornece a fração da data. Se a data fosse meio-dia, retornaria 0.5. Se a hora dessa data for 18:59, retornará um valor acima de 0,5 e às 6:59 um valor abaixo de 0,5.

    
por 08.10.2013 / 21:35