Table.Column : récupérer une colonne sous forme de liste dans Power Query
Extraire les valeurs d’une colonne pour les additionner, les dédoublonner ou s’en servir comme filtre dans une autre requête.
Table.Column renvoie les valeurs d’une colonne sous forme de liste. Le résultat n’est plus une table : c’est une liste de valeurs, dans l’ordre des lignes, doublons et valeurs null compris.
Ce passage de la table à la liste ouvre l’accès à toutes les fonctions List : additionner un montant, dédoublonner des noms, tester l’appartenance d’une valeur. Elle sert souvent à construire une liste de référence, par exemple les clients actifs, que l’on réutilise ensuite pour filtrer une autre table.
Une table, un nom de colonne, une liste en sortie
Table.Column(table as table, column as text) as list
| Paramètre | Rôle |
|---|---|
table | La table de départ. |
column | Le nom de la colonne à extraire, sous forme de texte. |
La fonction n’a aucun paramètre facultatif : contrairement à Table.SelectColumns, elle ne propose pas d’option MissingField pour une colonne absente.
Quatre façons de s’en servir
Extraire une colonne
Table.Column(
Table.FromRecords({
[CustomerID = 1, Name = "Bob"],
[CustomerID = 2, Name = "Jim"],
[CustomerID = 3, Name = "Paul"],
[CustomerID = 4, Name = "Ringo"]
}),
"Name"
)
Le résultat est la liste {"Bob", "Jim", "Paul", "Ringo"}, reprise de l’exemple de la documentation officielle.
Additionner un montant
List.Sum(Table.Column(Factures, "Montant"))
List.Sum additionne les valeurs non null de la liste, et renvoie null si la liste n’en contient aucune.
Lister les clients sans doublon
List.Distinct(Table.Column(Factures, "Client"))
Une facture par mois pour Bob donne une seule fois Bob dans la liste.
Filtrer une table avec la colonne d’une autre
let
ClientsActifs = Table.Column(Clients, "Client"),
Filtre = Table.SelectRows(Factures,
each List.Contains(ClientsActifs, [Client]))
in
Filtre
Seules les factures dont le client figure dans la table Clients sont conservées.
La colonne renommée en amont
Une requête calcule le total facturé avec Table.Column(Factures, "Montant"). Un jour, l’outil source renomme la colonne en « Montant HT ». La fonction ne trouve plus la colonne demandée et l’actualisation s’arrête sur une erreur.
Quand la source change souvent, testez la présence de la colonne avant de l’extraire, avec Table.HasColumns :
if Table.HasColumns(Factures, "Montant")
then List.Sum(Table.Column(Factures, "Montant"))
else null
Ne généralisez pas ce garde-fou : sur une colonne indispensable au calcul, mieux vaut une erreur visible qu’un total à null qui passe inaperçu.
Second piège, plus discret : List.Distinct compare les textes en respectant la casse. Si Bob est saisi « Bob » et « bob », il apparaît deux fois. Passez la colonne par Text.Lower ou utilisez List.Distinct(liste, Comparer.OrdinalIgnoreCase).
Ce qu’on nous demande sur Table.Column
Quelle différence avec Table.SelectColumns ?
Table.SelectColumns renvoie une table réduite aux colonnes choisies. Table.Column renvoie une liste de valeurs, utilisable directement avec les fonctions List.
La liste renvoyée contient-elle les doublons et les null ?
Oui. Elle reprend toutes les valeurs de la colonne, dans l’ordre des lignes. On dédoublonne ensuite avec List.Distinct si besoin.
Comment obtenir la liste des noms de colonnes plutôt que leurs valeurs ?
Avec Table.ColumnNames, qui renvoie les noms de toutes les colonnes de la table sous forme de liste.
Comment vérifier qu’une colonne existe avant de l’extraire ?
Table.HasColumns(Factures, "Montant") renvoie true si la colonne existe et false sinon. On s’en sert dans un if avant d’appeler Table.Column.
Pour aller plus loin
- Les fonctions de tables en Power Query.
- Les erreurs Power Query les plus courantes et comment les éviter.
- Créer une table à partir d’une liste, le chemin inverse.
- La référence complète Power Query et DAX.
Sources. Documentation officielle de l’éditeur, consultée le 14 octobre 2026 : Table.Column, Table.HasColumns, List.Sum, List.Distinct, Table.SelectColumns.
Vos requêtes cassent dès qu’une colonne change de nom ?
Nous relisons vos requêtes pour isoler les dépendances fragiles et sécuriser vos actualisations.