Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi Everyone!
I have a table with data with one date and one value by row. There is one value for week.
I have created My Calendar Table but when I use the Time Intelligence Formulas didn't work.
I Can't show mesures like:
#LastWeek= CALCULATE(MAX((Datos[Valor]);DATEADD(Calendario[Fecha];-7;DAY))
#LastMonth = CALCULATE(MAX(Datos[Valor]);PREVIOUSMONTH(Calendario[Fecha]))
Any Help?
Thanks
Solved! Go to Solution.
Thanks for your suggestion @v-sihou-msft.
I was looking for a solution and I found this article that gave me the way.
http://www.sqlbi.com/articles/week-based-time-intelligence-in-dax/
When using date tables to invoke time intelligence in DAX there are three fundamental principles that must always be applied.
Can you confirm all three are being followed?
In addition to what @SqlJason said...
The PREVIOUSMONTH function will not give you anything if you don't have context (a date field in the Visual)
For example if you put in a Card or a table by itself you'll get nothing
I would suggest the following:
1) Add this COLUMN to your Calendar Table
Month Order = INT ( CONCATENATE ( YEAR ( Calendario[Fecha] ); CONCATENATE ( IF ( MONTH ( Calendario[Fecha] ) < 10; "0"; "" ); MONTH ( Calendario[Fecha]; ) ) ) )
2) Then heres's Measure 1
#LastWeek = CALCULATE ( MAX ( Datos[Valor] ); DATESINPERIOD ( Calendario[Fecha]; LASTDATE ( Calendario[Fecha] ); - 7; DAY ) )
3) And Measure 2
#LastWeek = CALCULATE ( MAX ( Datos[Valor] ); FILTER ( ALL ( Calendario ); Calendario[Month Order] = MAX ( Calendario[Month Order] ) - 1 ) )
Hope this helps!
Hello!
@SqlJason- In answer to your question:Yes, my data meets all three rules.
@Sean- Thanks for your proposed but I still have the problem.
I think the problem could be the fact that when I filter the data by one product, I only have one date per week but It didn't have sense.
I continue looking for the solution.
Thanks!
@Anonymous
The DATEADD() function only works for contiguous date selection, which means you need to select contiguous dates into your table visual. In this scenario, you can create a calculated column instead of a measure to workaround this issue.
For PREVIOUSMONTH() function, it should work once you create a relationship between your fact table and the full calendar table.
See my sample below:
Previous Month = CALCULATE(SUM('Fact'[Amount]),PREVIOUSMONTH('Calendar'[Date]))
Last Week Column = CALCULATE(SUM('Fact'[Amount]),DATEADD('Calendar'[Date],-7,DAY))
Regards,
Thanks for your suggestion @v-sihou-msft.
I was looking for a solution and I found this article that gave me the way.
http://www.sqlbi.com/articles/week-based-time-intelligence-in-dax/
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
70 | |
68 | |
43 | |
34 | |
26 |
User | Count |
---|---|
86 | |
50 | |
45 | |
38 | |
38 |