Table.RemoveRows : supprimer des lignes par position dans Power Query
Retirer les lignes parasites en tête d’un fichier, ou une plage précise au milieu. Avec le piège de l’index qui commence à zéro.
Mis à jour le
Table.RemoveRows supprime un nombre de lignes donné à partir d’une position donnée. Elle ne regarde pas le contenu : elle compte. C’est exactement l’outil qu’il faut quand un export commence par trois lignes de titre et une ligne vide avant les vraies données, et c’est exactement l’outil qu’il ne faut pas quand les lignes à retirer se reconnaissent à leur valeur.
C’est la fonction que Power Query écrit pour vous derrière le bouton Supprimer les lignes du haut.
Le troisième paramètre est facultatif
Table.RemoveRows(
table as table,
offset as number,
optional count as nullable number
) as table
| Paramètre | Rôle |
|---|---|
table | La table de départ. |
offset | Position de la première ligne à supprimer. La numérotation commence à 0 : 0 désigne la première ligne, 1 la deuxième. |
count | Nombre de lignes à supprimer. Facultatif : en son absence, une seule ligne est retirée. |
L’index à base zéro est la source d’erreur numéro un sur cette fonction. Pour supprimer la quatrième ligne, on écrit 3, pas 4.
Les trois usages courants
Sur une table de quatre clients, dans l’ordre Bob, Jim, Paul, Ringo.
Supprimer la première ligne
Table.RemoveRows(Source, 0)
Bob disparaît. Le paramètre count étant omis, une seule ligne est retirée.
Supprimer une ligne au milieu
Table.RemoveRows(Source, 1)
Jim disparaît, Bob reste. L’offset 1 vise bien la deuxième ligne.
Supprimer une plage
Table.RemoveRows(Source, 1, 2)
Jim et Paul disparaissent. Il reste Bob et Ringo.
Le piège des exports dont l’en-tête bouge
Supprimer les quatre premières lignes d’un export fonctionne parfaitement, jusqu’au jour où l’outil source en produit cinq. La requête ne plante pas : elle mange la première ligne de données, et personne ne s’en aperçoit avant que les totaux ne soient faux.
Quand le nombre de lignes d’en-tête peut varier, mieux vaut ne pas compter mais reconnaître. On repère la ligne qui porte les vrais en-têtes, puis on supprime tout ce qui la précède :
let
Source = ...,
Position = List.PositionOf(Source[Column1], "Référence"),
Nettoyee = Table.RemoveRows(Source, 0, Position),
Entetes = Table.PromoteHeaders(Nettoyee)
in
Entetes
La requête s’adapte alors d’elle-même. C’est cinq minutes de plus à l’écriture et un incident de production en moins.
Autre réflexe utile : pour retirer des lignes selon leur contenu et non leur position, la bonne fonction est Table.SelectRows. Table.RemoveRows ne sait faire que de la position.
Ce qu’on nous demande sur Table.RemoveRows
Le paramètre count est-il obligatoire ?
Non. S’il est omis, Power Query supprime une seule ligne. C’est pratique pour retirer une ligne isolée sans avoir à écrire 1.
Comment supprimer des lignes selon leur contenu ?
Ce n’est pas le rôle de cette fonction. Il faut Table.SelectRows, qui conserve les lignes répondant à une condition, ou le filtre de colonne de l’interface, qui écrit la même chose pour vous.
L’index de Table.RemoveRows commence-t-il à 0 ou à 1 ?
À 0. Table.RemoveRows(Source, 0) supprime la première ligne. Pour viser la quatrième, l’offset vaut 3. C’est la confusion la plus fréquente sur cette fonction.
Quelle différence entre Table.RemoveRows et Table.Skip ?
Table.Skip ignore un nombre de lignes en partant du début et garde tout le reste. Table.RemoveRows retire une plage à l’endroit indiqué, y compris au milieu de la table. Pour couper un en-tête les deux conviennent ; pour ôter des lignes intercalées, seule Table.RemoveRows fait l’affaire.
Les fonctions qu’on utilise avec
Table.FindText: retrouver une valeur dans toutes les colonnes.- Créer une table de dates dynamique en Power Query.
- La référence complète Power Query et DAX.
Sources — documentation officielle de l’éditeur, consultée le 22 août 2026 : Table.RemoveRows, Table.Skip.
Des requêtes qui cassent à chaque nouvel export ?
Nous reprenons les chaînes de préparation fragiles pour qu’elles tiennent sans surveillance. Premier retour sous cinq jours ouvrés.