Comment soustraire des heures dans Excel
Pour soustraire des heures dans Excel, écris =C2-B2, l’heure de fin moins l’heure de début, et la cellule affiche la durée en heures et en minutes. Aucune fonction n’est nécessaire, parce qu’Excel range chaque horaire comme une fraction de journée et qu’une soustraction ordinaire porte sur ces deux nombres.
Tout ce qui suit vient ensuite du format de la cellule plutôt que du calcul, et c’est là que le sujet devient piégeux. Une colonne se couvre de dièses dès que le résultat passe sous zéro, et un total repart à zéro après 24 heures. Des minutes s’évaporent aussi quand une saisie est restée du texte, sans qu’Excel signale rien. Les six sections qui suivent reprennent ces cas un par un, sur le même classeur de pointage.
Soustraction d’heures
Le classeur de l’article, pour refaire chaque étape sur les mêmes données.
Calculer la différence entre deux heures dans Excel
La différence entre deux heures est une soustraction, l’heure de fin moins l’heure de début, et rien d’autre. Excel compte une journée entière comme 1, donc midi vaut 0,5 et une heure vaut un vingt-quatrième, si bien que le signe moins suffit à obtenir l’écart.
La feuille Pointage du fichier d’exemple tient une semaine de travail, avec l’arrivée en colonne B, le départ en C et la pause en D. Les cases jaunes sont celles où tu écris, et les trois colonnes de droite se remplissent toutes seules. Les trois autres onglets servent aux sections suivantes, sur les horaires de nuit, sur les heures revenues d’un export et sur les badgeages à la seconde.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Jour | Arrivée | Départ | Pause | Présence | Travaillé | Au-delà de 7 h |
| 2 | Lundi | 08:00 | 17:00 | 01:00 | 09:00 | 08:00 | 01:00 |
| 3 | Mardi | 08:30 | 18:00 | 01:00 | 09:30 | 08:30 | 01:30 |
| 4 | Mercredi | 09:00 | 16:30 | 00:45 | 07:30 | 06:45 | 00:00 |
| 5 | Jeudi | 08:00 | 17:30 | 01:00 | 09:30 | 08:30 | 01:30 |
| 6 | Vendredi | 08:15 | 16:15 | 00:30 | 08:00 | 07:30 | 00:30 |
| 7 | |||||||
| 8 | Total travaillé | 39:15 | 4:30 | ||||
| 9 | Total en heures décimales | 39,25 |
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Poste | Début | Fin | Fin moins début | Avec MOD |
| 2 | Garde de nuit | 23:15 | 06:45 | ######## | 07:30 |
| 3 | Veille de week-end | 20:30 | 04:15 | ######## | 07:45 |
| 4 | Journée | 09:00 | 17:30 | 08:30 | 08:30 |
| 5 | Garde datée | 21/09/2026 23:15 | 22/09/2026 06:45 | 07:30 | 07:30 |
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Agent | Arrivée | Départ | Durée | Nature de l’arrivée | Durée de l’export |
| 2 | Martin | 08:00 | 16:30 | 08:30 | heure | 08:15 |
| 3 | Leroy | 08:30 | 17:00 | 08:30 | texte | 07:30 |
| 4 | Nguyen | 09:00 | 18:00 | 09:00 | heure | 07:45 |
| 5 | Ferrand | 8h45 | 17:15 | #VALEUR! | texte | 08:00 |
| 6 | Dubois | 08:00 | 16:45 | 08:45 | heure | 06:45 |
| 7 | ||||||
| 8 | Somme de la colonne F | 30:30 | ||||
| 9 | Valeurs comptées par NB | 4 | ||||
| 10 | Cellules remplies | 5 |
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Badge | Arrivée | Départ | Durée | Durée à la seconde | Bornes arrondies |
| 2 | Matin | 07:59 | 12:30 | 04:30 | 4:30:50 | 04:30 |
| 3 | Après-midi | 13:45 | 17:15 | 03:29 | 3:29:40 | 03:29 |
| 4 | Soirée | 18:00 | 20:29 | 02:29 | 2:29:40 | 02:30 |
| 5 | ||||||
| 6 | Totaux | 10:30 | 10:30:10 | 10:29 |
Écrire la formule fin moins début
Le plus sûr est de cliquer sur les deux cellules au lieu de taper leurs adresses, ce qui évite d’écrire C2 pour B2 sur une feuille chargée. La recopie descend ensuite la formule sur toute la semaine en un geste.
- 01Sur la feuille Pointage, clique en
E2, la ligne du lundi, et tape=. - 02Clique sur
C2, l’heure de départ, puis tape le signe-. - 03Clique sur
B2, l’heure d’arrivée, et valide par Entrée. - 04La colonne est déjà remplie jusqu’à la ligne 6 dans le fichier, comme le ferait un double-clic sur la poignée de recopie, en bas à droite de la cellule.
=C2-B2Le temps de présence du lundi, 09:00 entre 08:00 et 17:00.
Excel habille le résultat d’un format d’heure sans qu’on le lui demande, parce que les deux cellules de la soustraction en portent un. La cellule E2 affiche donc 09:00 du premier coup. C’est commode tant que l’écart reste dans la journée. C’est aussi la source de presque tous les ennuis qui suivent, puisque ce format décide seul de ce que tu lis. La fiche du lexique sur la durée revient sur ce rangement en fraction de journée et sur ce qui sépare une durée d’une date.
Retrancher la pause du temps de présence
Une pause se retire exactement comme une heure, puisqu’elle est rangée de la même façon. La colonne F du fichier la soustrait du temps de présence avec =E2-D2. Rien n’empêche de tout écrire d’un coup quand la colonne intermédiaire ne sert à rien.
=C2-B2-D2Le temps travaillé du lundi, une heure de pause déduite, 08:00.
Plusieurs retraits s’enchaînent avec autant de signes moins, ou se groupent dans une SOMME. La formule =C2-SOMME(B2;D2) retire d’un coup l’arrivée et la pause du départ, pour les mêmes 08:00. La seconde écriture tient mieux dans le temps, parce qu’une plage s’étire d’une colonne quand une deuxième pause arrive, là où une suite de soustractions se retape.
Retrancher une durée fixe à un horaire, une pause ou un trajet
Une durée écrite en clair dans une formule ne se tape pas comme dans une cellule, et c’est le premier refus qu’Excel oppose sur ce sujet. La barre de formule rejette =C2-0:45, car elle ne lit ni un nombre ni un nom dans ce 0:45. La même durée passe en revanche sans broncher dès qu’on la met entre guillemets.

