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

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
11 Hrs
23 Min
9 Seg

Filtrado de datos con FILTER y SEARCH

13/28
Recursos

Aportes 71

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Dias Fines de semana = FILTER(Dim\_Fechas, Dim\_Fechas\[Dia] = "Sábado" || Dim\_Fechas\[Dia] = "Domingo") Tener presente la Tilde del Sábado, cuando lo hice sin tilde no lo tuvo en cuenta.

Resumen de la clase:

  1. Para la tabla de Semestre 1:
Dim fecha S1 = FILTER('Dim fecha','Dim fecha'[Semestre]="Semestre 1")
  1. Tabla donde filtra por la palabra clave “Publicidad” desde la tabla dim canal
Canal Publicidad = FILTER(dim_canal,SEARCH("Publicidad",dim_canal[canal],1,0) )
  1. Para tener la tabla de fin de semana:
Dim fecha weekend = FILTER('Dim fecha','Dim fecha'[Día Letra]="Sábado" ||'Dim fecha'[Día Letra]="Domingo")

Hola, en el reto hice algo muy interesante que quiero compartirte.
Lo que hice es que creé valores en strings(letras) en lugar de enteros, ya que se me haria muy complicado escribir numeros por numero y caer en la equivocación en Febrero(que no tiene 30 dias) entonces, creee una nueva columna con la siguiente condicion.
Dia = FORMAT(Calendario[Date],“dddd”)
esta instruccion me trae todos los dias desde Enero hasta la fecha pero en letras.
(no uses una columna dia numero ya que puede traerte informacion equivoca, si gustas, apoyate del calendario de la fecha y notaras la diferencia que usando day numero, te da un valor errado).
luego, cree una nueva tabla calculada asi:
Weekend = FILTER(Calendario, (Calendario[Dia] = “Friday” || Calendario[Dia] = “Saturday”) && (Calendario[Year] = 2018 || Calendario[Year] = 2019 || Calendario[Year] = 2020 || Calendario[Year] = 2021))

que es donde sustraje solo los años.
si te preguntas que son esos signos(&&,||)
son simbolos logicos, and y or, en lugar de usar las palabras usé simbolo(es una buena practica me dijo un profesor).
espero te haya servido.
sigamos aprendiendo

primero saque una columna para sacar los dias de la semana en numero 1,2,3....7 creando una nueva columna con la formula dia semana = WEEKDAY(DIm\_calendario\[Date]) y luego aplique la formuladel filter con base a esa columna con la siguiente formula fines de semana = FILTER(DIm\_calendario,DIm\_calendario\[dia semana] >=6)
Tabla Fin de semana = FILTER(Dim\_Fechas,Dim\_Fechas\[Número Día\_Semana] = 7 || Dim\_Fechas\[Número Día\_Semana] = 1 ) Asi genere un filtro de los fines de semana.
Pregunta en la Tabla Canal Publicidad = FILTER(dim\_canal,SEARCH("publicidad",dim\_canal\[canal],1,0)) Comunidad al agregar el SEARCH hay alguna forma que pueda buscar la palabra deseada sin importar la ubicación agradezco su ayuda.

Dim_DATE_FinSemana =
FILTER(Dim_fechas,OR
(SEARCH(6 ,Dim_fechas[Dia Sem],1,0),SEARCH(7,Dim_fechas[Dia Sem],1,0)))

Aproveché la columna que habíamos creado y usé un OR para tomar en cuenta el 6 y 7

