Está en la página 1de 19

UNIVERSIDAD NACIONAL

AUTÓNOMA DE MÉXICO
Facultad de Ingeniería

PROGRAMA DE TECNOLOGIA EN COMPUTO

Curso: Excel Intermedio

2023-1

Manual para el manejo de DAX

1
Manual para el manejo de DAX

Con ayuda de este manual se empezará la exploración al manejo y creación de las


funciones DAX más comunes dentro de Excel.

Fundamentos del lenguaje 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:

SUMA ('Ventas por Internet'[CantidadPedido])

Ahora sí, a empezar con el primer ejemplo para la creación de una medida:

1. Crear una nueva medida dentro de nuestra hoja de cálculo, dirigiéndose a la


pestaña de Power Pivot y seleccionaremos el apartado de medidas y nuevas
medidas. Al Darle clic se mostrará la siguiente pestaña emergente.

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

DAX le permite usar medidas como argumentos en otras medidas. La ilustración


muestra la creación de una nueva medida llamada Ingreso por unidad utilizando las
medidas recién creadas:

=[Ingresos totales]/[Unidades totales]

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.

DAX no es un lenguaje que distingue entre mayúsculas y minúsculas, por lo que


perdona bastante las variaciones entre mayúsculas y minúsculas. DAX también
ignora los espacios para mejorar la legibilidad de sus fórmulas.

Las medidas calculadas en una tabla dinámica se volverán a calcular


automáticamente cuando se actualicen los datos subyacentes, cuando la tabla
dinámica se filtre con una segmentación o un filtro de página, o cuando cambie la
estructura de su tabla dinámica.

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.

Uso de operadores DAX


6
El lenguaje DAX permite la mayoría de los operadores estándar que está
acostumbrado a usar en Excel. De hecho, notará que ya se utilizó un operador de
división. La siguiente tabla muestra los operadores que DAX permite al crear sus
medidas calculadas

7
Aplicación condicional lógica en DAX

DAX permite verificaciones de lógica condicional a través de la función IF. Al igual


que la función IF en Excel, la versión DAX requiere tres argumentos:

• La condición para probar


• El valor para devolver si la condición es verdadera
• El valor para devolver si la condición es falsa

Por ejemplo, la siguiente fórmula DAX devolverá Nivel1 si la medida a la que se


hace referencia, Total Revenue, es superior a 100 000; de lo contrario, se devolverá
Nivel2:

8
=IF([Total Revenue] > 100000, ' Nivel1 ', ' Nivel2')

Se verificar si una expresión está en blanco usando la función ESBLANCO.


ESBLANCO devuelve VERDADERO o FALSO. Como ejemplo, la siguiente
instrucción comprueba la columna Nombre de la tabla Cliente en busca de un valor
en blanco. Si el nombre está en blanco, se devuelve la palabra clasificado; de lo
contrario, se devuelve el nombre del cliente.

=IF(ESBLANCO(Customer[Name]), ‘Clasificado’, Customer[Name])

Puede encontrar la necesidad de usar sentencias IF anidadas para aplicar múltiples


comprobaciones condicionales en una sola medida. DAX permite esto de la misma
manera que lo hace Excel en las fórmulas de hojas de cálculo tradicionales. La
siguiente fórmula ilustra una declaración IF anidada que devuelve una etiqueta de
texto basada en la verificación condicional de la columna [PrecioLista] en la tabla
Productos:

=IF(Products[ListPrice] > 1000, 'A',

IF(Products[ListPrice] > 500, 'B',

IF(Products[ListPrice] > 100, 'C', 'D')))

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.

=IFERROR([Total Cost]/[Units Sold],0)

Trabajar con funciones agregadas de DAX

Las funciones agregadas hacen honor a su nombre al calcular un valor agregado


de todos los registros en una columna dada. DAX ofrece las fabulosas cuatro
funciones agregadas obligatorias: SUM, AVERAGE, MIN y MAX. Sin embargo, hay
algunos puntos a tener en cuenta cuando se trabaja con las funciones

• Solo funcionan en columnas que tienen un tipo de datos numérico o de fecha.


• Ignoran cualquier texto o valores en blanco en la columna de destino.
• Solo agregan filas después de que se hayan aplicado todos los filtros y
segmentaciones a los datos de origen. Esto significa que los resultados
devueltos serán una agregación de solo las filas que cumplieron con el
contexto de filtro completo para la tabla dinámica.

