Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
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:
| Artículo | PrecioFecha | Precio |
| Arte | 01.06.2024 | 1,6 |
| Arte | 01.07.2024 | 1,61 |
| Arte | 01.08.2024 | 1,62 |
| ArtB | 01.06.2024 | 0,5 |
| ArtB | 01.07.2024 | 0,55 |
| ArtB | 01.08.2024 | 0,56 |
| Artículo C | 01.06.2024 | 6,5 |
| Artículo C | 01.07.2024 | 6,5 |
Y esta es la forma en que quiero que se vea:
| Artículo | 01.06.2024 | Dif | 01.07.2024 | Dif | 01.08.2024 | Dif |
| Arte | 1,6 | 0 | 1,61 | 0,6% | 1,62 | 0,6% |
| ArtB | 0,5 | 0 | 0,55 | 9,1% | 0,56 | 1,8% |
| Artículo C | 6,5 | 0 | 6,5 | 0,0% |
¿Por qué es incorrecta la medida?
¡Gracias de antemano por su apoyo!
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!
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!