Tableaux récapitulatifs
Vous pouvez effectuer cette conversion dans Excel à l'aide de l'outil Power Query, mais ce n'est ni rapide ni très pratique. Essayons une approche différente pour déployer des données récapitulatives sans Power Query.
Imaginez que nous devions convertir un ensemble de données d'un tableau croisé dynamique en un tableau plat (Unpivot) :
Une telle tâche est mieux résolue à l'aide d'une macro. Écrivons notre propre procédure qui pourra convertir un tableau croisé (table croisée) avec des données en un format de tableau régulier (plat), ce qui nous permettra à nouveau créer des tableaux récapitulatifs avec des données modifiées ou complétées.
Ouvrez l'éditeur Visual Basic ( Service - Macro - Editeur Visual Basic ), insérez le nouveau module
Sub UnPivotTable() 'moonexcel.com.ua Dim InVal As Variant Dim OutVal() As Variant Dim j, k, i As Long Dim NewSheet i = 1 InVal = Selection.Formula ReDim OutVal(1 To Selection.Count, 1 To 3) For j = 2 To UBound(InVal, 1) For k = 2 To UBound(InVal, 2) If InVal(j, k) <> "" Then OutVal(i, 1) = InVal(j, 1) OutVal(i, 2) = InVal(1, k) OutVal(i, 3) = InVal(j, k) i = i + 1 End If Next k Next j Set NewSheet = Worksheets.Add NewSheet.Range("A1").Resize(UBound(OutVal, 1), 3).Value = OutVal End Sub
Après cela, vous pouvez fermer l'éditeur VBA, revenir à Excel, sélectionner la table source (complètement, avec l'en-tête et la première colonne avec les pays) et exécuter notre macro via le menu Service - Macros - Macros
La macro insérera une nouvelle feuille dans le classeur et créera une nouvelle version reconstruite du tableau sélectionné. Vous pouvez travailler avec une telle table "avec le programme complet", en utilisant tout l'arsenal d'outils Excel pour traiter et analyser de grandes tables.