TOP

Unpivottables (Unpivot)

Descriere

Tabele rezumative (pivot tables) sunt un instrument puternic în analiza datelor. Cu toate acestea, uneori trebuie să implementați (unpivot) date agregate (cunoscute și sub denumirea de „îndreptare” sau descomprimare a datelor) pentru a le pune într-un format obișnuit de tabel, astfel încât toate valorile similare să fie în aceeași coloană. Acest lucru este necesar, de exemplu, pentru a crea o diagramă sau un raport nou sau modificat.

Puteți efectua această conversie în Excel folosind instrumentul Power Query, dar nu este rapid și nu foarte convenabil. Să încercăm o abordare diferită pentru a lansa date rezumate fără Power Query.


Formularea problemei

Imaginați-vă că trebuie să convertim un set de date dintr-un tabel pivot într-un tabel plat (Unpivot):

O astfel de sarcină este mai bine rezolvată cu ajutorul unui macro. Să scriem propria noastră procedură care va putea converti un tabel încrucișat (tabel încrucișat) cu date într-un format de tabel obișnuit (plat), ceea ce ne va permite din nou creați tabele rezumative cu date modificate sau completate.

Cod VBA pentru procedura UnPivotTable

Deschide editorul Visual Basic ( Serviciu - Macro - Editor Visual Basic ), introduceți noul modul (Insert - Module) și copiați textul acestei macrocomenzi acolo:

Sub UnPivotTable()
  'moonexcel.com.ua
  Dim InVal    As Variant
  Dim OutVal() As Variant
  Dim j, k, i  As Long
  Dim NewSheet
  
  i = 1
  InVal = Selection.Formula
  ReDim OutVal(1 To Selection.Count, 1 To 3)
  
  For j = 2 To UBound(InVal, 1)
    For k = 2 To UBound(InVal, 2)
      If InVal(j, k) <> "" Then
        OutVal(i, 1) = InVal(j, 1)
        OutVal(i, 2) = InVal(1, k)
        OutVal(i, 3) = InVal(j, k)
        i = i + 1
      End If
    Next k
  Next j
  
  Set NewSheet = Worksheets.Add
  NewSheet.Range("A1").Resize(UBound(OutVal, 1), 3).Value = OutVal
End Sub 

După aceea, puteți închide editorul VBA, reveniți la Excel, selectați tabelul sursă (complet, cu antetul și prima coloană cu țări) și rulați macrocomandă prin meniu Serviciu - Macro - Macro (Tools - Macro - Macros) (ALT+F8) .

Macro-ul va insera o nouă foaie în registrul de lucru și va crea o nouă versiune reconstruită a tabelului selectat pe ea. Puteți lucra cu un astfel de tabel „cu programul complet”, folosind întregul arsenal de instrumente Excel pentru procesarea și analizarea tabelelor mari.

Articole similare: