Excel pour journalistes (16) : poursuivre le nettoyage avec Power Query

Il arrive fréquemment que les en-têtes de colonnes soient répartis sur plusieurs lignes, ce qui empêche de travailler sur la feuille de calcul. Comment tout ramener sur une seule ligne d’en-têtes efficacement et avec un minimum d’élégance? Encore une fois, Power Query fait le job.

Reprenons ici la feuille “Communes” du classeur sur lequel on a travaillé dans le billet précédent.

On le voit, les en-têtes sont répartis sur trois lignes dont certaines cellules sont fusionnées : une première ligne avec “Résidentiel” et “Non Résidentiel”, une seconde laissant le choix, pour chacune des deux premières catégories, entre nouvelles constructions et rénovations, la troisième enfin distinguant les différentes données pour chacune des sous-catégories : l’année, le nombre de bâtiments, le nombre de logements, etc… En laissant la feuille en l’état, aucun tri, aucun calcul n’est possible.

Une solution est, comme dans le billet précédent, de supprimer cette hiérarchie en copiant, coupant et collant à tours de bras. Pour obtenir quelque chose comme ceci :

Mais outre son manque d’élégance (ce qui ne serait pas encore trop grave), cette approche est difficilement applicable quand on travaille sur des dizaines de colonnes. Une autre façon de voir le monde est de se référer à Power Query.

La première chose à faire est de défusionner les cellules : sélection de toute la feuille (Ctrl + A) puis Accueil/Fusionner et Centrer/Annuler Fusionner Cellules :

Il fait ensuite supprimer le contenu de la cellule A1 (“Permis de bâtir autorisés”) car il ne fait pas partie de la hiérarchie des en-têtes.

Ensuite, avant d’utiliser Power Query, on va mettre la feuille sous forme de tableau : “Accueil/Mettre sous forme de tableau” mais en prenant soin de décocher, dans la boîte de dialogue qui apparaît, la case “Mon tableau comporte des en-têtes” :



Voici les données organisées sous forme de tableau :

Puis on lance Power Query : “Données/A partir d’un tableau ou d’une plage”. Et l’éditeur s’ouvre :

L’objectif est maintenant de fusionner le contenu des trois premières lignes, ce qui n’est nativement pas possible, Power Query ne permettant que la fusion de colonnes (et non de lignes). On va donc commencer par une transposition, c’est-à-dire par transformer des colonnes en lignes et inversement.

Pour ce faire, on sélectionne la première colonne puis à partir du ruban, “Transformer/transposer”

Les lignes sont devenues colonnes et les colonnes sont devenues lignes :

Il faut maintenant fusionner le contenu des deux premières colonnes. Mais avant cela, il faut remplir la première colonne : “Transformer/Remplir/Vers le bas”

Voici maintenant du contenu dans toutes les cellules utiles de la première colonne :

On procède à la même opération (remplir vers le bas) dans la seconde colonne pour le résultat suivant :

Il faut maintenant fusionner le contenu de ces trois premières colonnes afin d’établir les en-têtes définitifs. Pour ce faire, on sélectionne les trois colonnes et “Transformer/Fusionner” :

On choisit le séparateur (je choisis ici l’espace) et éventuellement, on donne un nom à la nouvelle colonne ainsi créée :

On a maintenant une seule colonne d’en-tête :

Reste maintenant à retransposer, c’est-à-dire à remettre les lignes en colonnes pour rendre au tableau son état initial. On sélectionne la première colonne et “Transformer/transposer”. Et voici un tableau tout beau, tout propre, avec des en-têtes disposés sur une seule ligne :

Pour sortir de l’éditeur Power Query et revenir à Excel : Fichier/Fermer et Charger :