Excel : compter les titres de poste uniques par province (TCD, Distinct Count, DAX, Power Query)

Vous devez obtenir, par province, le nombre de titres de poste uniques — pas le nombre d’employés ? Voici la méthode la plus rapide et fiable avec un TCD + Modèle de données (Distinct Count), plus des alternatives (DAX, Power Query, formules) et des conseils pro.

Sommaire

Vue d’ensemble

À partir d’une base d’employés (Province, Intitulé du poste, etc.), l’objectif est de compter le nombre de rôles différents par province, par exemple : « Alberta = 23 titres de poste uniques », « Ontario = 41 », etc. La solution la plus sûre et la plus simple, surtout quand le volume de données augmente, est d’utiliser un Tableau croisé dynamique (TCD) relié au Modèle de données pour activer l’agrégat Nombre (valeurs distinctes). Vous trouverez aussi ci‑dessous des approches équivalentes avec Power Pivot (DAX), Power Query, et des formules Excel (Microsoft 365).

Jeu de données d’exemple

Supposons une table Excel TableEmplois avec les colonnes : Province, Intitulé du poste, EmployéID (et éventuellement Département).

ProvinceIntitulé du posteEmployéIDDépartement
OntarioDéveloppeurE001IT
OntarioDéveloppeurE002IT
OntarioAnalysteE003Finance
OntarioRHE004RH
AlbertaDéveloppeurE005IT
AlbertaAnalysteE006Finance
AlbertaAnalysteE007Finance
Colombie-BritanniqueDéveloppeurE008IT
Colombie-BritanniqueChef de projetE009IT
QuébecDéveloppeurE010IT
QuébecAnalysteE011Finance
QuébecAnalyste donnéesE012Data

Résultat attendu :

ProvinceTitres de poste uniquesExemples
Ontario3Développeur, Analyste, RH
Alberta2Développeur, Analyste
Colombie‑Britannique2Développeur, Chef de projet
Québec3Développeur, Analyste, Analyste données

Méthode recommandée : TCD + Modèle de données (Distinct Count)

Cette méthode active l’agrégat Nombre (valeurs distinctes) dans le TCD. Elle est idéale pour des dizaines de milliers, voire des millions de lignes, grâce au moteur de données compressé du Modèle de données.

Étapes rapides

  1. Sélectionnez votre plage source (de préférence un Tableau Excel : Accueil > Mettre sous forme de tableau). Nommez‑le par exemple TableEmplois.
  2. Allez dans Insertion > Tableau croisé dynamique.
    Cochez l’option Ajouter ces données au modèle de données.
  3. Dans le volet de champs du TCD :
    • Placez Province dans Lignes.
    • (Optionnel) Ne mettez pas « Intitulé du poste » en Lignes/Colonnes.
    • Glissez Intitulé du poste dans Valeurs.
  4. Clic droit sur n’importe quelle valeur du champ Valeurs > Paramètres des champs de valeur > onglet Synthétiser les valeurs par > choisissez Nombre (valeurs distinctes).
  5. Renommez le champ de valeur en Titres de poste uniques et appliquez un format de nombre si nécessaire.

Important : l’option Nombre (valeurs distinctes) apparaît uniquement si vous avez coché Ajouter ces données au modèle de données à la création du TCD.

Procédure détaillée et bonnes pratiques

  1. Nettoyez vos colonnes clés (Province, Intitulé du poste) : supprimez les espaces parasites (fonction SUPPRESPACE), corrigez les majuscules (MAJUSCULE/PROPRE) et les caractères invisibles (NETTOYER).
  2. Convertissez la base en tableau (Ctrl+T). Le tableau assure une plage dynamique lors des mises à jour.
  3. Créez le TCD en ajoutant au Modèle de données. Ce point est crucial pour activer Distinct Count.
  4. Placez Province en Lignes et Intitulé du poste en Valeurs. Par défaut Excel affichera un Nombre simple ; modifiez‑le vers Nombre (valeurs distinctes).
  5. Filtrez les blancs si nécessaire (menu du champ Province > filtre > décochez (Blanc)).
  6. Ajoutez des segments (Insertion > Segmenter) pour des dimensions telles que Département ou Année, afin d’obtenir un comptage dynamique par province.
  7. Actualisez les résultats après chaque import (Données > Actualiser tout ou Ctrl+Alt+F5).
  8. Pour un export clair, copiez les valeurs du TCD dans une feuille « Résultats » : clic droit > Copier > Collage spécial > Valeurs.

