TOP

Tablas no pivotantes (Unpivot)

Descripción

Tablas resumen (pivot tables) Son una poderosa herramienta en el análisis de datos. Sin embargo, a veces es necesario implementar (unpivot) datos agregados (también conocido como "enderezar" o descomprimir los datos) para ponerlos en un formato de tabla normal para que todos los valores similares estén en la misma columna. Esto es necesario, por ejemplo, para crear un gráfico o informe nuevo o modificado.

Puede realizar esta conversión en Excel usando la herramienta Power Query, pero no es rápido ni muy conveniente. Probemos un enfoque diferente para implementar datos resumidos sin Power Query.


Formulación del problema

Imagine que necesitamos convertir un conjunto de datos de una tabla dinámica a una tabla plana (Unpivot):

Esta tarea se resuelve mejor con la ayuda de una macro. Escribamos nuestro propio procedimiento que podrá convertir una tabla cruzada (tabla cruzada) con datos en un formato de tabla normal (plano), lo que nos permitirá nuevamente crear tablas de resumen con datos modificados o complementados.

Código VBA para el procedimiento UnPivotTable

Abre el editor Visual Basic ( Servicio - Macro - Editor Visual Basic ), inserte el nuevo módulo (Insert - Module) y copie el texto de esta macro allí:

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 

Después de eso, puedes cerrar el editor VBA, regresar a Excel, seleccionar la tabla fuente (completamente, con el encabezado y la primera columna con países) y ejecutar nuestra macro a través del menú. Servicio - Macro - Macros (Tools - Macro - Macros) (ALT+F8) .

La macro insertará una nueva hoja en el libro y creará una nueva versión reconstruida de la tabla seleccionada en ella. Puede trabajar con una tabla de este tipo "con el programa completo", utilizando todo el arsenal de herramientas Excel para procesar y analizar tablas grandes.

Artículos relacionados: