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 vai fazer)

Eu acredito que isso está correto, mas eu tenho um #value! resultado que eu acho que é porque B5 não tem o valor do tempo de data do excel correto.

Por favor informar

=DATEVALUE(MID(B5,5,2) & MID(B5,8,3) & RIGHT(B5,4)) + TIME(MID(B5,17,2),MID(B5,20,2))
kbrudell
fonte
Qual é o valor em B5?
Ali

Respostas:

2

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

=MID(B5,5,20)+0

formato conforme requerido, por ex. formato personalizado 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

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

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

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

formatar célula de resultado como [h]:mm:ss como antes

veja exemplos dessa última abordagem Aqui

barry houdini
fonte
Obrigado pela sua excelente e rápida resposta. Depois de desperdiçar tanto tempo em sites oficiais da Microsoft, estou realmente impressionado com essa comunidade atenciosa!
kbrudell
1

Par de 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 o seu DATEVALUE funções. 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 string. 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 vai dar 59 hours para a sua data.

Brad Patton
fonte
Obrigado pela sua excelente e rápida resposta. Depois de desperdiçar tanto tempo em sites oficiais da Microsoft, estou realmente impressionado com essa comunidade atenciosa!
kbrudell
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 o 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 sua matemática de data / hora nos valores de E1.

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

=DATEVALUE(MID(A1,8,3)&" "&MID(A1,5,2)&", "&MID(A1,12,4))+(TIMEVALUE(RIGHT(A1,5)))
dav
fonte