NB.JOURS.OUVRES.INTL : Calculez les jours ouvrables avec flexibilité
=NB.JOURS.OUVRES.INTL(date_début; date_fin; [weekend]; [jours_fériés])La formule NB.JOURS.OUVRES.INTL est l'outil indispensable pour calculer précisément le nombre de jours ouvrables entre deux dates en tenant compte des weekends personnalisés et des jours fériés spécifiques à votre contexte. Contrairement à NETWORKDAYS qui impose un weekend fixe (samedi-dimanche), cette fonction offre une flexibilité remarquable pour adapter vos calculs à différents calendriers professionnels. Que vous travailliez dans un pays avec des weekends décalés, gérez des équipes internationales ou suiviez des projets avec des calendriers particuliers, cette formule s'adapte à vos besoins réels. L'importance de cette fonction réside dans sa capacité à fournir des données de gestion de projet fiables et précises. Elle est particulièrement utile pour calculer les délais de livraison, estimer la durée des projets, gérer les congés ou analyser la productivité d'une équipe sur une période donnée. En combinant les paramètres de weekend personnalisés et de jours fériés, vous obtenez un calcul parfaitement aligné avec votre réalité opérationnelle. Avec NB.JOURS.OUVRES.INTL, vous pouvez automatiser vos calculs de planification sans intervention manuelle, réduire les erreurs et gagner un temps précieux dans vos analyses de gestion de projet et de ressources humaines.
Syntaxe et paramètres
La syntaxe complète de NB.JOURS.OUVRES.INTL est : =NB.JOURS.OUVRES.INTL(date_début; date_fin; [weekend]; [jours_fériés]). Le paramètre date_début (requis) représente le point de départ de votre période de calcul, tandis que date_fin (requis) marque la fin. Ces deux paramètres acceptent des dates au format Excel ou des références de cellules contenant des dates valides. Le paramètre weekend (optionnel) est particulièrement puissant : il peut être un nombre de 1 à 17 représentant différents modèles de weekend (1=samedi-dimanche, 2=dimanche-lundi, 3=lundi-mardi, etc.), ou une chaîne de 7 caractères (0 ou 1) indiquant précisément quels jours sont des jours de repos. Par exemple, "0000011" signifie que seuls samedi et dimanche sont des jours de repos. Le paramètre jours_fériés (optionnel) accepte une plage de cellules contenant les dates des jours fériés à exclure du calcul. Conseil pratique : organisez toujours vos jours fériés dans une plage nommée (ex: "Feries_2024") pour simplifier la maintenance et la lisibilité de vos formules. Attention : les paramètres doivent être séparés par des points-virgules en français, pas des virgules. Si vous omettez le paramètre weekend, Excel applique par défaut le modèle 1 (samedi-dimanche).
start_dateend_dateweekendholidaysExemples pratiques
Calcul des jours ouvrables standard pour un projet
=NB.JOURS.OUVRES.INTL(DATE(2024;1;1);DATE(2024;1;31);;F2:F5)Cette formule compte tous les jours ouvrables (lundi à vendredi) entre le 1er et le 31 janvier, en excluant automatiquement les samedi-dimanche (défaut) et les jours fériés listés en F2:F5 (Jour de l'an, Épiphanie, etc.). Le résultat donne le nombre réel de jours de travail disponibles.
Gestion d'une équipe avec weekend décalé (dimanche-lundi)
=NB.JOURS.OUVRES.INTL(DATE(2024;4;1);DATE(2024;4;30);2;Feries_ME)Le paramètre 2 indique que le weekend est dimanche-lundi (modèle 2). La plage nommée 'Feries_ME' contient les jours fériés du Moyen-Orient. Excel exclut tous les dimanches et lundis ainsi que les jours fériés spécifiés, donnant un décompte précis des jours travaillables.
Calcul avec pattern de weekend personnalisé (mercredi-jeudi)
=NB.JOURS.OUVRES.INTL(DATE(2024;6;1);DATE(2024;6;30);"1111001")La chaîne "1111001" représente les 7 jours de la semaine (lundi à dimanche) où 1=jour de repos et 0=jour ouvrable. Ici, mercredi (4e position) et jeudi (5e position) sont des jours de repos. Cette approche permet une personnalisation extrême du calendrier de travail.
Points clés à retenir
- NB.JOURS.OUVRES.INTL offre une flexibilité supérieure à NETWORKDAYS en permettant de personnaliser les jours de repos via 17 modèles prédéfinis ou des chaînes personnalisées.
- Le paramètre weekend peut être un nombre (1-17) pour des modèles standards, ou une chaîne de 7 caractères (0 ou 1) pour une personnalisation totale.
- Les jours fériés doivent être dans une plage nommée pour faciliter la maintenance et l'évolutivité des formules d'année en année.
- Cette formule est essentielle pour la gestion de projet, la planification RH et l'analyse de productivité dans les contextes internationaux ou non-standards.
- Testez toujours vos formules avec des cas limites et des dates proches de jours fériés pour garantir la précision des calculs.
Astuces de pro
Créez une plage nommée pour vos jours fériés (ex: 'Feries_2024') et mettez-la à jour une seule fois par an. Vos formules resteront stables et maintenables.
Impact : Gain de temps considérable lors des mises à jour annuelles, réduction des erreurs, meilleure traçabilité des données.
Utilisez le paramètre weekend comme nombre (1-17) plutôt que comme chaîne si possible : c'est plus lisible et moins sujet aux erreurs de typage.
Impact : Formules plus claires, maintenance facilitée, moins de bugs #VALUE!, meilleure collaboration d'équipe.
Testez vos formules avec des dates proches de jours fériés pour vérifier que les exclusions fonctionnent correctement. Utilisez des cas limites (ex: une période d'un seul jour).
Impact : Détection précoce des erreurs, assurance qualité des calculs, confiance dans les résultats de gestion de projet.
Combinez NB.JOURS.OUVRES.INTL avec un tableau de bord pour visualiser l'évolution des jours disponibles par projet et par équipe.
Impact : Meilleure visibilité sur les charges de travail, identification rapide des goulots d'étranglement, optimisation de la planification.
Combinaisons utiles
Combiner avec IF pour adapter le weekend selon une région
=NB.JOURS.OUVRES.INTL(A1;A2;IF(B1="ME";2;1);C1:C10)Cette formule utilise IF pour choisir le paramètre weekend selon la valeur en B1. Si B1="ME" (Moyen-Orient), elle applique le modèle 2 (dimanche-lundi), sinon le modèle 1 (samedi-dimanche). Utile pour les entreprises multinationales.
Combiner avec INDIRECT pour utiliser des plages nommées dynamiques
=NB.JOURS.OUVRES.INTL(A1;A2;1;INDIRECT("Feries_"&YEAR(A1)))Cette formule construit dynamiquement le nom de la plage de jours fériés selon l'année de la date de début (ex: "Feries_2024", "Feries_2025"). Pratique pour gérer des calendriers multi-années sans modifier la formule.
Combiner avec SUMPRODUCT pour compter les jours ouvrables par catégorie
=SUMPRODUCT((NB.JOURS.OUVRES.INTL(A2:A100;B2:B100;1;C:C))*1)Applique NB.JOURS.OUVRES.INTL à plusieurs lignes et additionne les résultats. Permet de calculer le total des jours ouvrables pour plusieurs projets ou périodes en une seule formule.
Erreurs courantes
Cause : Les dates ne sont pas au format Excel valide, ou le paramètre weekend contient une valeur invalide (ex: 18 au lieu de 1-17), ou la chaîne de weekend n'a pas exactement 7 caractères.
Solution : Vérifiez que les dates utilisent DATE() ou sont des références de cellules formatées en date. Pour weekend, utilisez un nombre entre 1 et 17, ou une chaîne de exactement 7 caractères contenant uniquement 0 ou 1. Exemple correct : =NB.JOURS.OUVRES.INTL(A1;A2;2;A5:A10)
Cause : La plage de jours fériés (paramètre jours_fériés) référence des cellules supprimées ou une feuille inexistante, ou la plage nommée n'existe plus.
Solution : Vérifiez que la plage de jours fériés existe et contient des dates valides. Si vous utilisez une plage nommée, assurez-vous qu'elle est définie correctement (Formules > Gestionnaire de noms). Recréez la plage si nécessaire : =NB.JOURS.OUVRES.INTL(A1;A2;;C1:C10)
Cause : La date de début est postérieure à la date de fin, ou le paramètre weekend est un nombre hors de la plage 1-17.
Solution : Inversez les dates si nécessaire pour que date_début < date_fin. Vérifiez que le paramètre weekend est un entier entre 1 et 17. Exemple correct : =NB.JOURS.OUVRES.INTL(DATE(2024;1;1);DATE(2024;12;31);1)
Checklist de dépannage
- 1.Vérifiez que les dates sont au format Excel valide (utilisez DATE() ou convertissez les textes avec DATEVALUE)
- 2.Confirmez que le paramètre weekend est un nombre entre 1 et 17, ou une chaîne de exactement 7 caractères avec 0 ou 1
- 3.Assurez-vous que la plage de jours fériés existe et contient uniquement des dates valides (pas de texte ou cellules vides problématiques)
- 4.Vérifiez que date_début est antérieure ou égale à date_fin (pas d'inversion de dates)
- 5.Testez la formule avec des données simples pour isoler le problème (ex: sans jours fériés d'abord)
- 6.Vérifiez la langue d'Excel : les séparateurs peuvent être des virgules ou des points-virgules selon la locale
Cas particuliers
Une date de jour férié tombe exactement sur la date de début ou de fin
Comportement : Le jour est exclu du décompte. Si la date de début est un jour férié, le comptage commence le jour ouvrable suivant.
Solution : Vérifiez votre logique métier : souhaitez-vous inclure ou exclure ces jours? Ajustez les dates de début/fin si nécessaire.
Comportement logique et attendu, aucune intervention requise dans la plupart des cas.
La plage de jours fériés contient des doublons (même date deux fois)
Comportement : Excel traite les doublons sans erreur : le jour n'est compté qu'une seule fois comme non ouvrable.
Solution : Nettoyez votre liste de jours fériés pour éviter les doublons. Utilisez Données > Supprimer les doublons.
Pas d'impact sur le résultat final, mais recommandé pour la qualité des données.
Période de calcul très longue (ex: 10 ans) avec une grande liste de jours fériés
Comportement : La formule peut ralentir légèrement selon la taille de la plage de jours fériés, mais reste performante dans la plupart des cas.
Solution : Si performance critique, limitez la plage de jours fériés à l'année concernée en utilisant INDIRECT avec YEAR().
Rarement un problème en pratique, mais à considérer pour les très gros fichiers avec milliers de lignes.
Limitations
- •NB.JOURS.OUVRES.INTL ne peut pas exclure certains jours de la semaine selon des conditions complexes (ex: tous les lundis sauf le 1er lundi du mois). Pour cela, utilisez SUMPRODUCT avec WEEKDAY.
- •La fonction ne gère pas les heures partielles : elle traite toujours les dates comme des jours entiers. Pour des calculs au niveau horaire, une approche différente est nécessaire.
- •Le paramètre weekend accepte uniquement 17 modèles prédéfinis ou une chaîne personnalisée de 7 caractères. Les patterns plus complexes (ex: 4 jours de repos non consécutifs) nécessitent des formules alternatives.
- •Les jours fériés doivent être fournis manuellement : Excel ne récupère pas automatiquement le calendrier des jours fériés du système ou d'une source externe. La maintenance annuelle est requise.
Alternatives
Compatibilité
✓ Excel
Depuis 2010
=NB.JOURS.OUVRES.INTL(date_début;date_fin;[weekend];[jours_fériés]) - Disponible dans Excel 2010, 2013, 2016, 2019, 365. Syntaxe identique dans toutes les versions.✓Google Sheets
=NETWORKDAYS.INTL(date_début;date_fin;[weekend];[jours_fériés]) - Google Sheets utilise NETWORKDAYS.INTL au lieu de NB.JOURS.OUVRES.INTLLa fonction est disponible mais porte un nom différent. Les paramètres et le comportement sont identiques. Attention lors de la migration Excel <> Google Sheets.
✓LibreOffice
=NETWORKDAYS.INTL(date_début;date_fin;[weekend];[jours_fériés]) - LibreOffice utilise également NETWORKDAYS.INTL