Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Problemas con DateAdd

Hola amigos,

Creo que tengo un problema de comprensión con la función DateAdd.

Tengo una tabla con diferentes artículos y precios por mes.

Mi objetivo es mostrar los artículos en una matriz visual, donde las columnas contienen la fecha y los precios. Además, me gustaría mostrar la diferencia por mes en %.

Así que escribí la siguiente medida:

DifChange =
Var Anterior = CALCULAR(SUMA(Tabla[Precio]), FECHAAÑADIR(Tabla[PrecioFecha],-1, MES))
Var Now= SUMA(Tabla[Precio])

devolución (Ahora-Anterior)/Anterior
Pero recibo un error debido a la función DateAdd. No funciona en una matriz, solo cuando restrinjo la matriz a una fecha.
También intenté conectar el PriceDate a una tabla de calendario completa donde se establecen las fechas. Pero en este caso, el valor devuelto siempre es 0.
Así es como se ve la tabla:
ArtículoPrecioFechaPrecio
Arte01.06.20241,6
Arte01.07.20241,61
Arte01.08.20241,62
ArtB01.06.20240,5
ArtB01.07.20240,55
ArtB01.08.20240,56
Artículo C01.06.20246,5
Artículo C01.07.2024

6,5

Y esta es la forma en que quiero que se vea:

Artículo01.06.2024Dif01.07.2024Dif01.08.2024Dif
Arte1,601,610,6%1,620,6%
ArtB0,500,559,1%0,561,8%
Artículo C6,506,50,0%

¿Por qué es incorrecta la medida?

¡Gracias de antemano por su apoyo!

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@Heidilein

El problema surge porque la función DATEADD espera que la columna PriceDate forme parte de una tabla Date correctamente relacionada y también necesita que el objeto visual de matriz muestre los datos con el contexto adecuado para cada mes. Si restringe la matriz a una fecha, la medida funciona porque hay un solo contexto. Sin eso, DATEADD no se comporta como se esperaba.

Solución:

Cree una tabla Date en el modelo con fechas continuas que abarquen todos los valores PriceDate posibles.
Relacione esta tabla Date con la columna Table[PriceDate].

Tabla de fechas:

DateTable = 
ADDCOLUMNS(
CALENDAR(DATE(2020, 1, 1), DATE(2030, 12, 31)),
"Year", YEAR([Date]),
"Month", FORMAT([Date], "MMM YYYY"),
"MonthNumber", MONTH([Date])
)

Medida actualizada:

DifChange = 
VAR PrevPrice =
CALCULATE(
SUM(Table[Price]),
DATEADD('DateTable'[Date], -1, MONTH)
)
VAR CurrentPrice = SUM(Table[Price])
RETURN
IF(
NOT ISBLANK(PrevPrice),
DIVIDE(CurrentPrice - PrevPrice, PrevPrice, 0),
0
)

Utilice Artículo como filas.
Utilice DateTable[Date] como columnas.
Utilice dos medidas en la sección de valores:
SUM(Tabla[Precio]) para los precios.
DifChange para la diferencia porcentual.

💌 Si esto ayudó, ¡una marca de Kudos 👍 o Solution sería genial! 🎉
Bien
Kedar
Conéctate en LinkedIn

@Kedar_Pande Muchas gracias por la explicación, que funcionó tan bien. Ahora entiendo que se necesita un contexto para que DateAdd pueda funcionar. Incluso he agregado una columna de clasificación para mostrar los valores cronológicamente. ¡Que tengas un buen día!

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.