web-dev-qa-db-fra.com

Formatez une période en nombre de jours, heures et minutes

Ceci est purement une question de feuille Excel.

J'ai un laps de temps qui est fondamentalement une différence entre deux cellules, chacune contenant une date:

J'ai réussi à obtenir la différence de temps en nombre d'heures et de minutes en modifiant le format numérique en [h]:mm. Maintenant, j'aimerais connaître la différence en nombre de jours, heures et minutes. J'ai essayé de définir le format numérique sur [d]:[h]:[mm] mais cela n'est pas accepté par Excel.

Voici ce que j'ai maintenant:

    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

Voici ce que je voudrais obtenir:

    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

Comment puis je faire ça? Y at-il un format numérique disponible pour cela?

17
Otiel

Vous pouvez utiliser TEXT
= TEXT(B1-A1,"d:h:mm")

Notez que le même effet peut être obtenu en utilisant un format de nombre simple sur les cellules directement

  • sélectionnez votre plage (cellules C1, C2 etc)
  • clic droit et Format Cells
  • Douane
  • Tapez d:hh:mm

Si, contrairement à vos données d'exemple, vos différences de date dépassent 31 jours, une approche telle que =INT(B1-A1)&":"&TEXT(B1-A1,"h:mm")
marchera

25
brettdj

Attention: ce qui précède ne fonctionne que pour des plages inférieures à 31 jours . 

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

au lieu de cela pour des plages supérieures à 31 jours. Cela ne va pas trier bien, il serait donc préférable de faire le calcul dans une colonne et ensuite de prettifier cette colonne pour le résultat final.

7
Bill Barry

Malheureusement, il semble que les formats de nombre et de date/heure ne puissent être combinés, sinon un format personnalisé de:

0:h:m

serait le billet. Toutefois, si vous vous contentez d'afficher le nombre de jours (fractionnels) pendant 32 jours ou plus, vous pouvez utiliser un format personnalisé tel que:

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

La valeur de la cellule reste numérique. 

2
Gary

Ce qui suit n'est certainement pas la formule la plus courte ni une réponse directe à la question, mais permet d'afficher le résultat correct (également sur LibreOffice) au format suivant:

# jours ## heures ## minutes ## secondes

=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")
1
inetpro

L'approche suivante fonctionne également, en supposant que votre date de début est dans la cellule C2 et que votre date de fin est dans la cellule D2:

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