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

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.

Syntaxe

Le troisième paramètre est facultatif

Table.RemoveRows(
    table as table,
    offset as number,
    optional count as nullable number
) as table
ParamètreRôle
tableLa table de départ.
offsetPosition de la première ligne à supprimer. La numérotation commence à 0 : 0 désigne la première ligne, 1 la deuxième.
countNombre 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.

Exemples

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.

En pratique

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.

Questions fréquentes

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.

À côté

Les fonctions qu’on utilise avec

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.

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