Dashboard profesional con DAX
Práctica avanzada: Dashboard profesional con DAX
Objetivo
Crear un dashboard interactivo que permita analizar ventas, beneficios, márgenes, crecimiento, ranking de productos y participación sobre total, aplicando DAX avanzado y segmentación.
1. Preparar los datos
Paso 1: Cargar el dataset
- Abrir Power BI Desktop
- Inicio → Obtener datos → Excel
- Seleccionar Financial Sample.xlsx
- Seleccionar tabla Financials → Cargar
Paso 2: Crear tabla calendario
Calendario =
CALENDAR(DATE(2013,1,1), DATE(2015,12,31))
Añadir columnas:
- Año: YEAR(Calendario[Date])
- Mes: FORMAT(Calendario[Date], «MMMM»)
- Mes Número: MONTH(Calendario[Date])
- Trimestre: «Q» & FORMAT(Calendario[Date], «Q»)
Crear relación: Calendario[Date] → Financials[Date] (uno a muchos)
2. Medidas básicas
Ventas Totales = SUM(Financials[Sales])
Beneficio Total = SUM(Financials[Profit])
Unidades Vendidas = SUM(Financials[Units Sold])
Margen % = DIVIDE([Beneficio Total],[Ventas Totales])
3. Inteligencia temporal
Ventas Año Anterior = CALCULATE([Ventas Totales], SAMEPERIODLASTYEAR(Calendario[Date]))
Crecimiento YoY = DIVIDE([Ventas Totales]-[Ventas Año Anterior],[Ventas Año Anterior])
Ventas YTD = TOTALYTD([Ventas Totales], Calendario[Date])
Ventas 1 Mes Anterior = CALCULATE([Ventas Totales], DATEADD(Calendario[Date], -1, MONTH))
4. Ranking y Top N
Ranking Producto = RANKX(ALL(Financials[Product]), [Ventas Totales], , DESC)
Mostrar Top Productos = IF([Ranking Producto] <= SELECTEDVALUE(TopN[Top]),1)
- Crear tabla parámetro TopN con valores 3, 5, 10
- Insertar Slicer con TopN[Top]
- Filtrar visual de productos: Mostrar Top Productos = 1
5. Participación sobre total
% Participación Producto = DIVIDE([Ventas Totales], CALCULATE([Ventas Totales], ALL(Financials[Product])))
% Participación País = DIVIDE([Ventas Totales], CALCULATE([Ventas Totales], ALL(Financials[Country])))
6. Ventas condicionales con CALCULATE y FILTER
Ventas Grandes = CALCULATE([Ventas Totales], FILTER(Financials, Financials[Sales] > 1000))
Ventas Francia = CALCULATE([Ventas Totales], Financials[Country] = «France»)
7. Beneficio por unidad
Beneficio por Unidad = DIVIDE([Beneficio Total], [Unidades Vendidas])
8. Crear el dashboard
8.1 KPIs principales
- Tarjetas:
- Ventas Totales
- Beneficio Total
- Margen %
- Crecimiento YoY
8.2 Tendencias temporales
- Gráfico de líneas:
- Eje: Calendario[Mes]
- Valores: [Ventas Totales], [Ventas YTD]
- Activar drill-down: año → trimestre → mes
8.3 Productos top
- Tabla:
- Product
- [Ventas Totales]
- [Ranking Producto]
- % Participación Producto
- Filtrar por Mostrar Top Productos = 1
- Slicer Top N dinámico
8.4 Ventas por país
- Gráfico de columnas o mapa
- Eje: Country
- Valores: [Ventas Totales] o [Beneficio Total]
- Opcional: % Participación País
8.5 Segmentadores
- Año
- País
- Segmento
- Producto
- Top N
8.6 Diseño recomendado
- KPIs arriba, grandes y visibles
- Gráfico líneas al centro
- Productos top y país lateral
- Segmentadores a la izquierda o arriba
- Paleta de colores consistente
9. Ejercicios de análisis para el alumno
- ¿Qué país tiene mayor margen?
- ¿Qué producto genera más ventas?
- ¿Cuál es el top 5 de productos por ventas y participación?
- ¿Cuál es la tendencia YTD de ventas en los últimos 3 años?
- ¿Qué impacto tienen los descuentos sobre las ventas totales?
- ¿Cuál es la evolución mensual del beneficio por unidad?
10. Buenas prácticas aplicadas
- Todas las medidas usan DAX avanzado con CALCULATE, FILTER, ALL, DIVIDE y variables VAR
- Dashboard interactivo y jerárquico con drill-down y segmentadores
- Top N dinámico para flexibilidad del usuario
- KPIs con contexto temporal y comparativos YoY