Le refus a d’ailleurs une limite désagréable. Tape =C2-1:45 pour retrancher une heure quarante-cinq et Excel accepte la formule, parce qu’il y lit les lignes 1 à 45 de la feuille. La cellule rend alors 00:00, sans un mot d’explication.
=C2-"0:45"Retire trois quarts d’heure au départ du lundi, soit 16:15.
Les guillemets marchent, mais ils se relisent mal, et deux autres écritures disent la même chose plus proprement. La fonction TEMPS assemble une durée à partir de ses heures, de ses minutes et de ses secondes, quand une division par 1440 la compte en minutes.
=C2-TEMPS(0;45;0)La même pause de 45 minutes, écrite avec ses trois nombres.
=C2-45/1440La même pause comptée en minutes, 16:15 une fois la cellule remise au format Heure.
Une journée compte 1 440 minutes, donc 45/1440 vaut 45 minutes et 3/24 vaut trois heures. Les deux premières écritures gardent le format d’heure de la cellule de départ, alors que la division rend un nombre nu comme 0,677. Il faut alors repasser la cellule au format Heure. Le plus solide reste de poser la durée dans une cellule, comme la colonne Pause du fichier, qui se change alors sans rouvrir une formule.
Afficher une soustraction d’heures négative au lieu des dièses
Une soustraction d’heures négative remplit la cellule de dièses, parce qu’Excel ne sait pas dessiner une heure en dessous de zéro. Le calcul, lui, a bien eu lieu. La feuille Nuit du fichier le montre sur une garde de 23:15 à 06:45, dont la colonne D reste en dièses quelle que soit sa largeur. Le format n’y change rien non plus, et la même cellule passée en [h]:mm garde ses dièses tant que la valeur reste sous zéro.
C’est ce qui distingue ces dièses de ceux d’une colonne trop étroite, qui s’en vont d’un double-clic sur la bordure de l’en-tête. La fiche du lexique sur les dièses sépare les deux cas et donne les autres remèdes.
Ramener une garde de nuit dans la journée avec MOD
Un créneau qui passe minuit n’est pas une erreur de saisie, et sa fin est réellement plus petite que son début, ce qui rend l’écart négatif. La fiche du lexique sur la durée range d’ailleurs ce cas parmi les deux seules causes d’un résultat sous zéro. La fonction MOD renvoie le reste d’une division. Le reste d’un écart négatif divisé par 1 revient à lui ajouter une journée entière, ce qui le remet dans le bon sens.
=MOD(C2-B2;1)La garde de 23:15 à 06:45 dure 07:30 au lieu d’afficher des dièses.