Compatibilité

  • Windows : Nombre (valeurs distinctes) via Modèle de données est disponible depuis Excel 2013+.
  • Mac : selon la version (Microsoft 365), la gestion du Modèle de données et du Distinct Count peut être limitée. Si l’option n’apparaît pas, utilisez Power Query (quand disponible) ou les formules ci‑dessous.

Alternatives utiles si « Nombre distinct » n’est pas disponible

Power Pivot (DAX)

  1. Activez Power Pivot (Windows) : Fichier > Options > Compléments > Gérer : Compléments COM > Atteindre… > Microsoft Power Pivot for Excel.
  2. Sélectionnez la table, puis Power Pivot > Ajouter au Modèle de données.
  3. Dans la fenêtre Power Pivot : Accueil > Calculs > Nouvelle mesure et créez : TitresDistincts := CALCULATE( DISTINCTCOUNT(TableEmplois[Intitulé du poste]), NOT(ISBLANK(TableEmplois[Intitulé du poste])) )
  4. Insérez un TCD depuis le Modèle de données, placez Province en Lignes et la mesure TitresDistincts en Valeurs.

Avantages : calculs reproduisibles, measures réutilisables, très performant sur gros volumes. Limites : nécessite Power Pivot (principalement Windows).

Power Query (sans TCD)

  1. Données > À partir d’un tableau/plage pour charger TableEmplois.
  2. Supprimez les doublons sur le couple Province + Intitulé du poste.
  3. Groupez par Province > Opération : Nombre de lignes.
  4. Fermez & chargez vers une nouvelle feuille.

Script M équivalent :

let
    Source        = Excel.CurrentWorkbook(){[Name = "TableEmplois"]}[Content],
    ColonnesUtiles= Table.SelectColumns(Source, {"Province","Intitulé du poste"}),
    Nettoyees     = Table.TransformColumns(ColonnesUtiles, {{"Province", Text.Trim, type text}, {"Intitulé du poste", Text.Trim, type text}}),
    Uniques       = Table.Distinct(Nettoyees),
    Groupees      = Table.Group(Uniques, {"Province"}, {{"TitresUniques", each Table.RowCount(_), Int64.Type}})
in
    Groupees

Avantages : automatisation ETL (nettoyage + regroupement), rafraîchissement en un clic. Limites : résultat figé dans un tableau (hors TCD), segmentation moins interactive.

Formules (Microsoft 365 – fonctions dynamiques)

Avec la liste des provinces en A2:A, entrez en B2 puis recopiez vers le bas :

=LIGNES(UNIQUE(FILTRE(TableEmplois[Intitulé du poste]; TableEmplois[Province]=A2)))

Selon vos paramètres régionaux, remplacez “;” par “,”.

Sans fonctions dynamiques (anciennes versions) : formule matricielle (validez par Ctrl+Maj+Entrée) :

=SOMME(SI(TableEmplois[Province]=A2; 1/NB.SI.ENS(TableEmplois[Intitulé du poste]; TableEmplois[Intitulé du poste]; TableEmplois[Province]; A2)))

Cette formule additionne l’inverse du nombre d’occurrences d’un intitulé dans la province donnée, ce qui revient à compter les distincts. Pour ignorer les vides : encapsulez avec SI(TableEmplois[Intitulé du poste]<>""; ... ).


Qualité des données : éviter les « faux distincts »

