Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hi,
I am trying to achive the "Expected result" column in below table in one my Power Bi table, Kindly suggest is it possible to achive(Since I am new to Power Bi not sure about the correct function / logic to use here.)
For the first Expected result "12" the "Count / 10" considered is a Measure value from the same report.
Thanks
Solved! Go to Solution.
Hi,
Please check the below picture and the attached pbix file.
It is for creating a measure.
Expected result measure: =
VAR _countmeasure = [Count measure:]
VAR _result =
SUMX (
FILTER ( ALL ( Data ), Data[Roll No] <= MAX ( Data[Roll No] ) ),
Data[Basket A] + Data[Basket B] - Data[Basket C]
)
RETURN
IF ( HASONEVALUE ( Data[Roll No] ), _countmeasure + _result )
If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.
Schedule a short Teams meeting to discuss your question
I downloaded your PBIX and can see that it's working.
However, there are a couple things I'm clearly not understanding.
Would you be able to educate me?
1) The final line of code is as follows: IF ( HASONEVALUE ( Data[Roll No] ), _countmeasure + _result )
- Why check to see if [Roll No] has a value? (Isn't every row going to have a value?)
- Why not skip the IF check, and simply RETURN _countmeasure + _result?
2) Per the requirements, only the first row uses [Count Measure] (value 10). The other rows don't use it at all. Instead, they call the previous value (as you know).
- But to me, it appears that your code is treating all rows the same.
- For all 3 rows in your code, HASONEVALUE will return True.
- Therefore, for all 3 rows, the same calculation is returned: _countmeasure + _result
- So how can the same calculation (which uses _countmeasure = 10) be used on all 3 rows, when _countmeasure should only be used on the first row?
3) Finally, I'm not grasping how the FILTER function is calling the previous value.
Data[Roll No] <= MAX ( Data[Roll No] ) --GET ROWS WHERE [Roll No] <= MAX [Roll No]
- FILTER is an iterator, right?
- So it iterates through each row of the 'Data' table, performing the "<=" expression.
- For Row 1:
- Data[Roll No] = 6
- MAX(Data[RollNo]) = 8
- 6 <= 8 evaluates to True. Therefore, this row is kept in the filter.
- For Row 2:
- Data[Roll No] = 7
- MAX(Data[RollNo]) = 8
- 6 <= 8 evaluates to True. Therefore, this row is kept in the filter.
- For Row 3:
- Data[Roll No] = 8
- MAX(Data[RollNo]) = 8
- 8 <= 8 evaluates to True. Therefore, this row is kept in the filter.
- As a result, all 3 rows are kept in the filter.
- Am I reading the code correctly here?
- Regardless, for each row, how is the value from the previous row being used in the calculation?
I really want to understand this. Your help would be greatly appreciated.
Regards,
Nathan
Hi,
Thank you for your message.
1. On each Roll No., a result is shown. But how do you want to show a result on TOTAL line? I did not know whether you want to show it as total (12+15+31) or something else, so I left it as blank by adding a condition with using hasonevalue dax function.
2. In my opinion, value 10 is used for all Roll No..
Roll No.6 = value 10 + 1 + 4 - 3
Roll No.7 = RollNo6 + 9 + 2 - 8 = value 10 + 1 + 4 - 3 + 9 + 2 - 8
Roll No.8 = RollNo7 + 13 + 9 - 6 = value 10 + 1 + 4 - 3 + 9 + 2 - 8 + 13 + 9 - 6
3. I corrected in red color in below.
- For Row 1:
- Data[Roll No] = 6
- MAX(Data[RollNo]) = 6
- 6 <= 6 evaluates to True. Therefore, this row is kept in the filter.
- For Row 2:
- Data[Roll No] = 7
- MAX(Data[RollNo]) = 7
- 6 and 7 <= 7 evaluates to True. Therefore, this row including previous row are kept in the filter.
- For Row 3:
- Data[Roll No] = 8
- MAX(Data[RollNo]) = 8
- 6, 7, and 8 <= 8 evaluates to True. Therefore, this row including preivous rows are kept in the filter.
I hope it gives some idea.
Thank you.
If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.
Schedule a short Teams meeting to discuss your question
Hi,
Please check the below picture and the attached pbix file.
It is for creating a measure.
Expected result measure: =
VAR _countmeasure = [Count measure:]
VAR _result =
SUMX (
FILTER ( ALL ( Data ), Data[Roll No] <= MAX ( Data[Roll No] ) ),
Data[Basket A] + Data[Basket B] - Data[Basket C]
)
RETURN
IF ( HASONEVALUE ( Data[Roll No] ), _countmeasure + _result )
If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.
Schedule a short Teams meeting to discuss your question
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
14 | |
10 | |
10 | |
9 | |
9 |
User | Count |
---|---|
20 | |
13 | |
13 | |
11 | |
8 |