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
Hi! I created a monthly percent difference chart using Power BI's quick measure, month-over-month change. My problem is the value for the next month (-100%) always appear in the chart. I only want up until the current month (in this case/example, February).
When I change the filter (visual level) of the x-axis such that all months are selected except for March, I get my desired chart.
My question now is, is there a way to dynamically choose the months (in x-axis) here? I'm not talking about filtering the data used under the chart but just the values/ categories in the axis. Note that the axis I'm using is a date hierarchy - with year and level.
If there's no way to dynamically filter the x-axis, can you suggest another way of making this kind of chart to achieve my desired result?
Thanks!
girinpanda
Solved! Go to Solution.
@Anonymous
I Answer in PM. The answer to avoid this is:
Cost MoM% =
IF(MAX('Table1'[Date_new])<>BLANK();
IF(
ISFILTERED('Table1'[Date_new]);
ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy or primary date column.");
VAR __PREV_MONTH =
CALCULATE(
SUM('Table1'[Cost]);
DATEADD('Table1'[Date_new].[Date]; -1; MONTH)
)
RETURN
DIVIDE(SUM('Table1'[Cost]) - __PREV_MONTH; __PREV_MONTH)
))
@Anonymous
Hi add in the quick measure in the begin:
IF (HASONEVALUE(Table1[Date]);
Regards
Victor
Lima Peru
Hi @Vvelarde,
How do I add that here? Do I remove ISFILTERED?
ExtendedCost MoM% =
IF( ISFILTERED('Table'[Date]),
ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy or primary date column."),
VAR __PREV_MONTH =
CALCULATE(
SUM(''Table'[Cost]),
DATEADD(''Table'[Date].[Date], -1, MONTH)
)
RETURN
DIVIDE(SUM(''Table'[Cost]) - __PREV_MONTH, __PREV_MONTH)
)
@Anonymous
Before of ISfiltered
IF(HASONEVALUE(.........);
IF (ISFILTERED(.....
Still says ; is invalid to me. What's the difference of using a ' ; ' and a ' , ' ?
Can you also explain what does adding IF(HASONEVALUE()) does to the formula?
Thanks so much! : )
@Anonymous
The ; and , is just regional settings.
If you Formula works with , all should be with ,
HASONEVALUE evaluate in your scenario if you had a date in that context. In April you don't have dates so the result is blank and don't show in the visual.
Regards
Okay, I understand that part now. Thanks Victor! But the thing is the month on month change quick measure always gives the final row (the -100%). What should I do so that the last row will not end up showing in my chart? (Thanks for answering my endless questions 🙂 )
@Anonymous
I Answer in PM. The answer to avoid this is:
Cost MoM% =
IF(MAX('Table1'[Date_new])<>BLANK();
IF(
ISFILTERED('Table1'[Date_new]);
ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy or primary date column.");
VAR __PREV_MONTH =
CALCULATE(
SUM('Table1'[Cost]);
DATEADD('Table1'[Date_new].[Date]; -1; MONTH)
)
RETURN
DIVIDE(SUM('Table1'[Cost]) - __PREV_MONTH; __PREV_MONTH)
))
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
Check out the November 2025 Power BI update to learn about new features.
| User | Count |
|---|---|
| 59 | |
| 43 | |
| 42 | |
| 23 | |
| 17 |
| User | Count |
|---|---|
| 190 | |
| 122 | |
| 96 | |
| 66 | |
| 47 |