Casos de uso y modelo de datos con DAX

1

驴Cu谩ndo utilizar DAX en Power BI?

2

Modelo de datos del proyecto de ventas de veh铆culos

3

驴C贸mo afecta la direcci贸n de filtro en Power BI?

Quiz: Casos de uso y modelo de datos con DAX

Creaci贸n de tablas y columnas con DAX

4

Columna calculada

5

Tablas calculadas

Quiz: Creaci贸n de tablas y columnas con DAX

Medidas

6

驴Cu谩ndo crear una medida con DAX?

7

驴Cu谩les son las principales funciones de agregaci贸n de DAX?

8

Manipulaci贸n de texto con DAX

9

Funciones l贸gicas y condicionales: IF, AND, OR

10

Funciones l贸gicas y condicionales anidadas: IF, SWITCH

11

Funciones l贸gicas y condicionales: HASONEVALUE

12

Funciones l贸gicas y condicionales: SELECTEDVALUE

13

Filtrado de datos con FILTER y SEARCH

Quiz: Medidas

CALCULATE

14

Uso de CALCULATE en Power BI

15

CALCULATE con ALL y ALLEXCEPT

Quiz: CALCULATE

Manejo de Iteradores y contextos

16

Iteradores X: c谩lculos por fila

17

Clasificaci贸n y ordenamiento de datos con RANKX y TOP

18

Evaluaci贸n de contextos con CALCULATE

Quiz: Manejo de Iteradores y contextos

Funciones de inteligencia de tiempo

19

An谩lisis de fechas y tiempo con DAX

20

An谩lisis de crecimiento acumulado en el tiempo con DAX

Quiz: Funciones de inteligencia de tiempo

Optimizaci贸n de modelos y escritura de c贸digo DAX

21

Uso de variables para optimizar f贸rmulas en DAX

22

Mejorar legibilidad de c贸digo con DAX Formatter

23

Evaluaci贸n de modelo de datos con DAX Studio

24

Mantenimiento de modelos de datos con Tabular Editor

25

驴C贸mo escribir c贸digo DAX con ChatGPT?

26

AI Visuals para interpretar el modelo de datos

Integraci贸n de medidas en reporte de Power BI

27

Reporte con medidas de seguimiento comercial en Power BI

28

Integraci贸n de visualizaciones de productos de mayor venta y ganancia

You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesi贸n a prueba de IA

Antes: $249

Currency
$209
Suscr铆bete

Termina en:

0 D铆as
14 Hrs
26 Min
23 Seg

Uso de variables para optimizar f贸rmulas en DAX

21/28
Resources

How to create business management indicators in Power BI?

Power BI is a powerful tool that allows the creation of business management indicators in an efficient way. One of its best-kept secrets is the use of variables, which facilitate the simplification of complex formulas. Through Year over Year measures, the generation of indicators becomes not only more understandable but also more manageable. In the following, we will explore how to create these indicators using measures and variables.

What is a Year over Year measure?

The Year over Year (YOY) measure calculates the growth or decline of a specific variable or metric compared to the same period of the previous year. This indicator is essential for analyzing long-term trends in sales data.

Here's how to create the YOY in Power BI:

  1. Creating a new measure:

    • Right click on the measure space, select "new measure".
  2. Using variables:

    • Define a variable to store the formula:
      VAR SalesLastYear = CALCULATE(TotalSales, DATEADD(DATE, -1, YEAR))
  3. Year over Year calculation:

    • Perform the division using the DIVIDE function to avoid division by zero errors:
      RETURN DIVIDE(TotalSales - SalesLastYear, SalesLastYear, 0).

How do we differentiate a weekend in Power BI?

Differentiating the days of the week is essential for certain analyses, such as calculating the average sales over the weekend.

  1. Creating a new column:

    • Within the DimDates dimension, right click and select "new column".
    • Use a formula to get the name of the day:
      DayName = FORMAT(DimDates[Date], "dddd").
  2. Weekend identification:

    • Create a measure using filters to identify Saturdays and Sundays:
      VAR WeekEnd = FILTER(DimDates, DimDates[DayName] = "Saturday" || DimDates[DayName] = "Sunday").
  3. Calculation of average sales:

    • Use the AVERAGEX function to calculate the average sales over the weekend:
      RETURN AVERAGEX(Weekend, Sales)
      .

