TOP

Unpivottables (Unpivot)

Beschreibung

Übersichtstabellen (pivot tables) sind ein leistungsstarkes Werkzeug in der Datenanalyse. Manchmal ist jedoch eine Bereitstellung erforderlich (unpivot) aggregierte Daten (auch bekannt als „Begradigen“ oder Aufklappen der Daten), um sie in ein reguläres Tabellenformat zu bringen, sodass sich alle ähnlichen Werte in derselben Spalte befinden. Dies ist beispielsweise erforderlich, um ein neues oder geändertes Diagramm oder einen Bericht zu erstellen.

Sie können diese Konvertierung in Excel mit dem Tool Power Query durchführen, aber es ist nicht schnell und nicht sehr praktisch. Versuchen wir einen anderen Ansatz, um zusammenfassende Daten ohne Power Query bereitzustellen.


Formulierung des Problems

Stellen Sie sich vor, wir müssen einen Datensatz von einer Pivot-Tabelle in eine flache Tabelle (Unpivot) konvertieren:

Eine solche Aufgabe lässt sich besser mit Hilfe eines Makros lösen. Schreiben wir unsere eigene Prozedur, die in der Lage ist, eine Kreuztabelle (Kreuztabelle) mit Daten in ein reguläres (flaches) Tabellenformat umzuwandeln, was uns wieder ermöglicht Übersichtstabellen erstellen mit geänderten oder ergänzten Daten.

VBA-Code für die UnPivotTable-Prozedur

Öffnen Sie den Editor Visual Basic ( Dienst – Makro – Editor Visual Basic ), Setzen Sie das neue Modul ein (Insert - Module) und kopieren Sie den Text dieses Makros dorthin:

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 

Danach können Sie den VBA-Editor schließen, zu Excel zurückkehren, die Quelltabelle auswählen (vollständig, mit der Kopfzeile und der ersten Spalte mit Ländern) und unser Makro über das Menü ausführen Service - Makro - Makros (Tools - Macro - Macros) (ALT+F8) .

Das Makro fügt ein neues Blatt in die Arbeitsmappe ein und erstellt darauf eine neue, rekonstruierte Version der ausgewählten Tabelle. Sie können mit einer solchen Tabelle „mit dem vollständigen Programm“ arbeiten und dabei das gesamte Arsenal an Excel-Tools zur Verarbeitung und Analyse großer Tabellen nutzen.

In Verbindung stehende Artikel: