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

Table.FromList : créer une table à partir d’une liste dans Power Query

Transformer une liste de mois, de clients ou de lignes de texte en vraie table. Avec le piège du séparateur virgule appliqué par défaut.

Table.FromList convertit une liste en table. Chaque élément de la liste devient une ligne, et une fonction de fractionnement, le splitter, décide comment cet élément se répartit en colonnes. On en a besoin dès qu’une étape renvoie une liste alors que la suite attend une table : une colonne extraite avec Source[Client], une liste de mois écrite à la main, ou le résultat de List.Distinct qu’on veut fusionner avec une autre table ou charger dans le modèle.

Quand le résultat d’une étape est une liste, l’éditeur propose une commande Vers la table dans les outils de liste. Le code qu’elle génère repose sur Table.FromList.

Syntaxe

Quatre paramètres facultatifs sur cinq

Table.FromList(
    list as list,
    optional splitter as nullable function,
    optional columns as any,
    optional default as any,
    optional extraValues as nullable number
) as table
ParamètreRôle
listLa liste à convertir.
splitterFonction appliquée à chaque élément. Facultatif : par défaut, la liste est supposée contenir des textes séparés par des virgules. Splitter.SplitByNothing() garde chaque élément entier.
columnsFacultatif. Un nombre de colonnes, une liste de noms de colonnes ou un type de table.
defaultFacultatif. La documentation le cite sans en détailler l’effet ; nous ne l’utilisons pas ici.
extraValuesFacultatif. Ce qu’il faut faire quand un élément donne plus de valeurs que de colonnes : ExtraValues.List les regroupe dans une liste, ExtraValues.Error lève une erreur, ExtraValues.Ignore les ignore.

Passer null en deuxième position revient à garder le séparateur par défaut, la virgule. C’est la forme à utiliser quand on veut nommer les colonnes sans changer la façon de découper.

Exemples

Trois listes, trois tables

Une liste de mois en une colonne

Table.FromList({"Janvier", "Février", "Mars"}, Splitter.SplitByNothing(), {"Mois"})

Une table d’une colonne Mois et de trois lignes. Chaque élément est gardé entier.

Des textes séparés par des virgules

Table.FromList({"Bob,Janvier", "Jim,Février"}, null, {"Client", "Mois"})

Le séparateur par défaut coupe chaque texte à la virgule : Bob et Janvier sur la première ligne, Jim et Février sur la seconde.

Une liste de records

Table.FromList(
    {
        [Client = "Bob", Mois = "Janvier"],
        [Client = "Jim", Mois = "Février"]
    },
    Record.FieldValues,
    {"Client", "Mois"}
)

Ici, le splitter est Record.FieldValues : il transforme chaque record en liste de valeurs, qui se répartissent dans les colonnes Client et Mois.

En pratique

La virgule qui coupe vos valeurs

Le séparateur par défaut est pratique pour des textes comme "Bob,Janvier". Il devient un piège dès qu’une valeur contient elle-même une virgule, par exemple une raison sociale ou un libellé de facture. On croit construire une colonne de clients, et la virgule découpe certains noms en deux.

Table.FromList({"Bob", "Paul, Ringo et associés"}, null, {"Client"})

Le second élément donne deux valeurs pour une seule colonne. Selon extraValues, le résultat est une erreur, une liste ou une valeur tronquée, mais jamais le nom complet. Le piège est d’autant plus discret que l’erreur n’apparaît qu’au jour où une valeur avec virgule arrive dans les données.

La parade : dès que chaque élément doit rester entier, demander explicitement de ne rien découper.

Table.FromList({"Bob", "Paul, Ringo et associés"}, Splitter.SplitByNothing(), {"Client"})

Même réflexe pour une liste de nombres ou de dates : le fractionnement par défaut suppose du texte, Splitter.SplitByNothing() est donc le bon choix.

Questions fréquentes

Ce qu’on nous demande sur Table.FromList

Pourquoi écrire null en deuxième paramètre ?

Parce que null laisse le séparateur par défaut, la virgule, tout en permettant de renseigner les paramètres suivants, comme les noms de colonnes.

Comment garder chaque élément de la liste entier ?

Avec Splitter.SplitByNothing() en deuxième paramètre. Chaque élément devient une ligne d’une seule colonne, sans découpage.

Comment typer la colonne créée ?

En passant un type de table à la place des noms de colonnes, par exemple type table [Mois = text]. Le paramètre columns accepte un nombre, une liste de noms ou un type de table.

Que faire si certains éléments donnent plus de valeurs que de colonnes ?

C’est le rôle du paramètre extraValues : ExtraValues.List regroupe le surplus dans une liste, ExtraValues.Error lève une erreur et ExtraValues.Ignore l’ignore.

Sources. Documentation officielle de l’éditeur, consultée le 13 octobre 2026 : Table.FromList, ExtraValues.Type.

Des listes qui se transforment mal en tables ?

Nous relisons vos requêtes Power Query pour que chaque conversion de liste en table garde vos valeurs intactes, même quand les données changent.

Réserver un appelou 01 83 64 60 25
01 83 64 60 25 Réserver un appel