![](https://static.platzi.com/media/user_upload/image-6f1aa779-b311-441b-b53e-b0d278e013db.jpg)
Respuesta al reto: Fin de Semana = FILTER(Dim\_Fechas, Dim\_Fechas\[Día de la semana] = "Sábado" || Dim\_Fechas\[Día de la semana] = "Domingo")
Fin\_Semana = FILTER(Dim\_Fechas,Dim\_Fechas\[No\_Dia\_Semana]=6 || Dim\_Fechas\[No\_Dia\_Semana]=7)
Yo probe con esta formula: Dim Fecha Weekend = FILTER(Dim\_fechas, Dim\_fechas \[diasemana] > 5)
para el reto lo hice asi : Tabla Fechas FS = FILTER(Dim\_Fechas,Dim\_Fechas\[DiaNombre2] = "sábado" || Dim\_Fechas\[DiaNombre2] = "domingo")
Hola: tabla fin semana = FILTER(Dim\_fechas, Dim\_fechas\[Dia] = "viernes" || Dim\_fechas\[Dia] = "domingo" || Dim\_fechas\[Dia] = "sabado")
dim\_fin\_de\_semana = filter(dim\_fechas, Dim\_fechas\[Nombre semana] = "Domingo" || Dim\_fechas\[Nombre semana] = "Sabado")
Primer paso: En la tabla Dim_Fechas, convertir los dia de la semana en texto de lunes a sábado, luego crear la tabla de Fines de semana con: FILTER(dim_fechas,dim_fechas(Dia de semana texto) = “Sábado” || dim_fechas(dia de semana texto) = “Domingo”) Listo
![](https://static.platzi.com/media/user_upload/image-c39ab4a0-7df8-4057-a38f-ef2883d3da0f.jpg)![](https://static.platzi.com/media/user_upload/image-2133a7bb-3f04-4561-b830-9a656bee680c.jpg)
FINES SEMANA = FILTER(Dim\_Fechas,Dim\_Fechas\[Día Semana]>=6)
De tener muchos datos, el almacenamiento se iría al cielo con tantas tablas con datos redundantes.
```txt dim_FDS = FILTER(Dim_Fechas,Dim_Fechas[NumeroDia] = 1||Dim_Fechas[NumeroDia]=7) ```dim\_FDS = FILTER(Dim\_Fechas,Dim\_Fechas\[NumeroDia] = 1||Dim\_Fechas\[NumeroDia]=7) Nueva tabla con los valores filtrados solo para los dias sabado y domingo. ![](https://static.platzi.com/media/user_upload/image-ce1f2076-07fd-47e0-a40a-c9bd507c2d3d.jpg)
Buenas! Comparto mi reto MUY bueno este curso Saludos ![](https://static.platzi.com/media/user_upload/image-48d61350-117e-4eae-956b-4957d1fae795.jpg)
![](https://static.platzi.com/media/user_upload/image-da85e742-33d6-40c8-9343-a5bf9340a2cb.jpg) Tabla fin de semana:
Gran clase, divide y vencerás.
Aquí mi aporte! La verdad es mas sencillo de lo que pensé al principio me lie con los números de los días. ![](https://static.platzi.com/media/user_upload/image-56cadd73-d830-4180-960d-0129a5cba355.jpg) ![](https://static.platzi.com/media/user_upload/image-8a043442-29cd-497e-b328-f3df9d4c5f4d.jpg)

Buen día
adjunto aporte

,

![](https://static.platzi.com/media/user_upload/image-76168734-077c-47c9-9802-f867e6e3e9bd.jpg)
![](https://static.platzi.com/media/user_upload/image-b0853beb-a38a-41e6-8a03-202c355700a8.jpg) Respuesta
PRimero cree la columna DIA DE SEMANA en la tabla DIM\_FECHAS con la siguiente formula: Dia Semana = FORMAT(Dim\_Fechas\[Date],"dddd") Y Recien despues pude crear la Tabla FIN DE SEMANA de la siguiente manera: Tabla Fin de Semana = FILTER(Dim\_Fechas, Dim\_Fechas\[Dia Semana] = "sábado" || Dim\_Fechas\[Dia Semana] = "domingo") ![](https://static.platzi.com/media/user_upload/image-2b0ad33f-fd3c-465f-ace0-d4f97c3fb91a.jpg)
PRimero cree la columna DIA DE SEMANA en la tabla DIM\_FECHAS con la siguiente formula: Dia Semana = FORMAT(Dim\_Fechas\[Date],"dddd") Y Recien despues pude crear la Tabla FIN DE SEMANA de la siguiente manera: Tabla Fin de Semana = FILTER(Dim\_Fechas\_gen, Dim\_Fechas\_gen\[Dia Semana] = "sábado" || Dim\_Fechas\_gen\[Dia Semana] = "domingo") ![](https://static.platzi.com/media/user_upload/image-3bea263c-de5c-4c96-ad39-8c000dee8122.jpg)
![](https://static.platzi.com/media/user_upload/image-92036080-fe31-4a19-80cb-4a33f64c20a4.jpg)EXCELENTE FILTRO
tabla\_weekend = FILTER(Dim\_Fechas, Dim\_Fechas\[NombreSemana] = "Sábado" || Dim\_Fechas\[NombreSemana] = "Domingo") ![](https://static.platzi.com/media/user_upload/image-7296935e-acd2-4d97-970e-ca749a4962b9.jpg)
![](https://static.platzi.com/media/user_upload/image-05c91264-1733-4b1a-bf4d-11c8e8d49d09.jpg)
![](https://static.platzi.com/media/user_upload/image-4c91c3b3-38f7-4499-9162-cfd1cb0c2412.jpg)
Respuesta: Tabla fines de semana = FILTER(Dim\_Fechas,Dim\_Fechas\[Dia]="sábado" || Dim\_Fechas\[Dia]="domingo")
Yo tengo en ingles, asi que queda de esta manera. `Fines de semana = FILTER(Dim_Fechas, Dim_Fechas[Dia] = "Friday" || Dim_Fechas[Dia] = "Saturday" || Dim_Fechas[Dia] = "Sunday" )`
```js Dim_Fechas_Weekend = FILTER(Dim_Calendario, Dim_Calendario[Dia de la semana] = 6 || Dim_Calendario[Dia de la semana] = 7) ```Dim\_Fechas\_Weekend = FILTER(Dim\_Calendario, Dim\_Calendario\[Dia de la semana] = 6 || Dim\_Calendario\[Dia de la semana] = 7)
Saludos Platzinautas!! <3 Use el siguiente código DAX y me funciono perfectamente: Fines de Semana = FILTER(Dim\_Fechas, Dim\_Fechas\[Día] = "Sábado" || Dim\_Fechas\[Día] = "Domingo")
Se puede hacer la tabla directo sin antes haber creado una nueva columna para los días de la semana con el siguiente código: Fin\_de\_Semana = FILTER(Dim\_fechas, WEEKDAY(Dim\_fechas\[Date],2) = 6 || WEEKDAY(Dim\_fechas\[Date],2) = 7) Si bien cree una nueva columna para los dias de la semana, simplemente fue para confirmar el dato, pero no es necesaria. ![](https://static.platzi.com/media/user_upload/image-75fb1647-5fef-433b-8d41-2b9810dd6f66.jpg)
Aquí dejo mi reto completado: `Fecha Fin de Semana = FILTER(Dim_Fechas,` `OR(SEARCH("Saturday", Dim_Fechas[Dia Semana], 1, 0), SEARCH("Sunday", Dim_Fechas[Dia Semana], 1, 0)))`
![](https://static.platzi.com/media/user_upload/image-12b41ca8-e7e4-42e0-a563-5eed9f69e61a.jpg)
Excelente explicacion del paso a paso considerando el avance en la dificultas!!! hice un Master en Bussines Intelligence y me faltaba este detalle en DAX para poder sacarle provecho ![](https://static.platzi.com/media/user_upload/image-bbbaaf15-256f-4836-9dd8-3fe75950a5e1.jpg)![](https://static.platzi.com/media/user_upload/image-6294d0b5-55d6-49d3-b4ce-26525c2707ae.jpg)
Una aplicación que le miro al reto de esta clase, es el utilizar un subset reducido de nuestro campo de fechas, en los casos donde tengamos fechas diarias de muchos años, al agregar el campo fecha al eje x tendrá demasiados valores y afectará la forma de nuestras visualizaciones, en cambio si graficamos por intervalos, digamos el último día de cada semana o el último de cada mes solucionaremos esta situación. Hay que tomar en cuenta que esta nueva tabla calendario no se podrá utilizar para funciones de time intelligence, al tener gaps entre las fechas. Les muestro una imagen de lo que pasa cuando se tienen demasiadas fechas en el eje, el gráfico mostrará un ícono de información que nos dirá lo siguiente: ![](https://static.platzi.com/media/user_upload/image-ae3c53e0-bde5-4858-93a1-0ae5cd946cd0.jpg)
Hola a todos, Dejo la respuesta del reto. Gracias por la explicación profe Renzo. ![](https://static.platzi.com/media/user_upload/image-d7df9c26-c986-4be2-9d3b-01d107aa75db.jpg)
Dim\_fechas\_FDS = FILTER(Dim\_fechas,Dim\_fechas\[Día] = "sábado" || Dim\_fechas\[Día] = "domingo") ![](https://static.platzi.com/media/user_upload/image-e86e8dea-c2fe-4c84-8e2c-87e3d0d6afe0.jpg)

Hola!! (~ ̄▽ ̄)~

El día de la semana lo obtuve así:

Dia Sem = FORMAT(Dim_Fechas[Date],"dddd")

Y, el reto lo cumplí así:

Tabla Fin de Semana = FILTER(Dim_Fechas,Dim_Fechas[Dia Sem] = "Sábado" || Dim_Fechas[Dia Sem] = "Domingo")
Easy!![](https://static.platzi.com/media/user_upload/image-1ad3e7a9-6407-4dbe-b9dd-d022a2d36c15.jpg)
DIM FECHA FIN DE SEMANA = FILTER(Dim\_Fechas, Dim\_Fechas\[Dia Semana] IN {"Sábado","Domingo"})

Así me quedo a mi, valga la aclaración que yo tengo PBI en ingles:

Tabla Fines de Semana = FILTER(DIM_Fechas,DIM_Fechas[DiaSemana]="Saturday",DIM_Fechas[DiaSemana]="Sunday")
![](https://static.platzi.com/media/user_upload/image-8017bd3f-fd0d-4d21-82f1-b30699dd752f.jpg)
![](https://static.platzi.com/media/user_upload/Screenshot%202023-12-03%20182249-357086da-96ea-42ff-9005-f95311a07086.jpg)
Yo hice esto ![](https://static.platzi.com/media/user_upload/image-84b4d04c-d5fa-4ac1-89f0-60854872a308.jpg) Y aquí creé la tabla ![](https://static.platzi.com/media/user_upload/image-f39e3de3-528b-43fb-8c7e-ca0c06f14551.jpg)

Fechas fin de semana = FILTER(Dim_Fechas,Dim_Fechas[Numdia de la semana] = 6 || Dim_Fechas[Numdia de la semana]=7)

![](https://static.platzi.com/media/user_upload/image-b0c42fb0-e192-4827-8d2e-9b5602e9e744.jpg)![]()![](https://static.platzi.com/media/user_upload/image-367e44d7-fcb6-4007-a184-250736ed7145.jpg)
Es muy importante poder aplicar los filter dentro de los procesos pero quiero dejarles una tabla calendario que desde de inicio puede solucionar todas las condiciones de dimensiones de tiempo : ```js 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"), "Datekey",VALUE(FORMAT([Date],"yyyymmdd") )) ```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"),    "Datekey",VALUE(FORMAT(\[Date],"yyyymmdd")    ))
Mi solución al reto: ![](https://static.platzi.com/media/user_upload/s1-77b82682-2780-4c73-823f-2947c7bfde79.jpg)
Reto: Fin de Semana = FILTER(Dim\_Fecha\_S1, Dim\_Fecha\_S1\[Dia] = "sábado" || Dim\_Fecha\_S1\[Dia] = "domingo")
![](https://static.platzi.com/media/user_upload/EjercL13-ee51c7f5-a215-4a6a-abf4-3730012a971f.jpg)
Solucion al reto: Tabla fin de semana = FILTER(Dim\_Fechas,OR(Dim\_Fechas\[nameday]="Saturday",Dim\_Fechas\[nameday]="Sunday"))

Reto:

Reto:

```js Dim_MarcaTop = FILTER(dim_vehiculo,dim_vehiculo[marca_vehiculo] = "TOYOTA" || dim_vehiculo[marca_vehiculo] = "SUZUKI") ```**Excelente!!!!**
![](https://static.platzi.com/media/user_upload/image-4f8e8211-bd7b-427f-a4e4-27d9636c633c.jpg)![](https://static.platzi.com/media/user_upload/image-b3587235-79f6-47bd-a5a7-6370c6382511.jpg)

Les comparto otra manera que lo hice 😃

Weekends = FILTER(Dim_fechas, Dim_fechas[Dia semana] >= 6)

dim_fechas fin semana = FILTER(Dim_fechas, Dim_fechas[NUMERO DIA SEMANA]= 6 || Dim_fechas[NUMERO DIA SEMANA]= 7)

By_Day_Number = FILTER(Dim_Fechas,Dim_Fechas[Day number] =6 || Dim_Fechas[Day number] = 7)

Hecho!!

Tabla fin de semana = FILTER(Dim\_Calendario,Dim\_Calendario\[Dia numero] = 7 || Dim\_Calendario\[Dia numero]= 1)
Tabla fin de semana = FILTER(Dim\_Fechas,Dim\_Fechas\[Dia] = "sábado" || Dim\_Fechas\[Dia]= "Domingo") El único detalle que note es que las tildes son muy importantes dado que si no las escribes no te arroja ningún resultado. ![](https://static.platzi.com/media/user_upload/image-4e5bd9c3-3567-401e-b92e-807c9d64aa5a.jpg)
Dim\_fecha\_weekend = FILTER(dim\_fechas,dim\_fechas\[DIA] = "sábado" || dim\_fechas\[DIA] = "domingo")
Tarea: Tabla Fin de semana = FILTER(Dim\_Fechas,Dim\_Fechas\[Dia semana] = 7 || Dim\_Fechas\[Dia semana] = 1 )
![](https://static.platzi.com/media/user_upload/image-e1c3b7c8-cf85-4441-ba37-877993fba62f.jpg) Hice un filtrado de los dias fines de semana y despues hice un switch para poner el nombre del dia de acuerdo al numero de dia.