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.