Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi all,
I'm trying to calculate a figure based on a previous total, I need to decrement two columns in order to calculate but having a few issues.
My data and required output looks like
I have tried the following but cant get MeasureX to calculate correctly. MeasureX just needs to show the total for the previous year and previous level i.e. 2015 level 2 = 2014 level 1. Both coumns are whole numbers.
The forula I have tried are:
=calculate(sum(table([value]),table[Year]-1,table[level]-1)
=calculate( sum(table[value]), filter(all(table[Year]),table[Year]-1), filter(all(table[Level),table[level]-1) )
Any ideas? I thought this would be straight forward 😞
Thanks
Solved! Go to Solution.
Thank you for the help, I wasn't able to follow your complete solution but used some of the core parts to resolve.
As you suggested I merged the two columns I wanted to filter on into a single column, I did this in the initial query
= Table.AddColumn(#"Renamed Columns", "Year_level", each [Year_]*100+[level])
I then created a function to dynamically work out the value (this included an extra filter in the calculate)
=VAR yearx = max(table[level]) RETURN Calculate( sum(table[value]), filter(all(table[level],table[Year]),table[year_level]= yearx-101), table[another_col]="END" )
I then created another measure to ensure the overall total was calulcated correctly
=if(HASONEVALUE(table[Year]), [Measure], sumx(values(Table[Year]),[Measure]) )
Which seems to work.
Thank you for the help, was invaluable
Hi @itchyeyeballs,
I have an idea with trick based on time-pattern as below:
Level&Year = RawData[Level] * 10000 + RawData[Year]
Lv&Y = DISTINCT(RawData[Level&Year])
Level = DIVIDE( 'Lv&Y'[Level&Year],10000)
year = MOD('Lv&Y'[Level&Year],10000)
(i extract level and year columns for display purpose only)
prev = CALCULATE(SUM(RawData[Value]),FILTER(all('Lv&Y'),'Lv&Y'[Level&Year] = MAX('Lv&Y'[prev - lv&y]) ))
Please check my sample data and sample pbix file for more details. Hope this works for your case.
I'd like to know the formula for prev of year=2014 and level=1
Thank you for the help, I wasn't able to follow your complete solution but used some of the core parts to resolve.
As you suggested I merged the two columns I wanted to filter on into a single column, I did this in the initial query
= Table.AddColumn(#"Renamed Columns", "Year_level", each [Year_]*100+[level])
I then created a function to dynamically work out the value (this included an extra filter in the calculate)
=VAR yearx = max(table[level]) RETURN Calculate( sum(table[value]), filter(all(table[level],table[Year]),table[year_level]= yearx-101), table[another_col]="END" )
I then created another measure to ensure the overall total was calulcated correctly
=if(HASONEVALUE(table[Year]), [Measure], sumx(values(Table[Year]),[Measure]) )
Which seems to work.
Thank you for the help, was invaluable
Hi @itchyeyeballs,
In Vietnamese, invaluable means Vô Giá = Non-valuable =)) just kidding, it's good to know that there is solution for your case.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
108 | |
98 | |
81 | |
65 | |
62 |
User | Count |
---|---|
147 | |
116 | |
104 | |
88 | |
65 |