Manchmal besteht die Notwendigkeit, einen Kreuztisch (Pivottisch) in einen flachen Tisch umzuwandeln. Dieses Verfahren heißt „ Datenbegradigung "
Das Programm LibreOffice Calc verfügt nicht über eine Standardfunktionalität zum Konvertieren von Pivot-Tabellen in „ Wohnung ", aber Sie können die entsprechende Prozedur selbst schreiben. Mal sehen, wie es geht.
Schauen wir uns das Bild unten an, um den Kern des Problems besser zu verstehen. Links haben wir eine Tabelle in Form einer Matrix (Pivot-Tabelle) und rechts eine reguläre Tabelle mit Spalten (flache Tabelle):
Wenn Sie eine Tabelle erweitern, entpacken Sie das Attribut-Wert-Paar, das den Schnittpunkt der Spalten in der Matrixtabelle darstellt, und richten es in den abgeflachten Spalten der flachen Tabelle neu aus:
Öffnen Sie das Menü Tools - Macros - Edit Macros..., wählen Sie Module1 aus und kopieren Sie den folgenden Text in das Modul:
Sub UnPivotTable ' moonexcel.com.ua Dim oBook As Object Dim oActiveSheet As Object Dim oSelRange As Object Dim oNewSheet As Object Dim i As Long Dim iTopLabelRowCount As Integer Dim iSideLabelColCount As Integer oBook = ThisComponent oActiveSheet = oBook.CurrentController.ActiveSheet oSelRange = oBook.CurrentSelection ' Fügen Sie ein neues Blatt hinzu oBook.Sheets.insertNewByName("UnPivoted Table",0) oNewSheet = oBook.Sheets(0) ' Bestimmen Sie die Größe der Header iTopLabelRowCount = InputBox(" Wie viele Zeilen enthält die obere Kopfzeile? ") iSideLabelColCount = InputBox(" Wie viele Spalten enthält die Seitenkopfzeile? ") i = 0 For r = (iTopLabelRowCount + 1) To oSelRange.Rows.Count For c = (iSideLabelColCount + 1) To oSelRange.Columns.Count For j = 1 To iSideLabelColCount oNewSheet.getCellByPosition(j-1, i).Formula = oSelRange.getCellByPosition(j-1, r-1).Formula Next j For k = 1 To iTopLabelRowCount oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, k-1).Formula Next k oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, r-1).Formula i = i + 1 Next c Next r End Sub
Schließen Sie dann Macro Editor und kehren Sie zu Ihrem Arbeitsblatt in LibreOffice Calc zurück. Wählen Sie die gesamte Tabelle mit den oberen und linken Überschriften aus und führen Sie unser neues Makro über das Menü Tools - Macros - Run Macro aus...
Das Makro fügt ein neues benanntes Blatt in Ihre Arbeitsmappe ein
Sie können das Dienstprogramm auch verwenden „Pivot-Tabelle (Unpivot)“ durch die Installation der Erweiterung YLC_Utilities.oxt .
Danach ist dieses Dienstprogramm in allen Dateien verfügbar, die in LibreOffice Calc geöffnet werden.