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
5 Hrs
59 Min
58 Seg

Tablas calculadas

5/28
Resources

How to generate calculated tables in Power BI?

Let's explore the fascinating world of calculated tables in Power BI, an indispensable tool for data analysts. These allow you to create custom dimensions from existing ones in the model, such as a calendar table. Learning how to handle these functionalities expands our analytical capabilities and optimizes the way we filter and represent information.

How to create a calendar table in Power BI?

Creating a calendar table is crucial for working with time-related data. Even though your dataset may include a date table, learning how to build it from scratch is essential for deeper understanding and customization.

  1. Remove the existing calendar table: If your dataset already contains a calendar table, delete it (right click, delete) to avoid duplicates.

  2. View Data and Create New Table: Go to the "Data" view and select "Table Tools" to create a new table. This will be our calendar table. Use the CALENDAR function to define a specific date range:

    DimDates = CALENDAR( DATE(2015, 1, 1), DATE(2017, 12, 31))
  3. Date Format: Sets the date column to the appropriate format, i.e. date only (no time).

How to set calculated columns?

Once we have our date table, it is time to add calculated columns that allow us to perform more detailed analysis.

  1. Add descriptive columns: Start by adding columns such as year, month and week. This is accomplished using the DAX functions YEAR, FORMAT, and WEEKNUM:

    Year = YEAR(DimDate[Date])
    Month = FORMAT(DimDate[Date], "mmmm")
    Week = WEEKNUM(DimDate[Date])
  2. Create a key field (DayKey): This is essential to connect our date table with other fact tables. It uses concatenated year, month and day values:

    DayKey = VALUE(FORMAT(DimDates[Date], "YYYYYYMMDDD")).

How do we order the visualizations correctly?

To ensure that our visualizations show the months in a sequential order, we must sort the columns using a numerical reference.

  1. Sort by month number: Select the 'Month' column and use "Column Tools" to sort by 'MonthNumber'. This will ensure that the months are shown in the correct order in both charts and reports.

When to use calculated tables?

Calculated tables are indispensable for creating additional dimensions that enhance the analysis of your data, such as calendar tables that enable the use of Time Intelligence in Power BI. This approach is vital to:

  • Avoiding temporal gaps: Ensures that all periods are represented, which is critical for comparative analysis.

  • Empowering data analysis: By adding descriptive columns, you can perform more detailed and specific slices that help gain valuable insights.

Finally, as a challenge to further this knowledge, try adding a column that identifies the day of the week, showing results from "Monday" to "Sunday". This practice will further enrich your analytical capabilities in Power BI. Keep exploring and developing your skills to reach new heights in data analysis.

Contributions 70

Questions 5

Sort by:

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

En caso que aparezcan los dias o los meses en Ingles, podemos añadirle un argumento a la instruccion `FORMAT()` , donde `"es-ES"` sera para que el resultado sea en español. ```js dia_semana = FORMAT(tabla_calendario[date], "DDDD", "es-ES") ```

Nos recupera el numero del dia de la semana y el valor 1 significa que queremos que empiece de domingo a sabado nuestra numeracion.

Para dar formato a nombre del día

Otra forma de crear las columnas de año y mes es llamando la columna "date" y seleccionando alguna de las opciones que salen posterior al punto (como el .\[Año] .\[Mes])

Clase 5.
Tablas Calculadas.
En Power BI:
• Vamos a la sección vista de datos.
• Seleccionamos la tabla con la información que requiramos.
• Buscamos en la barra superior “Herramientas de Tablas.”
• Damos click en la opción “Nueva Tabla”.

Función CALENDARAUTO ()
Es una agregación de DAX, que permite generar una columna de fecha a partir de la fecha mínima y máxima que encuentre dentro de nuestro modelo de datos.
Ejemplo:
DIM_FECHAS = CALENDARAUTO (“01/01/2015”, “31/12/2017”)

