---
title: "Table.RemoveRows : supprimer des lignes en Power Query"
description: "Supprimer une plage de lignes par position dans Power Query. Syntaxe complète, index à base zéro, paramètre count facultatif et alternative pour les en-têtes variables."
url: "https://data-slconsulting.com/reference-power-query-dax/tableremoverows-power-query/"
lang: "fr-FR"
---

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.

`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è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`.

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

- [`Table.FindText`](https://data-slconsulting.com/reference-power-query-dax/rechercher-un-texte-dans-une-table-power-bi/) : retrouver une valeur dans toutes les colonnes.
- [Créer une table de dates dynamique](https://data-slconsulting.com/reference-power-query-dax/creer-un-calendrier-dynamique-power-bi/) en Power Query.
- [La référence complète Power Query et DAX](https://data-slconsulting.com/reference-power-query-dax/).

**Sources.** Documentation officielle de l’éditeur, consultée le 21 septembre 2026 : [Table.RemoveRows](https://learn.microsoft.com/fr-fr/powerquery-m/table-removerows), [Table.Skip](https://learn.microsoft.com/fr-fr/powerquery-m/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.

[Réserver un appel](https://data-slconsulting.com/contact/) ou 01 83 64 60 25

---

Version Markdown de https://data-slconsulting.com/reference-power-query-dax/tableremoverows-power-query/ (pour les agents IA : en-tête Accept: text/markdown, suffixe .md ou ?mode=agent). Index du site pour les agents : https://data-slconsulting.com/llms.txt. API publique : https://data-slconsulting.com/developers/. Contact : contact@data-slconsulting.com, 01 83 64 60 25.
