Power Query : Découvrir la fonction Table.ToList

Publié le 25 octobre 2021
par Sophie Marchand M.Sc.
Colonne personnalisée

Le 9 novembre dernier, j’ai animé un webinaire d’une heure portant sur quelques recettes gagnantes avec Power Query. Lors de ce webinaire gratuit, j’ai mis l’accent sur 2 types de recettes. D’abord, celles qui permettent de répliquer des fonctions bien connues d’Excel dans Power Query et ensuite, celles utilisant des listes et ou des tables. Cette deuxième catégorie est plus difficile à appréhender pour de nombreux usagers Excel mais regorge pourtant d’un potentiel infini. En guise d’introduction à ce webinaire, je vous partage donc une “recette” basée sur les tables et les listes, plus précisément, une recette basée sur l’usage de la fonction Table.ToList, qui permet de créer une liste à partir des éléments d’une table.

 

Contenu du webinaire

À noter que tous nos membres VIP peuvent écouter ce webinaire en différé gratuitement

 

Recettes répliquant les fonctions connues d’Excel dans Power Query

Lors de ce webinaire, nous passerons en révision plusieurs exemples servant à répliquer des fonctions usuelles d’Excel dans Power Query, comme :

  • RECHERCHEV
  • SI/ET/OU
  • SI.CONDITIONS/SI.MULTIPLES
  • SIERREUR
  • SOMME.SI.ENS/NB.SI.ENS
  • DATE/DATEVAL
  • NBVAL

 

Recettes basées sur des listes et des tables

Lors de ce webinaire, nous tâcherons également de nous intéresser aux listes et aux tables dans Power Query. En guise d’introduction à cette section, je partage ci-dessous un exemple basé sur la fonction Table.ToList. De même, voici d’autres articles qui présentent des recettes Power Query basées sur des listes et/ou des tables :

 

Vous avez des sources de données volumineuses à rassembler et analyser dans Excel ? Apprenez à automatiser tout le processus d’importation, de transformation et de modélisation  des données avec nos formations sur Power Query et Power Pivot dans Excel.

 

La fonction Table.ToList expliquée

 

Données sous étude

Les données ci-dessous sont des données que nous obtenons lorsqu’une entreprise nous demande de gérer pour elle les inscriptions de ses employés à nos différentes formations. Plus précisément, on reçoit de nos clients des tableaux qui comprennent le courriel de l’apprenant, son prénom, son nom et le nom de la ou des formation(s) à laquelle (auxquelles) il souhaite s’inscrire. De notre côté, vous créons des “groupes” de formation pour l’entreprise. Chaque formation possède son propre groupe. Avec des tables d’équivalence, on arrive ainsi à produire une table comme celle présentée ci-dessous. Elle comprend le courriel, le prénom et le nom de l’apprenant. On y ajoute le nom complet de l’apprenant qui est requis dans notre système pour savoir quel nom afficher dans le haut de l’écran et on y ajoute aussi le numéro (ID) du groupe de formation concernée.

 

Données sous analyse

Toutefois, notre système demande plutôt une ligne unique par apprenant. Il faut ainsi regrouper ensemble tous les numéros de groupes des formations que chaque individu désire suivre et les séparer par des “;” tel que présenté dans le tableau ci-dessous.

 

Résultat visé

 

Transformations dans Power Query

 

Convertir la colonne en type texte

La première transformation que nous effectuons dans Power Query, c’est d’obtenir les numéros de groupes en type “texte”. Ceci est essentiel au bon fonctionnement de la fonction Table.ToList.

Convertir le type de données

 

Regrouper les lignes

La deuxième transformation que nous effectuons dans Power Query, c’est de regrouper les données par apprenant. Nous demandons de regrouper “toutes les lignes”, par apprenant.

Regrouper par

 

On obtient ainsi ce qui suit. Notez que chaque ligne comprend  une “table” avec toutes les inscriptions de l’individu.

Créer une table dans Power Query

 

Utiliser la fonction Table.ToList dans une colonne personnalisée

La troisième transformation que nous effectuons dans Power Query, c’est l’ajout d’une colonne personnalisée pour regrouper tous les groupes des formations suivies par apprenant. Nous utilisons la fonction Table.SelectColumns pour créer une table qui ne comprendra uniquement que la colonne “group” et on l’imbrique ensuite dans une fonction Table. ToList pour la transformer en liste.

Colonne personnalisée

 

On obtient ainsi une liste des numéros de groupes de formations par individu.

Créer une liste dans Power Query

 

Créer la liste de valeurs combinées

Il ne reste plus qu’à exraire les valeurs de la liste et à demander de séparer les différents éléments à l’aide d’un séparateur sous format “;”.

Valeurs combinées

 

Écoutez notre webinaire en différé

Pour écouter ce webinaire en différé devenez membre VIP du CFO masqué.

Fichier d’accompagnement VIP à télécharger

Pour télécharger le fichier utilisé dans ce tutoriel, devenez membre VIP du CFO masqué.

 

Formation complémentaire

Afin d’approfondir vos connaissances avec Power Query, nous vous recommandons de débuter avec notre formation Excel – Introduction à Power Query et au langage M.

 

Voici quelques commentaires d’apprenants ayant suivi cette formation :

Voici quelques commentaires d’apprenants ayant suivi la formation - Excel Introduction à Power Query et au langage M

CFO-Masque_Formations-en-ligne_FBLa mission du CFO masqué est de développer les compétences techniques des analystes et des contrôleurs de gestion en informatique décisionnelle avec Excel et Power BI et favoriser l’atteinte de leur plein potentiel, en stimulant leur autonomie, leur curiosité, leur raisonnement logique, leur esprit critique et leur créativité.

3 réflexions sur “Power Query : Découvrir la fonction Table.ToList”

  1. Bonjour,
    J’aurais souhaité faire exactement l’inverse, soit partir de deux colonnes pour les développer en deux enregistrements avec les autres colonnes identiques.
    J’imagine combiner les deux colonnes en liste, puis transformer ces listes en table à développer, mais je parviens pas à le faire.
    Auriez-vous une solution?
    Cordialement

    1. Bonjour Dereck,
      Je vous suggère de poser votre question sur notre forum avec un exemple dans un fichier Excel des données à partir desquelles vous voulez faire votre transformation et le résultat souhaité.
      Un membre de la communauté pourra certainement vous aider.
      https://www.lecfomasque.com/forums/

      Au plaisir,
      Kim

      1. Bonjour Kim,
        Je vous remercie de votre réponse. C’est compris pour les prochaines questions.
        En attendant, j’ai trouvé la réponse :
        – Fusionner les colonnes avec un séparateur quelconque (par exemple point-virgule) ;
        – Fractionner la colonne créée selon le même délimiteur en choisissant “En ligne” dans les options avancées.
        Tout simple ! 🙂
        À bientôt,
        Dereck

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut