Las tablas dinámicas son herramientas que nos permiten resumir y ordenar la información contenida en bases de datos.
Ahora bien, en toda empresa es necesario y fundamental la organización de la información para permitir el manejo mas sencillo de la misma y poder tomar decisiones relevantes.
Este ejemplo organiza la información de una planilla general de una empresa, en la cual se requiere asignar a las áreas, el total de sueldos a pagar por los trabajadores que laboran en cada una.
Nuestro documento consta de tres hojas, una con la base de datos, otra con el objetivo a conseguir y finalmente una donde aparecerá la tabla dinámica.
La base de datos que tenemos contiene 14 registros de los cuales los relevantes para nuestro trabajo son: CODIGO, AREA, ZONA, sistema de la organización y ZONA se refiere a la ubicación donde laboran.
Pues bien, el procedimiento desarrollado a continuación nos permitirá realizar la tabla dinámica que agrupe las áreas donde laboren los trabajadores según la categoría a la que pertenecen para obtener el total de sueldo. Se añaden dos filtros, el de zona y código ya que tal vez se requiere información de ciertos códigos por zona, etc. Se podría añadir además el género del trabajador. En las filas se han añadido las áreas y en las columnas, las categorías. El campo valor sera el sumar el sueldo a pagar.
Sub CrearTabla()
Dim base1 As Worksheet
Dim base2 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 base1 = Worksheets("Hoja2")
'Borrar las tablas dinamicas que se encuentran en la hoja
For Each PT In base1.PivotTables
PT.TableRange2.Clear
Next PT
Set base2 = Worksheets("PERSONAL")
FinalRow = base2.Cells(Rows.Count, 2).End(xlUp).Row
Set PRange = base2.Cells(1, 2).Resize(FinalRow - 1, 14)
Sheets("PERSONAL").Select
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address)
Set PT = PTCache.CreatePivotTable(TableDestination:=Worksheets("Hoja2").Range("B3"), TableName:="PivotTable3")
PT.Format xlReport4
'Actualizacion automatica
PT.ManualUpdate = True
PT.AddFields RowFields:=Array("AREA", "ZONA")
With PT.PivotFields("ZONA")
.Orientation = xlPageField
.Position = 1
End With
With PT.PivotFields("CODIGO")
.Orientation = xlPageField
.Position = 2
End With
With PT.PivotFields("CATEGO")
.Orientation = xlColumnField
.Position = 1
End With
With PT.PivotFields("TODO")
.Orientation = xlDataField
.Function = xlSum
.Position = 1
.NumberFormat = "#,##0"
.Name = "Total"
End With
'Calcular la tabla dinamica
PT.ManualUpdate = False
'PT.ManualUpdate = True
Sheets("Hoja2").Select
End Sub
Las tablas dinámicas generadas con macros, son recomendadas cuando se debe realizar la misma base de tabla muchas veces para obtener determinada información ya que ayudan a visualizar únicamente la información relevante, con lo que el análisis se torna más sencillo.
Elaborado por: Melissa Marca
08/05/2014 a las 2:18 pm
Hola resulta ser que tengo una tabla con los nombres de los empleados, su direcion y el departamento al que pertenecen. Lo que necesito que en otra hoja con solo digitar el nombre del departamento abajo me despliegue un listado de todos los empleados que pertenecen a ese departamento.
11/05/2020 a las 5:39 pm
Hola resulta que tengo un trabajo de excel son de 5 trabajadores tengo :
Codigo Nombre Apellido Edad DNI Sueldo Horas extras Bono Total del sueldo y Calificación del trabajador por el sueldo
Lo que necesito es que me pasen las formulas de como aser eso y como poner la calificación del trabajador por el sueldo