Les libellés hétérogènes (Dev vs Développeur, accents, espaces) font gonfler artificiellement le nombre de distincts.

  • Nettoyage de base : créez une colonne normalisée :
    =PROPRE(SUPPRESPACE(MAJUSCULE([@Intitulé du poste])))
  • Harmonisation sémantique : maintenez une table de correspondance (ex. « Dev » → « DÉVELOPPEUR », « Ingénieur logiciel » → « DÉVELOPPEUR ») et appliquez RECHERCHEX (ou RECHERCHEV) pour remplacer.
  • Vides : filtrez‑les. En DAX, utilisez un filtre NOT(ISBLANK(...)); dans Power Query, Supprimer les lignes > Supprimer les lignes vides.
  • Casse/accents : normalisez la casse (MAJUSCULE) et, si besoin, remplacez les caractères accentués par leurs équivalents non accentués via une table de mapping.

Personnalisation du TCD

  • Tri décroissant : clic droit dans la colonne des valeurs > Trier du plus grand au plus petit pour repérer d’un coup d’œil les provinces les plus diversifiées.
  • Segments : Insertion > Segmenter → choisissez Département ou Année pour filtrer dynamiquement le comptage.
  • Totaux généraux : activez‑les si vous voulez un total de titres uniques tous territoires confondus. Attention : ce total n’est pas la somme simple des lignes (un même titre peut exister dans plusieurs provinces).
  • Nom du champ : renommez la valeur en Titres de poste uniques pour une lecture claire.

Performances et maintenance

  • Modèle de données : stockage en colonnes, compression élevée. Préférez‑le aux TCD classiques sur gros volumes.
  • Formules vs TCD : les formules matricielles peuvent devenir lentes sur des centaines de milliers de lignes. Un TCD avec Distinct Count reste stable et rapide.
  • Actualisation : centralisez vos imports en Power Query, chargez dans le Modèle de données, puis Actualiser tout pour propager.
  • Colonnes calculées (Power Pivot) : faites le gros du nettoyage et de la normalisation dans Power Query pour alléger le modèle.

Table de décision : quelle méthode choisir ?

MéthodeQuand l’utiliserPoints fortsLimites
TCD + Modèle de donnéesBesoin rapide d’un comptage fiable, gros volumes, segmentation dynamiqueSimple, performant, Distinct Count natif, segmentsNécessite l’option « Ajouter au Modèle de données »
Power Pivot (DAX)Mesures réutilisables, modèles analytiques avancésTrès rapide, logique métier encapsuléePrincipalement Windows, courbe d’apprentissage DAX
Power QueryNettoyage + agrégation reproductibles, export tabulaireETL automatisé, excellent pour pipelinesMoins interactif que le TCD, dépend des fonctionnalités sur Mac
Formules (365)Fichiers légers, sans modèle, résultats par celluleFlexibles, dynamiques, faciles à auditerMoins performantes sur gros volumes, gestion des erreurs requise

Pas à pas condensé (checklist)

  • Mettre la source en Tableau Excel et nettoyer les libellés.
  • Insertion > TCD → cocher Ajouter au Modèle de données.
  • Lignes : Province | Valeurs : Intitulé du posteNombre (valeurs distinctes).
  • Renommer le champ de valeur, trier, ajouter segments si besoin.
  • Actualiser à chaque mise à jour de la source.

Dépannage (FAQ)

« Je ne vois pas l’option Nombre (valeurs distinctes) »
Assurez‑vous d’avoir coché Ajouter ces données au Modèle de données lors de la création du TCD. Sur Mac, si l’option reste indisponible, passez par Power Query ou formules.

« Les totaux ne me semblent pas cohérents »
Le total général des distincts n’est pas la somme des lignes : un même intitulé peut exister dans plusieurs provinces. Pour un total « global », placez Intitulé du poste seul en Valeurs (Distinct Count) sans Province en lignes.

« Trop de titres différents à cause des variantes »
Normalisez (SUPPRESPACE, MAJUSCULE, NETTOYER) et mappez les synonymes via une table de correspondance + RECHERCHEX/Requête Power Query.