How to calculate the Quarter over Quarter?

The next logical step after implementing YOY is to calculate the quarterly change, known as Quarter over Quarter (QOQ). It works similarly to YOY but applies the comparison to the previous quarter.

  1. New measures and variables:

    • Follows a similar process to YOY, using variables to store data from the previous quarter with the DATEADD function.
  2. Community Invitation:

    • Once calculated, sharing this metric with the Power BI user community encourages collaborative learning.

So now you know, variables not only simplify measurements in Power BI but also make your data analysis more robust. We encourage you to keep exploring and sharing your findings to grow with the community.

Contributions 35

Questions 1

Sort by:

Want to see more contributions, questions and answers from the community?

Para entender un poco mejor c贸mo funciona la creaci贸n de variables Puedes crear variables en Power BI utilizando la funci贸n `VAR` en combinaci贸n con la funci贸n `RETURN`. La funci贸n `VAR` te permite definir una variable local en una medida o c谩lculo, lo que hace que tus f贸rmulas sean m谩s legibles y f谩ciles de mantener. Aqu铆 tienes el proceso para crear una variable utilizando la funci贸n `VAR` en Power BI: 1. Abre tu informe en Power BI Desktop. 2. Ve a la pesta帽a "Modelado" (Modeling) en la parte inferior izquierda de la ventana. En esta pesta帽a, selecciona la tabla en la que deseas crear la medida que contendr谩 la variable. 3. Haz clic en el bot贸n "Nueva medida" (New Measure) para crear una nueva medida. Se abrir谩 una barra lateral donde puedes definir la medida. 4. Para crear una variable, utiliza la funci贸n `VAR`. Aqu铆 tienes un ejemplo de c贸mo se ve la estructura b谩sica de una medida con una variable: DAX MiMedida = VAR MiVariable = \[Expresi贸n] RETURN MiVariable * `MiMedida`: Es el nombre de la medida que est谩s creando. * `MiVariable`: Es el nombre de la variable que definir谩s. * `[Expresi贸n]`: Aqu铆 debes reemplazar `[Expresi贸n]` por la f贸rmula o expresi贸n que deseas calcular y almacenar en la variable. 5. Define la expresi贸n en el lugar de `[Expresi贸n]`. Puedes utilizar funciones DAX, operadores matem谩ticos y l贸gicos, y referencias a columnas y tablas en la expresi贸n. 6. Despu茅s de definir la variable usando `VAR`, utiliza la funci贸n `RETURN` para especificar lo que deseas mostrar como resultado de la medida. Puedes hacer referencia a la variable creada en `RETURN`. 7. Haz clic en "Aceptar" (OK) para crear la medida. La variable estar谩 disponible para su uso en tus visualizaciones y c谩lculos en el modelo de datos. 8. Puedes utilizar la medida en visualizaciones de informes y arrastrarla a tus gr谩ficos o tablas para mostrar los resultados. Las variables definidas con `VAR` son especialmente 煤tiles cuando tienes c谩lculos complicados o cuando deseas reutilizar una parte de la f贸rmula en varias medidas o c谩lculos, ya que te permiten mantener un c贸digo m谩s limpio y legible.
Otra funcion util para el ejemplo pudo ser la de "WEEKDAY"

QoQ =
VAR VentasLQ =
CALCULATE ( [Total de Ventas], DATEADD ( Dim_Fechas[Date], -1, QUARTER ) )
RETURN
DIVIDE ( [Total de Ventas] - VentasLQ, VentasLQ, 0 )

