2011-10-28 29 views
14

Esto es puramente una pregunta de hoja de Excel.Formatear un lapso de tiempo como un número de días, horas y minutos

que tienen un lapso de tiempo que es básicamente una diferencia entre dos células, cada una conteniendo una fecha:

he logrado obtener la diferencia de tiempo en la cantidad de horas y minutos cambiando el formato de número a [h]:mm. Ahora me gustaría obtener la diferencia en cantidad de días, horas y minutos. Traté de establecer el formato de número en [d]:[h]:[mm] pero Excel no lo acepta.

Esto es lo que tengo ahora:

A     B     C (=A2-A1) 
    ---------------- ---------------- ---------- 
1| 14/10/2011 00:00 17/10/2011 07:50 79:50 
2| 14/10/2011 00:00 17/10/2011 11:00 83:00 

Esto es lo que le gustaría obtener:

A     B     C (=A2-A1) 
    ---------------- ---------------- ---------- 
1| 14/10/2011 00:00 17/10/2011 07:50 3:7:50 
2| 14/10/2011 00:00 17/10/2011 11:00 3:11:00 

¿Cómo puedo hacer eso? ¿Hay un formato de número disponible para eso?

Respuesta

23

Puede utilizar TEXT
= TEXT(B1-A1,"d:h:mm")

Nota mismo efecto se puede lograr usando un formato simple número en las células directamente

  • seleccione su rango (células C1, C2 etc)
  • derecha haga clic en y Formato de celdas
  • personalizado
  • Tipo d:hh:mm

Si a diferencia de sus datos de ejemplo, sus diferencias de las fechas superan los 31 días, a continuación, un enfoque como =INT(B1-A1)&":"&TEXT(B1-A1,"h:mm")
trabajará

+4

Bueno, y yo usaría 'TEXTO (B1-A1; SI (B1-A1> 1;" d: hh: mm ";" h: mm "))' para obtener el número de días solo si la diferencia horaria es superior a un día. – Otiel

+0

la fórmula tal como está escrita no se acepta en excel – Toshe

+0

@tosh, ¿qué quiere decir con que Excel no lo acepta? – brettdj

7

Advertencia: lo anterior sólo funciona para distancias inferiores a las 31 días. utilizar

=CONCATENATE(TEXT(FLOOR(B1-A1,1),"@")," Days",TEXT(B1-A1," h:mm:ss")) 

en lugar de intervalos anteriores 31 días. Esto no se ordenará bien, por lo que sería mejor hacer el cálculo en una columna y luego embellecer esa columna para el resultado final.

+0

Gracias, eso es lo que estaba buscando, cuando vine aquí desde Google. Pero debería ser "FLOOR (B1-A1,0)" en su lugar, ¿por qué quieres mantener la parte fraccionaria de los días? –

+0

¡Obtengo un # DIV/0! si uso FLOOR (, 0). El segundo parámetro es 'significado', no 'número de lugares decimales que conservar'. Puede proporcionar '0.1' o '0.01' con éxito para mantener los lugares decimales, pero no '0' para eliminarlos. En este caso, '1' es correcto, ya que FLOOR está más cerca de '1'. – MrWonderful

1

La siguiente no es ciertamente la fórmula más corta y no una respuesta directa a la pregunta, pero funciona para mostrar el resultado correcto (también en LibreOffice) en el siguiente formato:

# días ## horas ## minutos # # segundos

=CONCATENATE(TEXT(FLOOR(B2-A2,1),"@")," days ", IF(HOUR(A12)-HOUR(A11)<0,HOUR(A12)-HOUR(A11)+24,HOUR(A12)-HOUR(A11))," hours ",IF(MINUTE(A12)-MINUTE(A11)<0,MINUTE(A12)-MINUTE(A11)+60,MINUTE(A12)-MINUTE(A11)), " minutes ", TEXT(B2-A2,"s"), " seconds") 
0

El siguiente enfoque funciona tan bien, en el supuesto de que la fecha de inicio es en la celda C2 y la fecha de finalización está en la celda D2:

=TEXT((D2-C2)-MOD(D2-C2,1),"0") & " days " & TEXT(MOD(D2-C2,1),"hh:mm") 
0

Un Afortunadamente parece numéricos y de fecha y hora formatos no se pueden combinar, por lo demás un formato personalizado de:

0:h:m 

sería el billete.Sin embargo, si por tramos de 32 días o más, que esté satisfecho con sólo visualizar el número de días (fraccionarios) se puede utilizar un formato personalizado como:

[>=32] 0.00 "days"; d:h:m 

El valor de la celda permanece numérico.

0

=IFERROR(INT(Date1-Date2)&" Days "&INT(MOD((Date1-Date2);INT(Datw1-Date2))*24)&" Hours "&MINUTE(Fate1-Date)&" Min";IFERROR((Date1-Date2);"NA"))enter code here

creo que esto debería hacer el truco, cualquiera que sea la fecha que tiene.

Cuestiones relacionadas