Bazen çapraz (pivot) bir tabloyu düz bir tabloya dönüştürmeye ihtiyaç duyulur. Bu prosedüre " denir veri düzeltmesi "
LibreOffice Calc programı pivot tabloları "'e dönüştürmek için standart bir işlevselliğe sahip değildir doğru ", ancak ilgili prosedürü kendiniz yazabilirsiniz. Nasıl yapılacağını görelim.
Sorunun özünü daha net anlamak için aşağıdaki resme bakalım. Solda matris şeklinde bir tablomuz var (pivot tablo) ve sağda sütunlu normal bir tablo (düz tablo):
Bir tabloyu genişlettiğinizde, matris tablosundaki sütunların kesişme noktası olan nitelik-değer çiftini paketinden çıkarırsınız ve bunları düz tablodaki düzleştirilmiş sütunlara yeniden yönlendirirsiniz:
Tools - Macros - Edit Macros... menüsünü açın, Module1'yi seçin ve aşağıdaki metni modüle kopyalayın:
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 ' Yeni bir sayfa ekle oBook.Sheets.insertNewByName("UnPivoted Table",0) oNewSheet = oBook.Sheets(0) ' Başlıkların boyutunu belirleyin iTopLabelRowCount = InputBox(" Üst başlıkta kaç satır var? ") iSideLabelColCount = InputBox(" Yan başlıkta kaç sütun var? ") 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
Ardından, Macro Editor'u kapatın ve LibreOffice Calc'deki çalışma sayfanıza dönün. Üst ve sol başlıklarla birlikte tablonun tamamını seçin ve yeni makromuzu Tools - Macros - Run Macro... menüsü aracılığıyla çalıştırın.
Makro, çalışma kitabınıza yeni bir adlandırılmış sayfa ekleyecektir