ORDENAR DATOS DE COLUMNAS.
• Seleccionamos la columna dentro de la tabla.
• Vamos a “ORDENAR COLUMNA”
• Seleccionamos el orden que queremos darle.

¿Cuánto utilizar una tabla calculada?
• Usualmente para crear una tabla calendario.
• Como artificio para generar una tabla adicional de datos.

Tabla de tiempo.
• Requisito para generar TIME INTELLIGENCE.
• Evita vacíos de información a nivel de tiempo.
• Ventajas de mayor análisis.

Sería interesante tener un curso de Power Query con lenguaje M

Para hacerlo mas dinamico al tener la fecha con formato numero cree en la Fact_Ventas la columna fecha con la formula

format(date(int(Fact_Ventas[datekey]/10000),mod(int(Fact_Ventas[datekey]/100),100),mod(Fact_Ventas[datekey],100)))

y la column calendar de la nueva tabla la hice dinamica en base a la fecha minima y maxima con la formula

CALENDAR(min(Fact_Ventas[fecha]),max(Fact_Ventas[fecha]))

![](https://static.platzi.com/media/user_upload/image-25babf76-73e4-4f56-b398-fc18353be913.jpg) Calculando si es fin de semana o entre semana
La solución al reto sería: Dia = FORMAT(Dim\_Fechas\[Date], "dddd")
porqué fecha key y no solamente relacionar columna date?
Si quieren el numero del dia es asi: Numero Dia = DAY(Dim\_Fechas\[Date]) Si quieren el nombre del dia es asi: Dia = FORMAT(Dim\_Fechas\[Date], "dddd") Es al misma estructura que con el mes. Saludos..
Agregue la columna con numero de dia y nombre de dia de la semana ![](https://static.platzi.com/media/user_upload/image-63b5f8a7-6895-4037-a268-003f6ac7aedd.jpg)
![](https://static.platzi.com/media/user_upload/image-d195a0ef-1275-4aa6-a225-1fa9400f2a69.jpg)

Recuerden que deben agregar el 2 al final de la variable para que traiga los días de la semana, empezando el lunes como día 1. Por ejemplo:
Lunes = 1,
Martes = 2,
Miércoles = 3.

Day number = WEEKDAY(Dim_Fechas[Date],2)
```txt Tabla Calendario Completa = ADDCOLUMNS( CALENDARAUTO(), "Año", YEAR([Date]), "Mes_Num", MONTH([Date]), "Mes", VAR x = FORMAT([Date],"Mmmm") VAR y =UPPER( LEFT(x,1)) VAR z = MID(x,2,LEN(x)) RETURN y & z, "Trimestre", "Q"& QUARTER([Date]), "Semestre",IF(MONTH([Date])<=6,"Sem 1","Sem 2"), "Semana", WEEKNUM([Date],2), "Dia mes",DAY([Date]), "Dia Semana",WEEKDAY([Date],2), "Nombre Día",FORMAT([Date],"Dddd")) ```Tabla Calendario Completa = ADDCOLUMNS( CALENDARAUTO(), "Año", YEAR(\[Date]), "Mes\_Num", MONTH(\[Date]), "Mes", VAR x = FORMAT(\[Date],"Mmmm") VAR y =UPPER( LEFT(x,1)) VAR z = MID(x,2,LEN(x)) RETURN y & z, "Trimestre", "Q"& QUARTER(\[Date]), "Semestre",IF(MONTH(\[Date])<=6,"Sem 1","Sem 2"), "Semana", WEEKNUM(\[Date],2), "Dia mes",DAY(\[Date]), "Dia Semana",WEEKDAY(\[Date],2), "Nombre Día",FORMAT(\[Date],"Dddd")) // Les dejo una tabla calendario en dax
![](https://static.platzi.com/media/user_upload/upload-f30c5497-be55-41f3-9e33-a9c336499bb8.png)
Buenas tardes. Aui escribo el reto que dejo el profe. Aqui hice mas analisis con respecto al dia a mostrar miren: ![](https://static.platzi.com/media/user_upload/RETO%20PROFESOR-96b4563a-3b00-418e-a3cc-9f188c50063b.jpg)
Para calcular el día de la semana, se usa Dia Semana = FORMAT(Dim\_Fechas\[Date], "DDDD")
Una tabla calculada se utiliza principalmente para crear una dimensión calendario o tabla de fechas, fundamental en soluciones de Business Intelligence. También es útil para generar tablas adicionales que contengan datos acotados. En Power BI, es esencial para implementar Time Intelligence y mejorar el análisis de datos al proporcionar cortes informativos. Al crear columnas calculadas desde tablas calculadas, puedes realizar filtros y segmentaciones más efectivas en tus reportes.
La tabla de tiempo es fundamental en Power BI para implementar Time Intelligence. Se utiliza para facilitar el análisis de datos a lo largo del tiempo, generando métricas como comparaciones año con año o análisis de tendencias. Crear una tabla de tiempo permite evitar vacíos de información y optimiza el análisis mediante agregaciones de tiempo inteligente. Para ello, se puede utilizar DAX para crear una tabla calculada que incluya todas las fechas relevantes, así como columnas adicionales (año, mes, etc.) que faciliten su uso en informes y dashboards.
Las tablas calculadas en Power BI son estructuras de datos que se generan mediante fórmulas DAX (Data Analysis Expressions). Se utilizan para crear nuevas tablas basadas en datos existentes, permitiendo así analizar y visualizar información de manera más eficiente. Por ejemplo, al crear una tabla calendario, puedes usar una fórmula DAX que abarca un rango de fechas, lo cual es fundamental para realizar análisis de tiempo, como el Time Intelligence. Esto ayuda a mejorar la organización y relación entre tus datos en el modelo de Power BI.
Una forma que se mostro en el curso de Power BI para organizar los datos de forma adecuada correspondiente a los datos de mes y año, es mediante la utilización de las jerarquías en la tabla DIM\_FECHAS, permite ahorrar ciertos pasos en la presentación de los datos. ![](https://static.platzi.com/media/user_upload/image-f0931df9-904a-4299-8b1b-60624202b381.jpg)
Si se llega a actualizar la base de datos con datos de 2018 ya no se podría hacer una actualización automática. Encontré una forma de crear la tabla calendario sin tener que meterle mano a la función después: ![](https://static.platzi.com/media/user_upload/image-9161acac-cead-46a7-a8bc-a3a1dd331abc.jpg) Verificando, la fecha más antigua es 01/01/2015 y la más reciente es 19/07/2019.
Esta es una forma sencilla de crear la tabla Calendario con distintas columnas: Calendario = VAR FechaInicio = MIN('Cuentas\_Valores'\[Fecha Corte]) VAR FechaFin = MAX('Cuentas\_Valores'\[Fecha Corte]) RETURN CALCULATETABLE( ADDCOLUMNS( CALENDAR(FechaInicio, FechaFin), "Año", YEAR(\[Date]), "Mes", FORMAT(\[Date], "MMMM"), "Mes Num", MONTH(\[Date]), "Trimestre", "T"\&QUARTER(\[Date]) ) ) ```txt Calendario = VAR FechaInicio = MIN('Cuentas_Valores'[Fecha Corte]) VAR FechaFin = MAX('Cuentas_Valores'[Fecha Corte]) RETURN CALCULATETABLE( ADDCOLUMNS( CALENDAR(FechaInicio, FechaFin), "Año", YEAR([Date]), "Mes", FORMAT([Date], "MMMM"), "Mes Num", MONTH([Date]), "Trimestre", "T"&QUARTER([Date]) ) ) ```
dia de la semana = FORMAT(Dim\_Fechas\[Date], "dddd") Hasta que me salió :D
Para resolver el reto creamos una columna en la tabla Dim\_Fechas llamada Día: Dia = WEEKDAY(Dim\_Fechas\[Date]) Luego crearemos otra columna donde sera el DiaNombre de la semana : 1 Forma : DiaNombre2 = FORMAT(Dim\_Fechas\[Date],"dddd") 2 Forma: DiaNombre = SWITCH(    Dim\_Fechas\[Dia],    1, "Domingo",    2, "Lunes",    3, "Martes",    4, "Miércoles",    5, "Jueves",    6, "Viernes",    7, "Sábado") y este es el resultado; ![](https://static.platzi.com/media/user_upload/image-57892e82-b6c9-4a21-8382-81938b095d89.jpg)
Por qué es importante tener una tabla calculada de calendario si ya tengo tablas de fechas? Esas tablas también me muestra años, cuartos, meses, días. No entiendo muy bien por qué crear otra tabla
![](https://static.platzi.com/media/user_upload/image-8d903a1e-6ddb-4423-b9c4-7282dd99de8b.jpg)Asi resolvi el reto!
Esta es mi fórmula utilizada al crear una nueva columna: `Dia de la semana = Format(WEEKDAY(Dim_Fechas[Date]),"dddd")`
dia_semana = FORMAT(tabla_calendario[date], "DDDD", "es-ES")
![](https://static.platzi.com/media/user_upload/image-c43af177-68ad-45cd-89c4-da8cd82f8230.jpg)
```txt Calendar = ADDCOLUMNS ( CALENDAR (DATE (2015, 1, 1), DATE (2017, 12, 31)), "Year", YEAR([Date]), "Month", MONTH([Date]), "Day", DAY([Date]) ) ```También se puede generar toda la tabla en un sólo bloque de código.
Hola buenas tardes en la tabla de Dim\_Calendario no entiendo muy bien que significa en esta tabla datekey. me pueden ayudar con esto ? gracias
![]()Adjunto imagen de mi toc por abrir el calendario y comprobar que los días coincidan 😂 ![](https://static.platzi.com/media/user_upload/image-1345c834-b33e-4b35-8e35-cb6a6e6e1113.jpg)
Agregué el numero de dia, adcional el formato para que me entregara el nombre del dia. ![](https://static.platzi.com/media/user_upload/image-95f39cd6-5cc6-4d60-b568-41a44bfb8429.jpg)
Ese tema de la fecha es un horror en futuros paneles q hagas, siempre tenlo presente.
En Power Query tambien se puede generar una tabla calendario, veía en el video que indicabas que es más eficiente la power query. Podrías darnos un poco más de detalle o ayuda?
Implemente el siguiente código DAX y me funciono correctamente: Día = FORMAT(Dim\_Fechas\[Date], "dddd")
Dia Semana = format(Dim\_Fechas\[Date],"dddd")
Buen dia comunidad, tengo un pregunta. Hice bien la relación entre dim\_calendar y fact\_ventas de uno a muchos por medio de la columna date\_key pero al graficar en una tabla tengo un campo en blanco. Como podría solucionarlo? Gracias![](https://static.platzi.com/media/user_upload/image-3782d288-8c5b-4112-91df-5c782ba68887.jpg)
Cuál es la diferencia entre colocar o no "value" para los ejemplos mostrados en mes y datakey respectivamente? en mi caso arrojó el mismo resultado.![](https://static.platzi.com/media/user_upload/image-1839911e-cabd-4d10-9ad2-b1f606337300.jpg)![](https://static.platzi.com/media/user_upload/image-bb520031-f799-4b06-b575-dd5d33e39aec.jpg)

Dia = Dim_fechas[Date].[Día]

Res. Reto : Dia = DAY(Dim\_Fechas\[Date])
reto realizado: ![](https://static.platzi.com/media/user_upload/image-6ff75c56-c959-4f09-8664-62f5f99184ae.jpg)


Por qué miércoles y jueves se ve casi junto?

Para traer el Número de la semana he utilizado la siguiente formula o expresión Numero\_Semana = WEEKNUM(Dim\_Fechas\[Date]) ![](https://static.platzi.com/media/user_upload/image-0f3810b0-6e68-4126-affa-551c51f0a1be.jpg)
Al momento de crear la grafica apilada en el eje y todo me sale el mismo monto mas sin embargo no me sale de la misma manera que en el video
![](https://static.platzi.com/media/user_upload/Captura%20de%20pantalla%202023-12-01%20163756-2125f2cf-0e77-41e8-b040-53962c45e52a.jpg)
![](https://static.platzi.com/media/user_upload/image-2fe64215-25b1-431b-b1ed-82e264fa3cc3.jpg)

Numero de dias de la semana = WEEKDAY(Dim_Fechas[Date],1)

![](https://static.platzi.com/media/user_upload/image-e0992c4a-eee3-4dc7-bf6e-0c1198ace5a5.jpg)
![](https://static.platzi.com/media/user_upload/image-2e03bd01-97e6-4a48-833e-4f4a003e2e06.jpg)
Yo reolsví el reto así: `Dia = FORMAT(dim_fechas[Date], "dddd")` `Dia Semana = WEEKDAY(dim_fechas[Date])`
![](https://static.platzi.com/media/user_upload/image-af433940-4067-4513-900e-b30a0abb2a26.jpg)
Es bastante interesante como atraves del BI podemos generar información rápida que agrega gran valor

que gran clase!

Se me ocurrió que otra forma para crear la columna de mes era con la formula: **Mes= MONTH( Dim\_Fechas\[Date]**, y luego a esto cambiarle el tipo de dato a fecha y el formato. Sin embargo, el formato "mmmm" no está disponible para tipo de dato fecha. Ahora entiendo el porqué Renzo trabajó con la formula de formato y tipo de dato texto. ![](https://static.platzi.com/media/user_upload/image-7cf770f5-7710-4866-b6fb-5e00b90a73d0.jpg)

Para el reto Dia de la semana = FORMAT(Dim_Fechas[Date],“dddd”)

Dia de la Semana = FORMAT(Dim_Fechas[Date], “dddd”)

Numero de Dia = WEEKDAY(Dim_Fechas[Date])

Numero dia = WEEKDAY(dim\_fechas\[Date],2) DIA = FORMAT(dim\_fechas\[Date],"dddd")
![](https://static.platzi.com/media/user_upload/image-92fbfeaa-bf1a-4090-831b-ab660ec6b853.jpg)
Reto logrado: `Dia de la semana = FORMAT(Dim_fecha[Date], "dddd")` ![](https://static.platzi.com/media/user_upload/image-9e3340bc-80ca-4f38-8c5c-41ef09155d10.jpg)
Tengo un problema con la DAX de fechas, cuando intento extraer el mes en formato me da un error, en vez de salirme 1 como enero, me aparece como diciembre. ¿Como puedo solucionar eso? ![](https://static.platzi.com/media/user_upload/image-17e50776-5e10-4a0a-a271-f50ed13667aa.jpg)
Si no creas el campo daykey y conectas directamente date a datekey, podrías perder la capacidad de relacionar las tablas de manera eficiente. El daykey asegura que la relación sea única y permite un análisis adecuado, especialmente en operaciones de Time Intelligence.
Por que en mi tabla de fechas no me sale configurado la columnda DATE con el icono de calendario: ![](https://static.platzi.com/media/user_upload/image-3ec996c0-062a-4228-98a5-c779f024ec16.jpg) Deberia de salir como en la calse:![](https://static.platzi.com/media/user_upload/image-f083e774-3aeb-4fd2-93b9-1d2cf482f72f.jpg)
El reto me salió con: Dia = FORMAT(Dim\_Fechas\[Date],"dddd") Después de un par de intentos :)