Otro conjunto de funciones agregadas son las que devuelven un recuento de algún
tipo. Estos incluyen lo siguiente:

• COUNT: devuelve el recuento de valores numéricos o de fecha que no están


en blanco en una columna dada.
• COUNTA: devuelve el recuento de todos los valores en una columna dada,
independientemente del tipo de datos.
• COUNTBLANK: Devuelve el recuento de celdas en blanco en una columna
dada.

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.

Exploración de funciones de iterador y contexto de fila

En algunas situaciones, no puede confiar en las funciones de agregación estándar


para obtener respuestas correctas porque las matemáticas necesarias solo
funcionan cuando se aplican a filas individuales. Para entender completamente lo
que esto significa, eche un vistazo a la ilustración

En la ilustración se necesita una medida calculada que devuelva OrderQuantity *


UnitPrice como las ventas realizadas.

Para cada Número de pedido, muestro la [Sum of OrderQuantity] y la [Sum of


UnitPrice]. Necesito una medida calculada para obtener [Realized Sales], que es
simplemente [OrderQuantity]*[UnitPrice].].

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])

Como puede la medida [Ventas realizadas] a la tabla dinámica muestra resultados


prometedores. Los resultados son precisos. Sin embargo, debe tener en cuenta que
esta vista se encuentra en el nivel de número de pedido individual.

Comprender el contexto del filtro

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'

[Segmento comercial]: 'Bicicletas'

[Color]: 'rojo'

En cierto sentido, estas selecciones de filtros cambian el estado de sus datos de


origen y establecen un nuevo contexto para su cálculo final. El resultado del cálculo
que se muestra en la imagen es preciso para el estado específico en el que colocó
los datos al filtrar.

Cuando elimina las complejidades, el contexto del filtro generalmente se puede


describir como el estado de sus datos de origen después de haber aplicado todos
los filtros necesarios.

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.

Cada celda individual en la tabla dinámica representa una ejecución diferente de la


medida [Ingresos totales] usando el contexto de filtro único de esa celda. Por
ejemplo, debido a que la celda E5 tiene un contexto de filtro diferente al de la celda
E9, la medida [Ingresos totales] tuvo que ejecutarse una vez para la celda E5 y una
vez para la celda E9.

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]))

Agregar una condición a la función CALCULATE agrega utilidad a su medida y


establece un nuevo contexto de filtro. En esta fórmula, agregó una condición que
solicita la suma de las ventas de la categoría de productos Bicicletas.

=CALCULATE(SUM(Sales[SalesAmount]), Products[Category] = 'Bikes')

Como siempre, puede utilizar medidas existentes como argumento de la expresión


CALCULATE. Aquí, estoy usando la medida [Ingresos totales] creada al inicio

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.

Puede agregar tantas condiciones a la función CALCULAR como desee. La


siguiente fórmula se suma al contexto de filtro de [Ventas de bicicletas] al agregar
una condición para el año fiscal:

= CALCULATE (

SUM(Sales[SalesAmount]), Products[Category] = 'Bikes','Calendar'[Fiscal Year] =


2020)

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.

Primero, la función FILTRO crea una tabla de Productos donde el [DealerPrice] es


menor que el [StandardCost]. Luego, la función CALCULATE usa la tabla resultante
para obtener la suma de las ventas de todos los productos en los resultados de la
tabla FILTER.

=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.

Con un poco de creación de fórmulas básicas, ha podido ejercer un buen control


sobre las nuevas medidas y cómo responden al contexto de filtro de sus informes.
17
A DÓNDE IR DESDE AQUÍ

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:

• Blog de BI de Chris Webb (https://blog.crossjoin.co.uk/category/dax): el


blog de Chris Webb se centra en ayudar a las personas a dar sentido a sus
datos comerciales con Power Query y Power Pivot. Con varios años de
artículos, el blog de Chris es una rica fuente de conceptos de DAX.
• Excelerator BI (https://exceleratorbi.com.au): el sitio web de Matt Allington
es una vena rica en artículos sobre las últimas tendencias de Power BI.
Compruébelo para ver una amplia gama de tutoriales relacionados con DAX.
• P3 Adaptive (https://p3adaptive.com): Rob Collie ha estado en el mundo
DAX desde su llegada en 2010. Tiene una habilidad especial para explicar
los entresijos de DAX desde la perspectiva de los analistas de Excel. El blog
de Rob ofrece cientos de excelentes artículos y tutoriales.

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

También podría gustarte