Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Escenarios modelado Ana María Bisbé York
Consultora y formadora en MS Business Intelligence Microsoft Partner en PowerBI @ambynet Escenarios modelado
2
BIG Thanks to SQLSatMadrid sponsors
3
Sponsor sessions at 11:40 Don’t miss them, they might be getting distributing some awesome prizes! Plainconcepts SolidQ KABEL & Corent Also XBOX One & Raffle prizes at 17:30
4
Agenda 1.- ¿Columnas calculadas o medidas?...o variables? 2.- ¿Es posible calcular desde tablas relacionadas? ¿Es óptimo? 3.- ¿Qué significa el valor agregado? ¿Es posible controlar el resultado? 4.- ¿Ranking y TopN dinámicos? ¿Y si…? 5.- ¿Comparativas en los tiempos? ¿Y si…?
5
DAX - Introducción DAX – Data Analysis Expressions Modelos tabulares
Power Pivot SQL Server Analysis Services Tabular Power BI Lenguaje funcional La ejecución fluye como llamadas a funciones De dentro hacia fuera Todo en una línea
6
¿Es fácil escribir expresiones DAX?
7
Escenario: ¿Columnas calculadas o medidas?...o variables?
8
Columna calculada vs Medida
Diseño del modelo Columna calculada, (preferentemente en la consulta) Cabeceras de filas y/o columnas de tablas/matrices, ejes discretos en gráficos o segmentadores Medida (con DAX) Examinar el resultado como valor, en el panel central de tabla dinámica Utilizar este valor como origen de datos para KPI Su valor depende del contexto definido por el usuario Está afectado por filtros de tablas, gráficos y segmentadores
9
Medidas explícitas vs Columnas
Las medidas implícitas se crean al seleccionar una columna numérica. El agregado predeterminado es Suma Es mejor, crear la medida, aunque sólo sea para el agregado predeterminado de la columna Es más fácil la lectura y mantenimiento del código A partir de entonces, siempre podemos seleccionar la medida Total Cantidad, No se necesita del nombre de la tabla para referirse a la medida, las medidas pertenecen al modelo Las medidas explícitas se envuelven en un CALCULATE, aunque no lo escribamos CALCULATE realiza la transición del contexto de fila en contexto de filtro. Esto evita que tengamos que utilizar funciones de navegación, lo que vuelve a facilitar la lectura y mantenimiento Las medidas, al exportar el modelo a Excel, están disponibles para la casilla valores de la Tabla dinámica, las columnas, incluyendo las numéricas, no
10
Columnas calculadas vs medidas
Dos tipos de cálculos en DAX Columnas calculadas Se evalúa fila a fila Consume más recursos, calcula para cada fila de la columna Cálculo inmediato y almacenamiento en columna del modelo Tabular Útil para para filtros y segmentación. Intentar hacer en consulta. No crear columnas calculadas para valores numéricos. Medidas Se evalúa en el momento que se agrega a la tabla/gráfico Consume menos recursos, sólo se calcula para los elementos activos Cálculo dinámico, al vuelo Se escriben siempre en DAX
11
Columnas calculadas vs medidas
Cálculos desde columnas Cálculos desde medidas
12
Medidas auxiliares vs Variables
Si no necesitamos las medidas Utilizar variables para la definición del final Caso 1.- % Ganancia
13
Medidas auxiliares vs Variables
Si no necesitamos mostrar las medidas intermedias Utilizar variables para la definición del final Caso 2.- Cálculos por pasos en una única iteración Simplificando, menos variables a crear
14
Escenario: ¿Cómo calculo entre tablas relacionadas
Escenario: ¿Cómo calculo entre tablas relacionadas? ¿Qué es óptimo y que no?
15
Tipos de Modelos Única tabla Copo de nieve Estrella
Clásico de Excel, anterior a Excel 2013 Copo de nieve Normalizado Existen enlaces entre las tablas de búsquedas o dimensiones que no apuntan directamente a la tabla de hechos Estrella Modelo Denormalizado Todas las tablas de búsquedas o dimensiones apuntan directamente a la tabla de hechos
16
Relaciones entre tablas y DAX
Roles en la relación entre dos tablas Se referencian como lado Uno (1) vs lado Muchos (*) Un Producto se puede vender cero, una o Muchas veces (1:M) Un Cliente puede comprar cero, una o Muchas veces (1:M) Cada venta se corresponde a un único Cliente y único Producto (M:1)
17
Relaciones entre tablas y DAX
Las columnas claves en la relación tienen un único tipo de dato. Se puede crear relaciones entre tablas empleando únicas columnas claves, no combinadas.
18
Relaciones entre tablas y DAX
Editar relaciones
19
Relaciones entre tablas y DAX
Análisis que combinan filtros desde tablas diferentes
20
Relaciones entre tablas y DAX
Dirección del filtro cruzado Puede ser: única o bidireccional
21
Relaciones entre tablas y DAX
Dirección del filtro cruzado: única El filtro desde Productos se propaga a Ventas (1:M) El filtro no se propaga de Ventas a Clientes (M:1)
22
Relaciones entre tablas y DAX
Dirección del filtro cruzado: bidireccional El filtro desde Productos se propaga a Ventas (1:M) El filtro se propaga de Ventas a Clientes (M:1)
23
Relaciones entre tablas y DAX
Dirección del filtro cruzado Única dirección en el modelo Ambas direcciones en el cálculo, ¡¡¡ DAX al rescate !!!
24
Relaciones entre tablas y DAX
Dirección del filtro cruzado: bidireccional El filtro desde Productos se propaga a Ventas (1:M) El filtro se propaga de Ventas a Clientes (M:1) Mucha precaución, evitar a toda costa Provoca ambigüedad en el modelo Es peor para optimización de consultas Comportamiento inexplicable si tenemos más de una tabla de hechos ya que provoca relaciones inactivas Provoca extra propagación de filtro de M:1 Provoca aparición de Tablas expandidas Algunos expertos, aun así recomiendan su uso, como siempre, depende del escenario
25
Relaciones entre tablas y DAX
Cálculos que combinan relaciones Uso de funciones RELATED – siguiendo relación de M:1 RELATEDTABLE o CALCULATEDTABLE – siguiendo relación de 1:M
26
Transición de contexto
En cálculos que combinan tablas desde columnas Se necesitan funciones de navegación para acceder a columnas de otras tablas El contexto de fila, de una columna o un iterador, no se propaga por la relación. La medida convierte el contexto de fila en contexto de filtro, lo que se llama transición de contextos
27
Columnas vs Medidas y Relaciones
La medida Total Ventas realiza el cálculo Ambas columnas ¡¡¡ son innecesarias !!!
28
Columnas vs Medidas y Relaciones
Validez del cálculo para analizar desde columnas Es correcto si aplicamos filtros desde la misma tabla
29
Columnas vs Medidas y Relaciones
El cálculo es incorrecto al filtrar desde otras tablas
30
Funciones relacionales
RELATED() Sigue la relación M:1 y devuelve el valor de la columna Resultado Categoría = RELATED(Categorias[Categoría])
31
Funciones relacionales
RELATEDTABLE() Sigue la relación 1:M y devuelve todas las filas que se relacionan con la fila actual Resultado
32
Procesar Columnas calculadas
Tabla Productos Subcategoría tiene misma granularidad Ventas tiene menos granularidad Procesado no óptimo
33
Procesar Columnas calculadas
Desde la tabla Ventas Valores distintos de columnas nativas Cantidad = 10, Precio = 43 y Coste 45 Dos columnas calculadas Ventas = Ventas_Cantidad[Cantidad] * Ventas_Cantidad[Precio] Ganancia = Ventas_Cantidad[Cantidad] * (Ventas_Cantidad[Precio] - Ventas_Cantidad[Coste]) Valores distintos de columnas calculadas Ventas = 379 y Ganancia = 406 Incrementan grandemente la granularidad
34
Columnas calculadas vs Tablas calculadas
Tabla con única columna Columnas calculadas Tablas creadas con columnas, única expresión DAX
35
Escenario: ¿Qué significa el agregador? ¿Cómo controlo el resultado?
36
Contextos en DAX Resultados diferentes de una medida, según contexto
El resultado depende: Del código Del contexto de filtro en el que se evalúe
37
Comprobar el contexto con FILTER
Dado un contexto Crear una tabla temporal para comprobar el valor Calcular el agregado en una medida
38
Comprobar el contexto con FILTER
Dado un contexto Calcular el agregado en una medida, utilizando directamente la expresión de filtrado
39
Modificar contextos con DAX
Reemplazar el contexto existente Con funciones CALCULATE o CALCULATETABLE Ignorar el contexto existente Con función ALL
40
Modificar contextos con DAX
Reemplazar o Ignorar el contexto existente Sólo cuando corresponde El análisis se realiza por categoría No hay nada que reemplazar o ignorar
41
Modificar el contexto con DAX
Contextos y comparaciones Comparar en una misma categoría Excluir el valor del Total
42
Modificar contexto con DAX – Abril 2017
Medidas rápidas – aún en versión preliminar
43
Modificar contexto con DAX – Abril 2017
¡ Sorpresa ! Power BI Desktop escribe DAX Medidas rápidas Nueva funcionalidad en versión preliminar
44
Interacciones y contextos
Requisitos Mostrar las ventas de Australia No afectar el valor por segmentadores u otros filtros
45
Interacciones y contextos
Caso 1.- Sólo se actúa sobre la columna País
46
Interacciones y contextos
Caso 2.- Se actúa sobre toda la tabla Clientes y se mantiene el filtro por País
47
Interacciones y contextos
Caso 3.- Se actúa sobre todo el Modelo y se mantiene el filtro por País
48
Interacciones y contextos
Se actúa sobre todo el Modelo y se mantiene el filtro por País
49
Escenario: ¿Ranking y TopN dinámicos? ¿Y si…?
50
Definir un Ranking de datos
La función RANKX itera la tabla Asigna un número de orden
51
Definir Top N a partir Ranking de datos
Tabla auxiliar no relacionada Segmentador sobre la tabla Valor de N seleccionado Agregado en función al Top N
52
Top N y agregado dinámico
Valor N Agregado, tiene en cuenta los empates
53
Nueva función: GENERATESERIES
Crea la tabla auxiliar no relacionada Serie regular Serie irregular
54
Top N dinámico desde serie irregular
Valor N Agregado
55
¿Y si…? Hipótesis Crear parámetro de hipótesis Ver resultado
56
Ranking y Top Dinámico Tabla auxiliar a mano vs GENERATESERIES vs ¿Y si…?
57
Ranking y Top dinámicos (% Top vs Total)
A partir de Ranking y TopN Dinámicos, calcular Cantidades vendidas por el Top N Porcentaje que representa esa cantidad del Top N sobre el Total
58
Escenario: ¿Comparar tiempos? ¿Y si…?
59
Inteligencia de tiempos
Compara los datos de un período de tiempo con los datos equivalentes de otro período El modelo tabular debe contener una tabla separada que contenga solamente información de tiempo La tabla de tiempos debe tener rango continuo de fechas, sin huecos La columna con dato fecha, debe tener día como menor nivel de granularidad
60
Inteligencia de tiempos
Crear: Tabla Calendario desde código DAX Medida a comparar Cálculos sencillos para comparar por meses Válido para variables Válido también para niveles Día, Trimestre y Año
61
BI de Tiempo con DAX – Abril 2017
Medidas rápidas - en versión preliminar
62
BI de Tiempo con DAX – Abril 2017
Versión preliminar para Medidas rápidas
63
BI de Tiempo con DAX – Abril 2017
YTD YoY% Total Acumulado
64
¿Y si…? Hipótesis y BI de tiempos
Crear parámetro de hipótesis
65
¿Y si…? Hipótesis y BI de tiempos
Resultado del parámetro
66
¿Y si…? Hipótesis y BI de tiempos
Efecto del uso del segmentador de hipótesis Regula la cantidad de meses y la dirección del cálculo Agregado de suma
67
¿Y si…? Hipótesis y BI de tiempos
Efecto del uso del segmentador de hipótesis Regula la cantidad de meses y la dirección del cálculo Media móvil
68
DAX - Conclusiones DAX – Data Analysis Expressions, modelos tabulares
Es sencillo comenzar a crear expresiones Es muy potente y a la vez, es muy delicado Las medidas y CALCULATE, son nuestros mejores aliados #HappyDAXing
69
Vertipaq Analyzer Descargar herramienta Conectar
Conectar
70
Vertipaq Analyzer Tablas y columnas
71
Consultar DAX - Recurso
72
Recursos http://www.daxpatterns.com/
Online, en español
73
¿Preguntas? ¡¡ Gracias !! #sqlsatMadrid #sqlsat672
Consultora y formadora en MS Business Intelligence Microsoft Partner en PowerBI @ambynet ¡¡ Gracias !! #sqlsatMadrid #sqlsat672
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.