Valores de data do texto

2

Eu tenho dois campos de texto com datas. Eu quero convertê-los em datas de excel e subtrair um do outro por exemplo:

cell 1: Wed 18 Feb 2015 18:00
Cell 2: Mon 16 Feb 2015 07:00

Dando 59 horas ( 59:00:00 será suficiente)

Acredito que isso esteja correto, mas obtenho um resultado #value! , o que eu acho que é porque o B5 não possui o valor correto de data / hora do Excel.

Por favor, informe

=DATEVALUE(MID(B5,5,2) & MID(B5,8,3) & RIGHT(B5,4)) + TIME(MID(B5,17,2),MID(B5,20,2))
    
por kbrudell 26.04.2013 / 17:23

3 respostas

2

Você pode converter seus valores com bastante facilidade, por exemplo, com esta fórmula em D5

=MID(B5,5,20)+0

formato

conforme necessário, por ex. formato customizado como ddd d mmm yyyy hh:mm e eles parecerão como antes, mas desta vez eles serão "verdadeiros" data / hora no que diz respeito ao Excel, então você pode simplesmente subtrair um do outro para obter a diferença, ou seja, com valores convertidos em D5 e E5

=E5-D5

formata a célula de resultado como [h]:mm:ss para obter 59:00:00

ou faça a conversão e a subtração em uma célula com essa fórmula

=MID(C5,5,20)-MID(B5,5,20)

formata a célula do resultado como [h]:mm:ss como antes

veja exemplos dessa última abordagem aqui

    
por 26.04.2013 / 19:35
1

Alguns itens. Eu suponho que os valores listados como datas estão no Excel como Strings. Se você os tiver como datas, isso seria muito mais fácil.

Existem dois problemas com as suas funções DATEVALUE . Primeiro os valores sendo extraídos estão errados. Estes são os valores da primeira string:

MID(B5,5,2) = 18
MID(B5,8,3) = Feb
RIGHT(B5,4) = 8:00
MID(B5,17,2) = 18
MID(B5,20,2) = 00

Em segundo lugar, o DATEVALUE espera analisar uma sequência. Então você precisa de separadores. Por exemplo:

=DATEVALUE(MID(B8,5,2) & "-" & MID(B8,8,3) & "-" & MID(B8,12,4))

Observação: essa abordagem é frágil porque assume o formato do seu timestring. Ele será quebrado se algum dos valores não estiver alinhado.

Depois de obter as datas corretas do Excel, você pode usar a seguinte fórmula para calcular o intervalo de tempo em horas entre os dois

=INT(B5-B6)*24 + INT(MOD(B5-B6,1)*24) &" hours"

Isso dará 59 hours para sua data.

    
por 26.04.2013 / 18:29
0

Você está no caminho certo com sua fórmula, mas é um pouco mais complexo do que isso. Para esse tipo de cenário, geralmente acabo dividindo-o em várias células auxiliares para reduzir a complexidade, embora você possa consolidar tudo isso se desejar. Assumindo seu valor de data / hora em A1:

Cell  Formula                                         Result
A1    Wed 18 Feb 2015                                 18:00
B1    =MID(A1,8,3)&" "&MID(A1,5,2)&", "&MID(A1,12,4)  Feb 18, 2015
C1    =RIGHT(A1,5)                                    18:00
D1    =TIMEVALUE(C1)                                  1/0/00 18:00
E1    =DATEVALUE(B1)+D1                               2/18/2015 18:00

Em seguida, faça a sua data / hora nos valores de E1.

Aqui está uma versão combinada de uma única célula da fórmula:

=DATEVALUE(MID(A1,8,3)&" "&MID(A1,5,2)&", "&MID(A1,12,4))+(TIMEVALUE(RIGHT(A1,5)))
    
por 26.04.2013 / 18:23