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 all,
ich have a sales table that shows multiple rows for each order since there are changes. Each change is recorded with a new version number:
Order Nr | Value | Version |
1 | 5 | 1 |
1 | 4 | 2 |
2 | 9 | 1 |
3 | 7 | 1 |
Now I would like to calculate the sum [Value] for each order with latest version.
How would you do that? Using MAXX und Sum?
Hi @joshua1990
please try
Sum of Last Version =
SUMX (
VALUES ( 'Table'[Order Nr] ),
CALCULATE ( MAXX ( TOPN ( 1, 'Table', 'Table'[Version] ), 'Table'[Value] ) )
)
[Total Value] =
// Be careful not to filter the Sales table
// by Value or Version because the measure
// here is sensitive to filters (which is
// OK and that's how it should be). For instance,
// if you filter by Order Nr and Version, then
// the version filtered by will be effective,
// not necessarily the latest one. If you don't
// filter by Version, you'll get what you want -
// the latest version. Same for Value.
var OrdersWithLatestVersions =
generate(
values( Sales[Order Nr] ),
row(
"@LatestVersion",
calculate( max( Sales[Version] ) )
)
)
var Output =
calculate(
sum( Sales[Value] ),
treatas(
OrdersWithLatestVersions,
Sales[Order Nr],
Sales[Version]
)
)
return
Output
Here's a different method:
[Total Value] =
sumx(
generate(
selectcolumns(
values( Sales[Order Nr] ),
"@OrderNumber", Sales[Order Nr]
),
calculatetable(
topn(1,
Sales,
Sales[Version],
DESC
)
)
),
Sales[Value]
)
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 | |
12 | |
11 | |
8 |