Formato de tempo decorrido do Excel


7

No Excel, dado um número que representa uma certa quantidade de tempo (por exemplo, 25,5 horas), existe uma maneira de formatá-lo para que ele apareça como 1d 1h 30m?

Pergunta de recompensa:

Existe uma maneira de adicionar meses a esse formato? por exemplo, 1M 1d 1h 1m. O problema com o formato atual é que ele não lida com nada durante 32 dias (ou seja, 32,5 é formatado como 1d 8h 0m)


2
Se um mês durar 30 dias, você poderá adaptar a fórmula do @Lance Roberts. Caso contrário, é preciso também saber a data de início.
harrymc

1
Você precisa fornecer mais detalhes sobre o formato com o qual você começa por meses, pois na sua primeira sentença 32,5 deve ser em horas. Como é mostrado de maneira diferente por dias?
Lance Roberts

1
minha pergunta original indicava horas, mas acredito que a solução assume que o valor está em dias: [<0,04] ​​[m] "m"; [<1] h "h" m "m"; d "d" h "h" milímetros". Estou bem em assumir que um mês é um número fixo de dias (por exemplo, 30 dias por mês).
RussellZ

Alguém tem uma solução?
RussellZ

Respostas:


15

Você precisará converter essas horas em algo que o Excel possa entender.

Supondo que suas horas estejam na forma decimal (por exemplo, 25,5 horas, 37,25 horas), veja como você pode fazê-lo:

Etapa 1:
Divida a quantia por 24.
Isso obtém a proporção hora / dia ou converte a quantia em uma fração de dia (por exemplo, 25 horas converte em 1 1/24 ou 1,04).

Etapa 2:
altere o formato numérico da célula que contém a fórmula ou o valor convertido para Personalizado
(pressione Ctrl+ 1> Personalizado). Use esta string de formato:

[<=0.0416551] [m]"m";[<1]h"h" m"m";d"d" h"h" m"m"

0.0416551 = 0:59:59 em decimal

ou

[<1]h"h" m"m"; d"d" h"h" m"m"

ou

d"d" h"h" m"m"

Exemplo : insira a descrição da imagem aqui


1
absolutamente incrível. Obrigado! Vejo que não mostra dias se for menos de 24 horas. alguma maneira de não mostrar horas se for menos de 1 hora?
RussellZ

Também estou tentando descobrir isso (meu TOC está agindo!). Por alguma razão, quando eu uso "m" por si só em um formato numérico, o Excel o interpreta como MÊS, e não MINUTE, por isso continua exibindo 1. #
Ellesa 26/10/11

4
Existe uma maneira de adicionar meses a esse formato? por exemplo, 1M 1d 1h 1m. O problema com o formato atual é que não lidar com qualquer coisa acima de 32 dias (ou seja, 32,5 é formatado como 0m 8h 1d)
RussellZ

Eu sei que isso não se refere à pergunta, mas Você poderia me dizer como adicionar Ctrl+ 1no post como você? Muito Obrigado!
Lucas

1
Coloque-os em <kbd></kbd>tags. :)
Ellesa

4

Se o tempo é em horas, é o seguinte:

=TRUNC(A1/24) & "d " & TRUNC(A1-TRUNC(A1/24)*24) & "h " & 
       60*((A1-TRUNC(A1/24)*24)-TRUNC((A1-TRUNC(A1/24)*24))) & "m"

1
Superado nesse :). Para dados em formato de contagem de horas decimais, a criação de uma nova coluna com a fórmula de reformatação é realmente a única maneira (oculte os valores originais, se possível). A fórmula pode ser simplificado um pouco: =TRUNC(A1/24) & "d " & TRUNC(MOD(A1,24)) & "h " & ROUND((A1-TRUNC(A1))*60,0) &"m".
26611 kopischke

Obrigado, eu sabia que poderia ser mais simples, mas não conseguia descobrir. Eu provavelmente faria a formatação também.
Lance Roberts

1

(não é possível adicionar como comentário, pois não tenho 50 reputação)

Para exibir meses, é possível usar o seguinte formato (observe que isso não atende diretamente às suas necessidades exatas, mas você pode modificá-lo conforme apropriado). Também adicionei algumas cores às minhas strings para esclarecer os intervalos de tempo: no exemplo principal Vermelho por mais de um dia, preto por um dia. O segundo exemplo tem vermelho para o ano +, azul esverdeado entre um quarto e um ano e azul caso contrário. Obviamente, você pode usar diferentes especificações de formatação conforme desejar.

[Red][>1]yy\y mm\m dd\d hh:mm:ss;[Black][<=1]hh:mm:ss;[Red]-0.000000;[White]@ ou [Red][>=364.5]yy\y mm\m dd\d;[Color50][<=122]mm\m dd\d;[Color5]mm\m dd\d;[Black]@

Para formatar "32,5" como 32d 12:00:00, você pode usar [d]\d hh:mm:ss, observe os colchetes, indicando que deseja incluir valores maiores que 31 para o número de dias.

A notação \ instrui o excel a incluir especificamente a letra após o símbolo \, em vez de interpretá-la como metadados para o comando (por exemplo, d, sem barra, produziria imediatamente os dias novamente). Isso é equivalente à notação "" que você vê em outros exemplos.

Algumas limitações e / ou bugs:

1) você não pode especificar mais de quatro tipos de formatação, o último dos quais deve ser apenas para texto. Isso significa que apenas três são utilizáveis ​​para formatar datas, a terceira das quais não pode conter comparações maiores ou menores que as.

2) o mm em meses é realmente alto em 1 ao fazer uma diferença de data (a partir do Excel 2010), pois o Excel realmente armazena as diferenças de data como DateTimes completos e não há 0 mês, mas janeiro é o primeiro mês. Os dias parecem não ter esse problema, pois "1.1" é exibido como 1 dia e 0,9 é exibido como 0 dias (ambos com 1 mês: P). Eu não sei como fazer contas no diálogo de estilo de célula (por exemplo, (mm-1) \ m); portanto, se você realmente deseja que esses números sejam precisos (subtraia 1 do mês), será necessário escrever um vB script para convertê-lo e exibir a sequência final de texto.

3) O Excel não lida adequadamente com as diferenças de horário negativas

Como alternativa, você pode fazer a formatação na própria célula com uma fórmula como

=IF((B2-A2)>1,DATEDIF(A2,B2,"y")&"y "&TEXT(DATEDIF(A2,B2,"ym"),"00")&"m "&TEXT(DATEDIF(A2,B2,"md"),"00")&"d",TEXT(A2-B2,"hh:mm:ss"))

Isso exibirá as informações como hh: mm: ss se for menor que um dia e y MM dd se for maior que um dia. Isso não estará sujeito ao erro de menos de um mês, como acima. No entanto, essa célula é realmente texto e não é mais um valor numérico. Portanto, você não pode (diretamente) fazer mais cálculos com isso.


Teria sido útil se você tivesse explicado para que servem as barras invertidas. E qual é o problema com todas as cores?
G-Man

Fiz algumas edições acima. Porém, para resolver seus Qs, as barras invertidas (de um lado) são equivalentes ao uso de aspas para ativar o texto literal. As cores são apenas algo que eu achei úteis: P
MPaG
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.