« Je veux compter seulement les titres non vides »
Filtrez les vides dans le TCD ou, en DAX, utilisez :
TitresDistincts := CALCULATE(DISTINCTCOUNT(TableEmplois[Intitulé du poste]), TableEmplois[Intitulé du poste] <> BLANK())

« Puis‑je filtrer le calcul par département ? »
Oui : ajoutez Département en Filtres du TCD ou utilisez un Segment. Le Distinct Count se recalcule sur le contexte filtré.

« Comment obtenir une table complète Province ↔ Compte en formules ? »
Placez la liste unique des provinces avec =UNIQUE(TableEmplois[Province]), puis à côté =LIGNES(UNIQUE(FILTRE(TableEmplois[Intitulé du poste]; TableEmplois[Province]=celluleProvince))). Recopiez vers le bas.


Exécution pas à pas illustrée (récapitulatif détaillé)

  1. Préparer la table :
    • Sélectionnez la plage > Ctrl+T > « Ma table comporte des en‑têtes ».
    • Renommez le tableau TableEmplois (Onglet Création de tableau).
  2. Créer le TCD avec Modèle de données :
    • Insertion > Tableau croisé dynamique.
    • Cochez Ajouter ces données au modèle de données.
  3. Configurer les champs :
    • Lignes : Province
    • Valeurs : Intitulé du poste
    • Paramètres des champs de valeur : Nombre (valeurs distinctes)
  4. Mettre en forme et trier :
    • Renommez le champ de valeur en « Titres de poste uniques ».
    • Trier du plus grand au plus petit.
  5. Filtrer/segmenter :
    • Ajoutez Département en Filtres ou des Segmentations pour explorer les données rapidement.
  6. Actualiser et publier :
    • Utilisez Actualiser tout après mise à jour de TableEmplois.
    • Copiez/collez les valeurs du TCD si vous devez partager un tableau statique.

Synthèse

Pour compter le nombre de titres de poste uniques par province, le plus direct et robuste est un TCD connecté au Modèle de données avec l’agrégat Nombre (valeurs distinctes). Si l’option manque, basculez vers Power Pivot (DAX), Power Query ou les formules dynamiques ; vous obtiendrez le même résultat tout en gardant la maîtrise de la qualité de vos libellés.


Réponse & solution (version condensée à copier)

  1. Sélectionner la table source (idéalement un tableau Excel).
  2. Insertion > Tableau croisé dynamiquecocher Ajouter ces données au modèle de données.
  3. Dans le TCD :
    • Province dans Lignes.
    • (Optionnel) ne mettez pas « Intitulé du poste » en Lignes/Colonnes.
    • Intitulé du poste dans Valeurs.
  4. Clic droit > Paramètres des champs de valeur > Synthétiser les valeurs parNombre (valeurs distinctes).
  5. Résultat : une ligne par Province avec le compte de titres de poste uniques.

Important : l’option Nombre (valeurs distinctes) n’apparaît que si vous avez coché Ajouter ces données au modèle de données à la création du TCD.

Annexes : variantes rapides

Mesure DAX

TitresDistincts := DISTINCTCOUNT(TableEmplois[Intitulé du poste])

Power Query (étapes)

  1. Charger la table > Supprimer doublons sur Province + Intitulé du poste.
  2. Grouper par ProvinceNombre de lignes → Charger.

Formule Microsoft 365

=LIGNES(UNIQUE(FILTRE(TableEmplois[Intitulé du poste]; TableEmplois[Province]=A2)))

Erreurs à éviter

  • Créer le TCD sans cocher Modèle de données → l’agrégat Distinct Count n’existe pas.
  • Compter les employés au lieu des titres (mettre EmployéID en Valeurs) → résultat erroné.
  • Laisser des vides ou des variantes orthographiques → « faux » distincts.
  • Sommer les distincts de chaque province pour obtenir un total global → double comptage potentiel.
Sommaire