La formule sert aussi sur les créneaux ordinaires, puisqu’un écart déjà positif et plus court qu’une journée est son propre reste. La colonne E du fichier l’applique aux quatre lignes, et la journée de 09:00 à 17:30 y donne le même 08:30 que la soustraction nue. Rien n’oblige donc à trier les créneaux avant de recopier la formule. Un SI fait la même chose en plus long, avec =SI(C2<B2;C2-B2+1;C2-B2), mais son résultat sort en nombre nu et demande un format d’heure.
Mettre la date dans la cellule plutôt que l’heure seule
MOD devient inutile dès que la cellule porte la date en même temps que l’heure, car la fin est alors vraiment postérieure au début. La ligne 5 de la feuille Nuit range 21/09/2026 23:15 et 22/09/2026 06:45, et la soustraction rend 07:30 sans rien ajouter autour.
C’est même la seule écriture qui tienne au-delà de 24 heures, pour une astreinte de deux jours par exemple. MOD, lui, ramène toujours le résultat sous la barre des 24. Saisis la date, un espace, puis l’heure, et Excel range les deux dans la même cellule sous forme de date sérielle.
Lire un résultat négatif quand c’est lui la bonne réponse
Il arrive que le négatif soit le résultat attendu, comme un retard sur un horaire prévu ou un budget d’heures dépassé. Deux chemins s’ouvrent alors. Le plus simple passe la cellule en format Nombre par Ctrl + 1, où l’écart se lit -0,6875, qu’une multiplication par 24 traduit en -16,5 heures.
Le second bascule tout le classeur dans le calendrier qui démarre en 1904, un réglage que la fiche sur les dièses décrit. Excel accepte alors d’afficher une heure négative, et la garde de nuit se lit -16:30 au lieu de ses dièses.
Basculer un classeur dans le calendrier qui démarre en 1904 décale de quatre ans et un jour toutes les dates déjà saisies, si bien qu’un 21/09/2026 devient un 22/09/2030. Le réglage ne se choisit donc que sur un classeur neuf, jamais sur un fichier qui porte déjà des dates.
Additionner des heures sur Excel au-delà de 24 heures
Un total d’heures reste bloqué sous 24 tant que sa cellule garde un format d’heure ordinaire, et c’est le piège le plus coûteux de la série. Écris =SOMME(F2:F6) dans une cellule vierge de la feuille Pointage et Excel lui donne lui-même un format d’heure, qui affiche 15:15 là où la semaine totalise 39:15. Il manque exactement 24 heures, et rien à l’écran ne le signale.
Les crochets du format personnalisé [h]:mm lèvent cette limite, parce qu’ils demandent à Excel de compter des heures au lieu de lire une horloge. Sélectionne la cellule du total, appuie sur Ctrl + 1, choisis Personnalisée et tape [h]:mm dans le champ Type.
![La boîte Format de cellule, onglet Nombre, catégorie Personnalisée surlignée, [h]:mm tapé dans le champ Type et l’aperçu qui affiche 39:15](/images/blog/articles/soustraction-heure-excel/format-personnalise.webp)
=SOMME(F2:F6)Le total de la semaine, 15:15 tant que la cellule reste en h:mm et 39:15 une fois passée en [h]:mm.
![La feuille Pointage montrée deux fois, la cellule F8 affichant d’abord 15:15 au format h:mm puis 39:15 au format [h]:mm, barre de formule =SOMME(F2:F6) visible sur les deux](/images/blog/articles/soustraction-heure-excel/total-avant-apres.webp)
Le format ne touche pas à la valeur rangée dans la cellule, seulement à ce qu’elle montre. Un total faux à l’écran nourrit donc quand même de bons calculs ailleurs. La fiche du lexique sur la durée détaille ce compteur qui repart à zéro et les autres formats de cumul.
Retirer les heures faites d’un budget
Un décompte travaille dans l’autre sens, en retranchant le cumul déjà consommé d’un budget posé dans une cellule. Écris 35:00 en U1 sur la feuille Pointage, passe cette cellule en [h]:mm, puis soustrais-en la somme de la colonne des heures travaillées.
=U1-SOMME(F2:F6)Le reste du budget hebdomadaire, négatif dès que les 39:15 dépassent les 35:00.
Le reste passe en dièses dès que le budget est dépassé, pour la raison vue plus haut. Repasse alors la cellule en format Nombre pour lire le dépassement. Multiplie-la par 24 et le dépassement se lit -4,25 heures, dans la forme qu’attend une ligne de paie.
Convertir une soustraction d’heures en heures décimales pour la paie
Une durée ne se multiplie pas par un taux horaire telle quelle, parce qu’elle vaut une fraction de journée et non un nombre d’heures. Multiplie la soustraction par 24 et 8:30 devient 8,5, le chiffre qu’attend un bulletin de paie ou une facture.
La multiplication a ceci de commode qu’elle coupe l’héritage du format, donc =(C2-B2-D2)*24 rend directement 8 dans une cellule vierge, sans passer par Ctrl + 1. Une SOMME, elle, garde le format des durées qu’elle additionne. C’est pour cette raison qu’un total réclame les crochets quand une conversion en décimal n’a besoin de rien.
=SOMME(F2:F6)*24Les 39:15 de la semaine, soit 39,25 heures décimales.

