Uneori este nevoie să convertiți un tabel în cruce (pivot) într-unul plat. Această procedură se numește „ procesarea datelor "
Programul LibreOffice Calc nu are o funcționalitate standard pentru conversia tabelelor pivot în " apartament ", dar puteți scrie singur procedura corespunzătoare. Să vedem cum se face.
Să ne uităm la imaginea de mai jos pentru a înțelege mai clar esența problemei. În stânga avem un tabel sub forma unei matrice (tabel pivot), iar în dreapta - un tabel obișnuit cu coloane (tabel plat):
Când extindeți un tabel, despachetați perechea atribut-valoare care este intersecția coloanelor din tabelul matrice și le reorientați în coloanele aplatizate din tabelul plat:
Deschideți meniul Tools - Macros - Edit Macros..., selectați Module1 și copiați următorul text în 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
' Adăugați o foaie nouă
oBook.Sheets.insertNewByName("UnPivoted Table",0)
oNewSheet = oBook.Sheets(0)
' Determinați dimensiunea antetelor
iTopLabelRowCount = InputBox(" Câte linii în antetul de sus? ")
iSideLabelColCount = InputBox(" Câte coloane în antetul lateral? ")
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
Apoi, închideți Macro Editor și reveniți la foaia de lucru în LibreOffice Calc. Selectați întregul tabel cu anteturile de sus și din stânga și rulați noua noastră macrocomandă prin meniul Tools - Macros - Run Macro...
Macrocomanda va insera o nouă foaie cu nume în registrul de lucru
De asemenea, puteți utiliza utilitarul „Tabel pivot (Unpivot)” prin instalarea extensiei YLC_Utilities.oxt .
După aceea, acest utilitar va fi disponibil în toate fișierele care vor fi deschise în LibreOffice Calc.