La soustraction d’heures dans Excel produit un résultat négatif dès qu’un shift franchit minuit. Un employé qui pointe à 22 h 00 et termine à 06 h 00 génère la formule =B2-A2, qui renvoie une valeur négative ou une série de dièses. Ce comportement bloque le calcul de la durée du travail pour tous les postes de nuit, et les correctifs classiques à base de SI() imbriqués alourdissent le tableau sans régler le problème à la source.
Formule MOD pour la soustraction heures Excel : pourquoi elle remplace les tests SI()
La majorité des tutoriels proposent une condition du type =SI(fin<début; fin-début+1; fin-début). Cette approche fonctionne pour un cas isolé, mais elle se multiplie dès que le tableau contient plusieurs types de shifts.
A lire aussi : Formule PV Excel : comment l'utiliser efficacement ?
=MOD(heure_fin – heure_début; 1) résout le problème en une seule écriture. La fonction MOD renvoie le reste de la division par 1 (une journée complète dans le système de dates Excel). Un résultat négatif est automatiquement ramené dans l’intervalle positif, sans aucun test conditionnel.
L’avantage décisif : cette formule s’applique à tous les shifts, qu’ils franchissent minuit ou non. Un poste de 08 h 00 à 16 h 00 renvoie 0,333… (soit 8 heures) exactement comme un poste de 22 h 00 à 06 h 00. Le tableau reste homogène, chaque ligne utilise la même formule, et la colonne de total des heures ne nécessite aucun ajustement particulier.
A lire aussi : Calcul moyenne Excel : le guide simple pour ne plus se tromper

Tableau comparatif des formules de calcul horaire Excel
Pour rendre les écarts visibles, voici un comparatif des trois approches les plus répandues appliquées au même shift de nuit (22 h 00 – 06 h 00).
| Méthode | Formule | Résultat affiché | Fonctionne sans minuit | Fonctionne avec minuit |
|---|---|---|---|---|
| Soustraction simple | =fin – début | ###### | Oui | Non |
| Test SI() | =SI(fin<début; fin-début+1; fin-début) | 08:00 | Oui | Oui |
| MOD() | =MOD(fin – début; 1) | 08:00 | Oui | Oui |
Les deux dernières formules produisent le même résultat pour un shift standard. En revanche, dès que le tableau contient des shifts mixtes (jour et nuit sur les mêmes colonnes), MOD() évite de gérer deux formules différentes et réduit le risque d’erreur lors de la copie vers le bas.
Format de cellule hh:mm et cumul hebdomadaire des heures
Un piège fréquent survient après le calcul : le total hebdomadaire dépasse 24 heures, mais Excel affiche un résultat tronqué. Par défaut, le format hh:mm recommence à zéro après 24 h. Un cumul de 38 heures s’affiche alors 14:00.
La solution est un format personnalisé. Sélectionnez la cellule de total, ouvrez le menu Format de cellule, puis saisissez [h]:mm dans le champ Type. Les crochets autour du h indiquent à Excel d’accumuler les heures au-delà de 24. Le format [h]:mm affiche correctement tout cumul supérieur à 24 heures.
Cette étape est indispensable pour la gestion de la paie. Sans elle, le total des heures de travail par semaine sera systématiquement faux, et la donnée exportée vers un logiciel de paie générera des écarts.
Convertir les heures en nombre décimal pour la paie
Les logiciels de paie attendent souvent un nombre décimal (8,5 pour 8 h 30). Excel stocke les heures comme une fraction de journée : 8 heures = 0,333… Pour obtenir la valeur décimale, multipliez le résultat de MOD() par 24.
La formule complète devient =MOD(fin - début; 1)*24. Le résultat s’affiche directement en heures décimales, prêt pour l’export. Multiplier par 24 convertit la fraction de journée en heures décimales.
Isoler les heures de nuit dans un tableau de shifts Excel
Calculer la durée totale d’un shift ne suffit pas toujours. La réglementation sur le travail de nuit impose de distinguer les heures effectuées dans une plage spécifique (généralement entre 21 h et 6 h, selon la convention applicable). Excel permet d’isoler cette tranche avec une combinaison de MAX(), MIN() et MOD().
Le principe repose sur le découpage du shift en deux segments : la partie qui tombe dans la plage de nuit et celle qui n’y tombe pas. Plutôt que de détailler une formule unique (qui varie selon les bornes de chaque convention), voici la logique à appliquer :
- Définir les bornes de nuit dans deux cellules fixes du classeur (par exemple, 21:00 en E1 et 06:00 en E2) pour pouvoir les modifier sans toucher aux formules
- Calculer le chevauchement entre la plage du shift et la plage de nuit à l’aide de
MAX(0; MIN(fin_shift; fin_nuit) - MAX(début_shift; début_nuit)), en appliquantMOD()sur chaque différence pour gérer le passage de minuit - Soustraire le résultat obtenu de la durée totale du shift pour obtenir les heures de jour dans une colonne séparée
Ce découpage permet de générer automatiquement deux colonnes dans le tableau : heures de jour et heures de nuit calculées par shift. Le total hebdomadaire de chaque catégorie alimente ensuite le calcul des majorations ou des heures supplémentaires.

Planning et calcul dans un seul classeur Excel
La tendance actuelle consiste à regrouper le planning des équipes et le calcul des heures dans un même fichier. Séparer les deux (un document pour l’organisation des shifts, un autre pour le décompte) multiplie les ressaisies et les risques de décalage.
Un classeur unique contient typiquement trois onglets :
- Un onglet « Planning » avec les créneaux de chaque salarié, alimenté par des menus déroulants (matin, après-midi, nuit, repos)
- Un onglet « Calcul » qui récupère les horaires via des formules
RECHERCHEV()ouINDEX(EQUIV())et appliqueMOD()pour la durée - Un onglet « Synthèse » qui totalise les heures par semaine, distingue jour et nuit, et calcule les heures supplémentaires à partir du seuil défini
Un classeur unifié réduit les erreurs de ressaisie entre planning et paie. Les données circulent d’un onglet à l’autre sans intervention manuelle, et toute modification du planning se répercute immédiatement sur le décompte.
Le format [h]:mm sur l’onglet de synthèse reste la dernière vérification à ne pas oublier. Sans lui, le cumul hebdomadaire sera tronqué, quelle que soit la qualité des formules en amont.