39,25 n’est pas 39 heures et 25 minutes, et la confusion coûte cher sur un bulletin, puisque 15 minutes valent 0,25 heure et non 0,15. Pour compter en minutes plutôt qu’en heures, remplace le 24 par 1440, et les 39:15 de la semaine deviennent 2 355 minutes.
Calculer les heures supplémentaires au-delà d’un seuil
Les heures supplémentaires sont une soustraction bornée à zéro, sans quoi les journées courtes viendraient en déduction des longues et le compte serait faux. La fonction MAX garde le plus grand de deux nombres, donc elle laisse 00:00 les jours où le seuil n’est pas atteint.
=MAX(0;F2-TEMPS(7;0;0))01:00 le lundi, dont les 08:00 dépassent le seuil de sept heures, et 00:00 le mercredi.
La colonne G du fichier applique ce calcul à la semaine et totalise 4:30 au-delà de sept heures par jour. Un seuil hebdomadaire se traite pareil, sur le total plutôt que sur chaque ligne, à un détail près qui fait toute la différence.
TEMPS repart à zéro au-delà de 24 heures, donc TEMPS(35;0;0) ne vaut pas 35 heures mais 11:00. Un seuil hebdomadaire écrit ainsi compte n’importe quoi sans afficher la moindre erreur. Sur la semaine de 39:15 du fichier, =MAX(0;F8-TEMPS(35;0;0)) annonce 28:15 d’heures supplémentaires, là où =MAX(0;F8-35/24) donne les 4:15 réels.
Corriger une soustraction d’heures qui renvoie un résultat faux
Quand une soustraction d’heures donne un résultat que rien n’explique, la cause se trouve presque toujours dans les cellules d’origine plutôt que dans la formule. Deux défauts reviennent sans arrêt, une heure restée du texte après un import et des secondes que le format d’affichage cache.
Une heure revenue en texte depuis un export
Une heure collée depuis un export arrive souvent en texte, alignée à gauche, et la soustraction fonctionne quand même. C’est ce qui rend le défaut si difficile à voir. Excel convertit en effet le texte 08:30 en heure avant de calculer, donc la ligne de Leroy, sur la feuille Import, donne 08:30 comme les autres.
La somme, elle, ne convertit rien et laisse ces cellules de côté sans rien dire. Les cinq durées de la colonne F totalisent 30:30 au lieu de 38:15, parce que la troisième est restée du texte. NB n’en compte d’ailleurs que quatre là où NBVAL en trouve cinq. C’est la comparaison de ces deux fonctions qui débusque le défaut le plus vite, avant même de regarder les cellules une par une.
Une saisie comme 8h45 ne se convertit pas du tout, et la soustraction renvoie alors #VALEUR!, comme sur la ligne de Ferrand. C’est le plus honnête des deux défauts, puisqu’il se voit, quand l’autre se contente de rogner un total.

