Référence Power Query · 5 min de lecture

Table.RowCount : compter les lignes d’une table dans Power Query

La fonction la plus simple du langage, et le meilleur garde-fou qu’on puisse poser dans une requête.

Mis à jour le

Table.RowCount rend le nombre exact de lignes d’une table, sous forme de nombre.

Table.RowCount(table as table) as number

Table.RowCount(Ventes)   // 1 284

Il n’y a pas de paramètre facultatif, pas de subtilité de syntaxe. L’intérêt de cette fonction n’est pas dans son écriture, il est dans l’usage qu’on en fait.

L’usage qui compte

Faire échouer une requête plutôt que de la laisser mentir

Une requête qui casse se répare le jour même. Une requête qui perd silencieusement des lignes produit des chiffres faux pendant des mois. C’est contre le second cas que sert Table.RowCount.

Le principe : on compte avant et après une opération risquée, et on refuse de continuer si le compte ne tombe pas.

let
    Avant    = Table.RowCount(Commandes),
    Jointure = Table.NestedJoin(Commandes, {"ClientID"}, Clients, {"ClientID"}, "Client", JoinKind.LeftOuter),
    Apres    = Table.RowCount(Jointure),
    Controle = if Apres <> Avant
               then error "La jointure a modifié le nombre de lignes : " & Text.From(Avant) & " avant, " & Text.From(Apres) & " après. Doublons côté Clients ?"
               else Jointure
in
    Controle

Une jointure à gauche ne doit jamais changer le nombre de lignes. Si elle le fait, c’est que la table de droite contient des doublons sur la clé, et que chaque commande vient d’être comptée deux fois. C’est l’une des causes les plus fréquentes de chiffre d’affaires artificiellement gonflé, et elle ne produit aucune erreur.

Le message porté par error compte autant que le contrôle : il doit dire ce qui s’est passé et où chercher, pas seulement qu’une vérification a échoué.

Autres usages

Vérifier un empilement, détecter une source vide

Après une consolidation de fichiers, la somme des lignes d’entrée doit égaler le nombre de lignes de sortie :

let
    Attendu = List.Sum(List.Transform(Contenus[Table], Table.RowCount)),
    Empile  = Table.Combine(Contenus[Table]),
    Verifie = if Table.RowCount(Empile) <> Attendu then error "Lignes perdues à l'empilement" else Empile
in
    Verifie

Et sur une source qui alimente un rapport de direction, une table vide vaut mieux signalée que chargée :

if Table.RowCount(Source) = 0 then error "Source vide : export non déposé ?" else Source

Sans ce test, un export manquant produit un rapport à zéro. Avec, l’actualisation échoue et quelqu’un est prévenu. Un tableau de bord qui affiche zéro est plus dangereux qu’un tableau de bord qui refuse de s’actualiser, parce que personne ne met en doute un chiffre affiché.

Questions fréquentes

Ce qu’on nous demande sur Table.RowCount

Compter en Power Query ou en DAX ?

Ce ne sont pas les mêmes besoins. Table.RowCount compte une fois, au chargement, pour contrôler la chaîne. COUNTROWS en DAX compte dans le contexte de filtre du visuel, à chaque interrogation. Un garde-fou de requête ne se remplace pas par une mesure.

Comment compter les lignes par catégorie ?

Ce n’est pas le rôle de cette fonction, qui ne prend qu’une table entière. Passez par Regrouper par, qui écrit Table.Group avec l’agrégation Table.RowCount pour chaque groupe.

Le contrôle ralentit-il l’actualisation ?

Il oblige à parcourir la table, donc il a un coût, mesurable surtout sur de gros volumes. Notre arbitrage : on garde le contrôle sur les étapes où une perte de lignes serait invisible, jointures et consolidations, et on s’en passe ailleurs. Quelques secondes d’actualisation valent mieux qu’un chiffre faux non détecté.

Quelle différence entre Table.RowCount et Table.ApproximateRowCount ?

Table.ApproximateRowCount rend une estimation et renvoie une erreur si la source de données ne sait pas l’estimer. Pour un contrôle de cohérence, prenez toujours Table.RowCount : une approximation ne prouve rien.

À côté

Les fonctions qu’on utilise avec

Sources — documentation officielle de l’éditeur, consultée le 22 août 2026 : Table.RowCount, Table.Group.

Un chiffre d’affaires qui a doublé sans raison ?

Neuf fois sur dix, une jointure sur une clé en double. Nous auditons la chaîne de préparation et posons les garde-fous qui manquent.

Demander un audit ou 01 83 64 60 25
01 83 64 60 25 Réserver un appel