Excel Avanzado

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

Excel Avanzado

Tabla Dinámica para el Análisis de las Preferencias en el Consumo de los Clientes

| 2 comentarios

Descripción

Dado que las tablas dinámicas facilitan el análisis de una gran cantidad de información al mostrarla consolidada por categorías, podemos hacer uso de éstas para el control de servicios / procesos y productos.

Aplicación

 Descargar Tabla Dinámica Pedidos

En esta ocasión se creará una macro que permita analizar la información de los diferentes pedidos que puedan realizar los clientes en un restaurante que tiene sucursales en los distintos distritos de Lima.

Datos Pedidos

(Para mayor visualización de la imagen, hacer click en la misma)

Con esta tabla se podrá obtener las estadísticas de las preferencias de los consumidores (respecto a los platos ofrecidos), así como también permitirá conocer como varía el nivel de consumo a lo largo de la semana y por distritos.

Tabla de pedidos

(Para mayor visualización de la imagen, hacer click en la misma)

A continuación se presenta la programación del archivo adjunto:

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

Set WSD1 = Worksheets("Pedidos")

For Each PT In WSD1.PivotTables
PT.TableRange2.Clear
Next PT

Set WSD2 = Worksheets("Registro Pedidos")
FinalRow = WSD2.Cells(Rows.Count, 1).End(xlUp).Row
Set PRange = WSD2.Cells(1, 1).Resize(FinalRow, 4)

Sheets("Registro Pedidos").Select

Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address)

Set PT = PTCache.CreatePivotTable(TableDestination:=Worksheets("Pedidos").Range("B3"), TableName:="CuadroPedidos")

PT.Format xlReport4

PT.ManualUpdate = True

PT.AddFields RowFields:=Array("Fecha"), ColumnFields:=Array("Pedido"), PageFields:=Array("Distrito")

With PT.PivotFields("Departamento")
.Orientation = xlDataField
.Function = xlCount
.Position = 1
.NumberFormat = "#,##0"
.Name = "Depar"
End With

PT.ManualUpdate = False

Sheets("Pedidos").Select

End Sub

2 comentarios

  1. hola, tengo una consulta ya que estoy haciendo una planilla para ventas y es muy parecido al ejemplo este, me gustaría saber si me podían ayudar a generar la tabla dinamicaa partir de mi planilla. Saludos.

  2. Hola, buen día! Tengo una consulta en una tabla dinamica estoy haciendo sumas para el concepto de Cuota y Venta y necesito hacer un conteo solo de la venta , como lo puedo hacer? hice pruebas en campo calculado solo que no he logrado. gracias!

Deja una respuesta

Los campos requeridos estan marcados con *.