Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Creación de tabla dinámica: Resumen de acogida a concierto según edad

| Sin comentarios

La siguiente tabla dinámica muestra un consolidado del apoyo que brindan para publicidad las personas (según el grupo de edad al que pertenecen) para un concierto.

A dichas personas se les permitió elegir el número de volantes, afiches y entradas que llevarían para distribuirlas. En la tabla dinámica se espera que los resultados muestren que son los grupos más jóvenes, los que tienen mayor disposición para difundir el concierto.

La tabla dinámica que se obtiene se muestra a continuación. Efectivamente, según se puede observar, son los grupos más jóvenes (pero a partir de los 16 años) que brindan mayor apoyo a la publicidad.

Tabla_dinámica

A continuación se muestra la macro que ejecuta tal tarea. El archivo excel que sirve de entrada también se adjunta.

Archivo Vision Fest

Sub Tabla_dinámica()
Dim WSD1 As Worksheet
Dim WSD2 As Worksheet
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim PRange As Range
Dim FinalRow As Long

'Se define la hoja de trabajo
Set WSD1 = Worksheets("Hoja1")
'Borrar las tablas dinamicas que se encuentran en la hoja1
For Each PT In WSD1.PivotTables
PT.TableRange2.Clear
Next PT

'Definir el área de entrada y establecer un caché dinamico
Set WSD2 = Worksheets("VisionFest")
FinalRow = WSD2.Cells(Rows.Count, 1).End(xlUp).Row
Set PRange = WSD2.Cells(1, 1).Resize(FinalRow, 11)

'Nos situamos en la hoja con los datos
Sheets("VisionFest").Select
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address)

'Se crea una tabla dinamica en blanco, especiificando la ubicación de salida y nombre de la tabla
Set PT = PTCache.CreatePivotTable(TableDestination:=Worksheets("Hoja1").Range("B3"), TableName:="PivotTable3")

PT.Format xlReport4

'Actualizacion automatica
PT.ManualUpdate = True
PT.AddFields RowFields:=Array("Edad")

'Establecer los campos de datos
With PT.PivotFields("Nro. Entradas")
.Orientation = xlDataField
.Function = xlSum
.Position = 1
.NumberFormat = "#,##0"
End With

With PT.PivotFields("Nro. Afiches")
.Orientation = xlDataField
.Function = xlSum
.Position = 2
.NumberFormat = "#,##0"
End With

With PT.PivotFields("Nro. Volantes")
.Orientation = xlDataField
.Function = xlSum
.Position = 3
.NumberFormat = "#,##0"
End With

'Calcular la tabla dinamica
PT.ManualUpdate = False
'PT.ManualUpdate = True
Sheets("Hoja1").Select

End Sub

Deja una respuesta

Los campos requeridos estan marcados con *.