Documentos de Académico
Documentos de Profesional
Documentos de Cultura
AUTÓNOMA DE MÉXICO
Facultad de Ingeniería
2023-1
1
Manual para el manejo de DAX
Las funciones DAX regresan un resultado con respecto a los parámetros que sean
ingresados, como si se tratase de las funciones ya vistas, sin embargo, las funciones
DAX reciben no reciben rangos de celdas, sino que reciben nombres de tablas y
columnas. Una de las funciones más conocidas como la de suma en función dar se
podría ver así:
SUMA (Ventas[CantidadPedido])
Se puede observar que el nombre de la tabla es Ventas la cual tiene una columna
llamada Cantidad de Pedido, esta función al tener una referencia a una columna
acompañado del nombre de la tabla la convierte en una función DAX. Es importante
saber que para pasar el nombre de una tabla que contenga espacios a una función
DAX es necesario el uso de comillas simples, ejemplo:
Ahora sí, a empezar con el primer ejemplo para la creación de una medida:
2
2. En el cuadro emergente elegir:
• Nombre de la tabla: Se debe de encontrar dentro de la lista en el apartado
de nombre de la tabla, elegir la tabla con la cual se quiere trabajar
• Nombre de la medida: Introduzca el nombre del nuevo campo que quiera
crear
• Formula: Ingresar la formula DAX, en este caso usaremos la siguiente:
=SUM(Sales[SalesAmount])
• Opciones de formato: En este caso le daremos formato de numero, con dos
numeros decimales y un separador de unidades de manera que quede de la
siguiente manera nuestra tabla:
3
3. Crear la medida dando en el botón de aceptar.
• En este punto, deberá crear una tabla dinámica para ver su nueva
medida en acción.
4. Seleccione la pestaña Power Pivot en la cinta de opciones de Excel y elija el
recuadro de Administrar.
• Se abrirá la ventana Power Pivot
5. Elegir en la pestaña de inicio la tabla dinámica
• Aparecerá un recuadro para crear una tabla dinámica
6. Elija la opción Nueva hoja de trabajo y haga clic en Aceptar
7. Buscar la medida que desee en este caso se la de ingresos total como se ve
en la siguiente imagen
4
8. Repita los pasos 1 a 3 cada vez que desee agregar una nueva medida a su
tabla dinámica. Tómese un momento para crear una nueva medida con las
siguientes entradas:
• Nombre de la tabla: Sales
• Nombre de la medida: Total Units
• Fórmula: Ingrese la siguiente fórmula DAX:
=SUM(Ventas[CantidadPedido])
• Opciones de formato: elija formatear los resultados como un número
entero con cero decimales
5
Los nombres de las medidas se encapsulan entre corchetes, pero no tienen el prefijo
de un nombre de tabla. Esto facilita ver las fórmulas y distinguir las medidas de las
columnas, porque las columnas tendrán un prefijo de tabla mientras que la medida
no.
Otro aspecto útil de las medidas: no están vinculadas a una tabla dinámica en
particular. Las medidas calculadas se crean en el modelo de datos de Power Pivot,
lo que significa que cualquier tabla dinámica que use el modelo de datos interno
como fuente puede usarlas.
7
Aplicación condicional lógica en DAX
8
=IF([Total Revenue] > 100000, ' Nivel1 ', ' Nivel2')
Tan útiles como pueden ser las declaraciones IF anidadas, pueden volverse difíciles
de manejar y difíciles de leer cuando requieren muchas capas anidadas. En tales
casos, considere usar la función SWITCH para realizar las mismas comprobaciones
lógicas complejas de una manera mucho más limpia. La siguiente fórmula utiliza la
función SWITCH más limpia para realizar la misma operación que la instrucción IF
anidada anterior:
=SWITCH(
TRUE(),
Products[ListPrice] > 1000,
'A',
Products[ListPrice] > 500,
'B',
Products[ListPrice] > 100,
9
'C',
'D')
Finalmente, DAX ofrece la función IFERROR para verificar si hay un error en una
expresión y luego devolver un resultado específico si se encuentra un error. El
siguiente ejemplo utiliza la función IFERROR para realizar la comprobación clásica
de cero antes de dividir dos compases. Aquí, si la operación produce un error, se
devuelve un 0.
Otro conjunto de funciones agregadas son las que devuelven un recuento de algún
tipo. Estos incluyen lo siguiente:
10
• COUNTROWS: Devuelve el número de filas de una tabla.
• DISTINCTCOUNT: Devuelve el número de valores únicos en una columna
determinada. Si un valor aparece más de una vez, se contará solo una vez.
Vale la pena señalar que DISTINCTCOUNT contará los espacios en blanco
como otro valor único, agregando 1 al conteo de BLANK.
Para eso se crear una medida en la pestaña de Power Pivot con el nombre [Realized
Sales] y usando la formula:
11
=Sum(Sales[OrderQuantity])*Sum(Sales[UnitPrice])
El contexto del filtro es un tema que elude a la mayoría de los analistas que
comienzan con DAX. Es un poco difícil de visualizar sin un ejemplo para trabajar,
así que comencemos con un escenario simple.
12
Imagine que le han dado la tabla de Excel que se muestra y le piden que calcule la
suma del Monto de ventas de las bicicletas rojas vendidas en el noreste. Antes de
que pueda calcular la suma, debe aplicar los filtros necesarios utilizando los menús
desplegables de filtros para seleccionar lo siguiente:
[Mercado]: 'Noreste'
[Color]: 'rojo'
13
En el mundo de DAX, no solo los cálculos se ejecutan en un contexto de filtro, sino
que cada celda de una tabla dinámica tiene su propio contexto de filtro. La imagen
ilustra esto con una tabla dinámica que contiene los resultados de la medida
calculada [Ingresos totales] que creó al comienzo de este capítulo.
Cuando se calculó la medida [Ingresos totales] para la celda E5, Power Pivot filtró
el modelo de datos internos en las dimensiones definidas en el contexto de filtro de
esa celda. Las relaciones entre cada tabla propagaron automáticamente el filtrado
aplicado del lado uno al lado muchos de la relación uno a muchos. Dicho de otra
manera, el contexto del filtro fluyó en la dirección de las flechas. Por ejemplo, filtrar
la tabla Productos en la columna [Categoría] filtrará automáticamente la tabla
Ventas porque la flecha fluye de Productos a Ventas. Después de aplicar todo el
filtrado necesario, la columna [Ingresos totales] ejecutó los cálculos en el modelo de
datos en su estado filtrado y envió el resultado a la celda E5.
14
Obtener transiciones de contexto con la función CALCULATE
Con la función CALCULATE, puede crear medidas DAX que complementen los
datos dinámicos existentes al incluir datos en un contexto de filtro completamente
diferente.
La Función requiere, como mínimo, una expresión de medida que pueda evaluarse
como un resultado. La siguiente fórmula calcula la suma del Importe de ventas, pero
no servirá de mucho para definir un nuevo contexto de filtro hasta que agregue
condiciones.
=CALCULATE(SUM(Sales[SalesAmount]))
15
=CALCULATE([Total Revenue], Products[Category] = 'Bikes')
Se uso la fórmula CALCULAR para crear una nueva medida llamada [Ventas de
bicicletas] y la agregué a una tabla dinámica con la medida [Ingresos totales]. La
nueva medida [Ventas de bicicletas] tiene su propio contexto de filtro de categoría
de producto y no responderá al filtro de categoría de la tabla dinámica. Observe que
las cifras de [Ventas de bicicletas] no cambian en la tabla dinámica incluso cuando
se selecciona una nueva Categoría de producto en la segmentación.
= CALCULATE (
16
Adición de flexibilidad con la función FILTRO
La función FILTRO devuelve una tabla de valores que cumplen una condición
específica. Por ejemplo, la siguiente expresión devuelve una tabla de Productos
donde el [DealerPrice] es menor que el [StandardCost].
=FILTER(Products,DIVIDE(Products[DealerPrice],Products[StandardCost])<1)
La función FILTRO funciona como una función iteradora, recorriendo las filas de la
tabla especificada (Productos, en este caso) y evaluando si cada fila cumple con la
condición especificada. Las filas que cumplen la condición se muestran en el
resultado de la tabla.
La tabla resultante se puede usar junto con otras funciones DAX para crear un
contexto de filtro objetivo basado en sus condiciones definidas. En este caso, puede
usar la expresión FILTER anterior con CALCULATE. La siguiente fórmula hace
precisamente eso.
=CALCULATE(
SUM(
Sales[SalesAmount]),FILTER(Products, DIVIDE(
Products[DealerPrice],Products[StandardCost])<
1))
En la imagen se puede ver que se usó la fórmula CALCULATE y FILTER para crear
una nueva medida llamada LowProfitSales. Luego se agregó a una tabla dinámica.
DAX es un tema enorme que va mucho más allá del alcance de este libro. Con
suerte, los conceptos básicos de este capítulo lo inspirarán a continuar con DAX un
poco más. Sí, DAX es un viaje de tiempo y práctica, pero la buena noticia es que
existen muchos recursos que pueden ayudarlo en su camino. Estos son algunos
recursos que puede aprovechar a medida que continúa profundizando en DAX:
18
• RADACAD (https://radacad.com): RADACAD es un grupo fundado por Reza
Rad. Reza y su equipo ofrecen entrenamiento a aquellos que buscan
desarrollar sus músculos DAX. RADACAD también publica un boletín
informativo gratuito cada mes, manteniendo a los lectores actualizados con
todos los nuevos cambios en el ámbito de Power Pivot.
• SQLB: Cómo aprender DAX (www.sqlbi.com/guides/dax): Alberto Ferrari y
Marco Russo han ayudado a innumerables analistas de Excel a dar el salto
a DAX. Con una generosa cantidad de artículos y ejemplos, su sitio web es
imprescindible para cualquiera que esté aprendiendo DAX.
19