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

Table.Unpivot : transformer des colonnes en lignes dans Power Query

Passer d’un tableau avec un mois par colonne à une table exploitable, avec une ligne par client et par mois. Et choisir entre Table.Unpivot et Table.UnpivotOtherColumns.

Table.Unpivot convertit un ensemble de colonnes en paires attribut et valeur. Chaque colonne citée devient une ligne : son nom part dans une colonne d’attribut, son contenu dans une colonne de valeur, et les autres colonnes de la ligne sont répétées à côté. C’est l’opération qu’il faut pour un fichier de suivi où chaque mois occupe sa propre colonne : tant que les mois restent en colonnes, impossible de filtrer sur une période ou de relier la table à un calendrier.

Dans l’éditeur, les commandes se trouvent par clic droit sur les en-têtes ou dans l’onglet Transformer. Dépivoter uniquement les colonnes sélectionnées écrit Table.Unpivot. Dépivoter les colonnes et Dépivoter les autres colonnes écrivent sa variante Table.UnpivotOtherColumns, que l’interface produit le plus souvent.

Syntaxe

Quatre paramètres, tous obligatoires

Table.Unpivot(
    table as table,
    pivotColumns as list,
    attributeColumn as text,
    valueColumn as text
) as table
ParamètreRôle
tableLa table de départ.
pivotColumnsLa liste des colonnes à transformer en lignes.
attributeColumnLe nom de la nouvelle colonne qui recevra les anciens en-têtes.
valueColumnLe nom de la nouvelle colonne qui recevra les valeurs.

Table.UnpivotOtherColumns a exactement la même signature, mais sa liste désigne l’inverse : les colonnes à conserver. Toutes les autres sont dépivotées. Par défaut, l’interface nomme les deux nouvelles colonnes Attribut et Valeur.

Exemples

Un tableau de suivi mensuel

Sur une table avec une colonne Client (Bob, Jim) et une colonne par mois : Janvier, Février, Mars. Jim n’a rien facturé en février, la cellule est vide (null).

Dépivoter les mois cités

Table.Unpivot(Source, {"Janvier", "Février", "Mars"}, "Mois", "Montant")

Le résultat compte trois colonnes, Client, Mois et Montant, et une ligne par client et par mois. Bob obtient trois lignes. Jim n’en obtient que deux : comme dans l’exemple de la documentation, la cellule null ne produit pas de ligne.

Dépivoter tout sauf le client

Table.UnpivotOtherColumns(Source, {"Client"}, "Mois", "Montant")

Même résultat sur ce tableau. La différence n’apparaît que lorsque les colonnes de la source changent.

En pratique

Le mois d’avril qui reste en colonne

Le fichier de suivi s’enrichit d’une colonne par mois. En avril, une colonne Avril apparaît. Avec Table.Unpivot et sa liste figée, seuls Janvier, Février et Mars sont dépivotés : Avril reste une colonne à part, ses montants n’entrent pas dans la colonne Montant, et les totaux du rapport ignorent le mois sans aucune erreur. La documentation de l’éditeur décrit précisément ce comportement : la colonne ajoutée après coup reste inchangée.

Quand la liste des mois grandit, on inverse la logique : on cite ce qui est stable, les colonnes descriptives, et on laisse Power Query dépivoter tout le reste.

let
    Source   = ...,
    Depivote = Table.UnpivotOtherColumns(Source, {"Client"}, "Mois", "Montant")
in
    Depivote

La contrepartie : toute nouvelle colonne descriptive, une colonne Ville par exemple, serait elle aussi dépivotée. Il faut l’ajouter à la liste des colonnes conservées dès qu’elle apparaît.

Questions fréquentes

Ce qu’on nous demande sur Table.Unpivot

Pourquoi certaines lignes disparaissent-elles après le dépivotage ?

Les cellules null ne produisent pas de ligne, comme le montre l’exemple de la documentation. Si chaque client doit avoir une ligne pour chaque mois, remplacez d’abord les null par 0, par exemple avec Table.ReplaceValue(Source, null, 0, Replacer.ReplaceValue, {« Janvier », « Février », « Mars »}).

Quelle différence entre Table.Unpivot et Table.UnpivotOtherColumns ?

Table.Unpivot reçoit la liste des colonnes à dépivoter. Table.UnpivotOtherColumns reçoit la liste des colonnes à garder et dépivote toutes les autres. La seconde absorbe les nouvelles colonnes de la source, la première les laisse de côté.

Pourquoi la colonne des mois est-elle du texte ?

Elle reçoit les anciens en-têtes de colonnes, qui sont des noms. Pour la relier à un calendrier, il faut la convertir ensuite en date ou la rapprocher d’une table de correspondance des mois.

Comment revenir à un mois par colonne ?

C’est l’opération inverse, Table.Pivot, que l’interface écrit derrière la commande Colonne dynamique. Dans un modèle Power BI, la forme dépivotée reste en général la plus pratique à analyser.

Sources. Documentation officielle de l’éditeur, consultée le 13 octobre 2026 : Table.Unpivot, Table.UnpivotOtherColumns, Dépivoter des colonnes.

Un nouveau mois dans le fichier et des totaux qui ne bougent pas ?

Nous transformons vos tableaux de suivi Excel en tables qui absorbent les nouvelles périodes sans retouche.

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