Pour remettre une colonne d’aplomb, sélectionne-la et passe par l’onglet Données puis Convertir, en imposant le type Heure à la dernière étape de l’assistant. Une formule dépanne aussi, avec TEMPSVAL qui lit une heure écrite en texte et SUBSTITUE qui remplace d’abord le h par deux-points. Sur un total, =SOMMEPROD(F2:F6*1) force la conversion de toute la colonne et retrouve les 38:15 que SOMME laissait filer.
=C5-TEMPSVAL(SUBSTITUE(B5;"h";":"))Rend 08:30 sur la ligne de Ferrand, dont l’arrivée est écrite 8h45.
Des secondes que le format d’affichage cache
Un badgeage porte des secondes que le format h:mm n’affiche pas, et Excel ne les arrondit même pas, il les coupe. Sur la feuille Secondes, l’arrivée du matin vaut 07:59:30 et s’affiche 07:59, quand le départ vaut 12:30:20 et s’affiche 12:30.
De ces deux cellules, l’œil tire une durée de 4:31, la colonne D en affiche 04:30, et la valeur exacte est 4:30:50. Trois nombres pour un seul badge, et aucun signe qu’il faille choisir.
Le total achève de brouiller la lecture. Les trois durées affichées font 10:28 bout à bout, la cellule de total en annonce 10:30, et le compte à la minute en donne 10:29.
![La feuille Secondes, cellule D2 au format h:mm qui affiche 04:30 et cellule E2 sélectionnée au format [h]:mm:ss qui affiche 4:30:50, et les trois totaux de la ligne 6, 10:30, 10:30:10 et 10:29](/images/blog/articles/soustraction-heure-excel/secondes.webp)
Pour voir ce qu’une cellule contient vraiment, passe-la en [h]:mm:ss le temps d’un contrôle. Pour compter en minutes franches, ramène chaque borne à la minute la plus proche avant de soustraire, comme le fait la colonne F du fichier avec ARRONDI.
=ARRONDI(C2*1440;0)/1440-ARRONDI(B2*1440;0)/144010:29 au total, contre les 10:30 du cumul brut, une fois chaque borne ramenée à la minute pleine.
La multiplication par 1440 compte les minutes, l’arrondi en garde un nombre entier, et la division ramène le tout en fraction de journée. Le mieux reste pourtant de régler cela à la source, en demandant des horodatages déjà arrondis à la minute.
Questions fréquentes
Ajoute ou retire le nombre d’heures d’écart divisé par 24, avec =B2+2/24 pour deux fuseaux de plus. La division sort un nombre nu, donc passe la cellule au format Heure, et 08:00 devient alors 10:00. Quand le calcul sort de la journée, encadre-le de MOD, comme dans =MOD(B2-6/24;1), qui ramène 08:00 moins six heures à 02:00 au lieu de renvoyer un négatif.
Pose le budget dans une cellule au format [h]:mm, puis retires-en le cumul déjà consommé avec =U1-SOMME(F2:F6). Le reste se lit tant qu’il est positif et passe en dièses dès que le budget est dépassé. Un format Nombre et une multiplication par 24 rendent alors le dépassement lisible.
La soustraction reste la même, seul le format d’affichage change, et [h]:mm:ss montre les secondes que h:mm coupe sans prévenir. Pour retirer une durée écrite en clair, TEMPS prend ses trois nombres dans l’ordre, comme dans =C2-TEMPS(1;30;45) pour une heure, trente minutes et quarante-cinq secondes.
Oui, à condition que la cellule porte la date et l’heure ensemble. La formule =B5-3/24 ramène le 21/09/2026 23:15 au 21/09/2026 20:15, une fois la cellule remise au format date. Sur une cellule qui ne porte que l’heure, le même calcul passe sous zéro dès que tu retires plus que l’heure affichée, et des dièses remplacent le résultat.
Parce qu’Excel ne reporte pas sur le résultat le format date et heure des deux cellules d’origine, et la cellule reste donc au format Standard. Passe-la en [h]:mm par Ctrl + 1 et le 0,333 redevient 08:00, sans que la valeur rangée dans la cellule ait bougé d’un millième.
