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şimi olan nitelik-değer çiftini açarsı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
Yardımcı programı da kullanabilirsiniz "Özet tablo (Unpivot)" uzantıyı yükleyerek YLC_Utilities.oxt .
Bundan sonra bu yardımcı program LibreOffice Calc'de açılacak tüm dosyalarda mevcut olacaktır.