Sin duda esta es una manera de Anidar Formulas. Pero de una manera de Bloques. inclusive nos puede servir para "generar tablas" pero solo para calcularalas. Sin necesariamente crearlas. Y al final con RETURN devolvemos solo el calculo final que necesitamos.
Muy bueno el curso pero esto que voy a decir, no es la primera vez que lo ver谩n en la caja de comentarios a lo largo de todo el curso. 隆隆隆POR FAVOR, TOMENSE EL TRABAJO DE EXPLICAR QU脡 SE HAR脕 CON LA FORMULA, QU脡 SIGNIFICA Y/O HACE CADA PARTE DE LA FORMULA!!! En esta clase, no es hasta el minuto 02:15 que se sabe que lo que hicimos fue mostrar el crecimiento de ventas de un a帽o con respecto al a帽o anterior... Hay clases en las que me toca tener una conversaci贸n con ChatGPT para entender el por qu茅 de una formula o para qu茅. Y s铆, muchos compa帽eros dir谩n "Es un video, rep铆telo hasta que entiendas"... Porque ya he visto como le responden eso a comentarios similares, pero bro, esto es una clase, es decir, es pedagog铆a 驴D贸nde est谩 la eficiencia en entender una clase, tras verla 5 veces? Y hay personas aqu铆 que no tienen tantos conocimientos en estad铆stica o "programaci贸n" y menos en Power BI, por lo que ser铆a bueno considerar qu茅 tipo de p煤blico ve los videos, si es un p煤blico que tiene bases solidas del tema a tratar en el curso y/o clase, o si es un p煤blico que est谩 iniciando en este "mundo".
Reto resuelto: Porcentaje de crecimiento (decrecimiento) con respecto al trimestre anterior. ```js QoQ = VAR last_qtr_sales = CALCULATE([Total sales], DATEADD(Dim_Fechas[Date], -1, QUARTER)) RETURN DIVIDE([Total sales] - last_qtr_sales, last_qtr_sales, 0) ``` ![](https://static.platzi.com/media/user_upload/image-b071a3f3-91d7-4c49-b62c-8afd4dc04fc6.jpg)
QoQuarter = VAR Ventas_last_quarter = CALCULATE([Total ventas],DATEADD(Dim_Fechas[Date],-1,QUARTER)) RETURN DIVIDE([Total ventas] - Ventas_last_quarter,Ventas_last_quarter,0)
Buenos dias, comparto el resultado del reto. Me parece una herramienta/artificio super util porque permite trabajar mas ordenado del codigo para crear las medidas ![](https://static.platzi.com/media/user_upload/image-9e6b0996-daad-4480-ad94-e715a679ceed.jpg)
ToT = VAR VentaToT= CALCULATE(\[total de ventas],DATEADD(Dim\_Fechas\[Date],-1,QUARTER)) RETURN DIVIDE(\[total de ventas]-VentaToT,VentaToT,0) ![](https://static.platzi.com/media/user_upload/upload-c053b9d2-7c9b-4e33-91b2-58bb27d9df87.png)
Buenas noches. Aqui les comparto mi reto al ejercicio. ![](https://static.platzi.com/media/user_upload/upload-c08c268b-a4b1-465f-bfe2-2f762ca26881.png)
Hola Buena Noche. Hice la formula seg煤n el ejemplo de la clase: QOQUARTER = VAR VentasLQ = CALCULATE(\[Total de ventas], DATEADD(Dim\_Fechas\[Date],-1,QUARTER)) RETURN DIVIDE(\[Total de ventas] - VentasLQ,VentasLQ,0) Me dio por hacer el promedio de venta por QUARTER y lo escrib铆 textual: Promedio de Venta QUARTER = VAR PvQ = FILTER(Dim\_Fechas,Dim\_Fechas\[Trimestre] = "Trimestre 1" || Dim\_Fechas\[Trimestre] = "Trimestre 2" || Dim\_Fechas\[Trimestre] = "Trimestre 3" || Dim\_Fechas\[Trimestre] = "Trimestre 4") RETURN AVERAGEX(PvQ,\[Promedio de Venta]) Le pregunte a mi Copilot para saber si estaba bien escrito y me escribi贸 que deje de ser "pelotudo" y lo escribiera mas resumido: Promedio de Venta QUARTER = VAR PvQ = Dim\_Fechas RETURN AVERAGEX(PvQ, \[Promedio de Venta]) y me arroja el mismo resultado: ![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202025-03-21%20224937.jpg-66be0dce-e811-483a-a415-0919340726ac.jpg) Pues pienso que vamos por buen camino.
隆Hola! Comparto la soluci贸n que propongo para el reto. 1\. Crear la medida QtrOvrQtr, que calcular谩 el crecimiento/decrecimiento de las ventas respecto al trimestre anterior. QtrOverQtr = VAR VentasLQ = CALCULATE(\[Total de Ventas], DATEADD(Dim\_Fechas\[Date],-1,QUARTER)) RETURN DIVIDE(\[Total de Ventas]-VentasLQ, VentasLQ,0) ![](https://static.platzi.com/media/user_upload/image-184dd18f-f440-4389-a5e2-4b0cfe2a4d15.jpg) 1. Generar una visualizaci贸n (tabla) para mostrar los datos, la cual contiene los campos: a帽o, trimestre, ventas, QtrOverQtr. ![](https://static.platzi.com/media/user_upload/image-8b5d2a6b-fb6b-4692-9af6-a5d443798b8f.jpg)
El uso de variables en DAX es crucial para optimizar f贸rmulas. Al encapsular c谩lculos en variables, no solo simplificas la lectura del c贸digo, sino que tambi茅n mejoras el rendimiento al evitar c谩lculos repetidos. Las variables se definen con `VAR` y se invocan con `RETURN`, lo que permite crear f贸rmulas m谩s limpias y eficientes. Por ejemplo, al calcular indicadores como Year over Year, puedes almacenar resultados intermedios en variables, facilitando el an谩lisis y mejorando la velocidad de los reportes en Power BI.
![](https://static.platzi.com/media/user_upload/image-5445052e-a231-494f-b3bd-5e8ccd72d295.jpg)
Para usar RETURN en DAX, se utiliza generalmente al final de una expresi贸n que define una medida o variable. Aqu铆 tienes dos ejemplos: 1. **C谩lculo de un porcentaje de crecimiento:** ```DAX Crecimiento = VAR VentasAnteriores = CALCULATE(SUM(Ventas[Total]), PREVIOUSYEAR(Ventas[Fecha])) RETURN DIVIDE(SUM(Ventas[Total]) - VentasAnteriores, VentasAnteriores, 0) ``` 2. **Promedio filtrado:** ```DAX PromedioFinDeSemana = VAR VentasFinDeSemana = FILTER(Ventas, Ventas[D铆a] IN {"S谩bado", "Domingo"}) RETURN AVERAGEX(VentasFinDeSemana, Ventas[Total]) ``` Estas estructuras ayudan a encapsular c谩lculos intermedios y simplificar expresiones en DAX.
qoq = VAR ventaslq = CALCULATE(\[Total de ventas], DATEADD(Dim\_fechas\[Date], -1, QUARTER)) RETURN DIVIDE(\[Total de ventas] - ventaslq, ventaslq, 0)// quater over quater //
Vamos subiendo el nivel, los que tienen formaci贸n en programaci贸n se sentir谩n familiarizados en el uso de variables ya que es algo b谩sico en ese 谩mbito 馃捇.
Asi me quedo el ejercicio: `QoQuarter = var VentasLq = CALCULATE([Total ventas], DATEADD(Dim_Fechas[Date], -1, QUARTER)) RETURN DIVIDE([Total ventas] - VentasLq, VentasLq)`
Mi aporte: ![](https://static.platzi.com/media/user_upload/image-b90fd98e-a13a-4623-9992-6221383440dc.jpg) QoQuarter = VAR VentasLQ = CALCULATE(\[Total Ventas],DATEADD(Dim\_Fechas\[Date],-1,QUARTER)) RETURN DIVIDE(\[Total Ventas] - VentasLQ,VentasLQ,0)
![](https://static.platzi.com/media/user_upload/image-72f54e49-9038-41ce-9238-f46fe30e491a.jpg)
![](https://static.platzi.com/media/user_upload/image-7722acc1-137c-497c-8102-9e625ca8c336.jpg)
Comparto mi reto Al no existir la opcion para trimestre para colocar en el dateadd, utilic茅 la opcion month y -3. ![](https://static.platzi.com/media/user_upload/image-ec40b8c3-3fb0-4698-bb8a-a450bbdcdbdd.jpg) ![](https://static.platzi.com/media/user_upload/image-160206b1-5c86-4200-b801-5ef460474b6f.jpg)
Clickeando en la nueva medida, se puede cambiar el formato para que quede en porcentaje. De esa manera, siguiendo el ejemplo, las ventas de 2016 cayeron 1% interanual y las de 2017 86,5% ![](https://static.platzi.com/media/user_upload/image-72c4bb0d-9e58-4c99-96d9-bf1ea01b7c31.jpg)
![](https://static.platzi.com/media/user_upload/image-0e6ba03d-5438-4fd2-a614-fbdc4a9bc2bc.jpg)
![](https://static.platzi.com/media/user_upload/image-88ef8022-9f36-4565-9924-0471d540495d.jpg)
QoQuarter = VAR ventasLQ = CALCULATE(\[Total de Ventas], DATEADD(Dim\_Fecha\[Date], -1, QUARTER)) RETURN DIVIDE(\[Total de Ventas]-ventasLQ, ventasLQ, 0) ![](https://static.platzi.com/media/user_upload/imagen-d2895b8a-f13b-4b14-ba77-530a1a75a003.jpg)
Mi soluci贸n al reto: ![](https://static.platzi.com/media/user_upload/image-e59f3ed2-ab69-47a1-8d65-4ec44a3d14b9.jpg) ![](https://static.platzi.com/media/user_upload/image-61b30cd7-2d17-4ceb-80ed-2bb10db7b9b1.jpg)
No entiendo porque en la f贸rmula AVERAGEX esta calculando como expresi贸n el promedio de ventas, no deber铆a ser el total de ventas? 驴alguien me podr铆a explicar?. Realizo el promedio de ventas de los fds para el mes de agosto del a帽o 2015 (ejemplo que el profe nos da) y no me concuerda con lo que le profesor muestra.
![](https://static.platzi.com/media/user_upload/image-5502f624-f102-4ddb-ab1f-6bb61c4b284d.jpg) INTERESANTE RETO
```python Quarter Over Quarter = VAR VentasLQ = CALCULATE( [Total de Ventas], DATEADD(Dim_Fechas[Date], -1, QUARTER)) RETURN DIVIDE([Total de Ventas] - VentasLQ, VentasLQ, 0) ```Quarter Over Quarter = 聽 聽 VAR VentasLQ = CALCULATE(聽 聽 聽 聽 聽 聽 \[Total de Ventas], DATEADD(Dim\_Fechas\[Date], -1, QUARTER))聽 聽 RETURN DIVIDE(\[Total de Ventas] - VentasLQ, VentasLQ, 0)
![](https://static.platzi.com/media/user_upload/image-d1e17354-d33a-4d64-8095-b6a7e8f838fd.jpg)
QoQ = VAR VentasQ = CALCULATE(\[Total de Ventas], DATEADD(Dim\_Fechas\[Date],-4,QUARTER)) RETURN DIVIDE(\[Total de Ventas]-VentasQ, VentasQ,0)
La formula la hice as铆: ![](https://static.platzi.com/media/user_upload/image-9e3fcc38-5ec5-4cb8-bd0a-4256cd8f7df2.jpg) La tabla qued贸 as铆: ![](https://static.platzi.com/media/user_upload/image-e2b0cc88-07cb-430f-827e-9d6a01e3440a.jpg)
```js YoY (year over Year) = var VentasLY = CALCULATE([Total_Ventas], DATEADD(Dim_Fechas[Date],-1,YEAR) ) Return DIVIDE([Total_Ventas] - VentasLY,VentasLY,0) ```Interesante como se pueden crear variables dentro del calculo con DAX