Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Hello
I have a transaction table with the following data:
Transaction date | Amount | Urgency | Customer |
1-1-2017 | 50 | high | a |
30-5-2017 | 100 | medium | a |
30-9-2017 | 30 | low | a |
1-1-2018 | 45 | medium | a |
20-2-2018 | 55 | low | a |
I want to summarise the data per year per urgency. Besides that each customer should be allocated to the transaction with the highest urgency within a year.
So finally I need to have:
2017 | 2018 | |
High | 180 | 0 |
Medium | 0 | 100 |
Low | 0 | 0 |
I would appreciate your help!
Regards,
Jarno
Solved! Go to Solution.
If you follow the Star Schema approach which LivioLanzo showed, then you can also use the below Calculated column HighestUrgencyID in Data table, and create a relationship between Urgency[UrgencyID] & Data[HighestUrgencyID]. This way your measure will be just SUM(Data[Amount]).
HighestUrgencyID = VAR TransactionYear = RELATED ( 'Calendar'[Year] ) VAR CurrentCustomer = 'Data'[Customer] RETURN CALCULATE ( MAX ( 'Data'[UrgencyID] ), FILTER ( 'Data', 'Data'[Customer] = CurrentCustomer && RELATED ( 'Calendar'[Year] ) = TransactionYear ) )
Hi @JarnoVisser
try like this:
Measure = IF ( HASONEVALUE ( Urgencies[Urgency] ), SUMX ( VALUES ( 'Calendar'[Year] ), SUMX ( VALUES ( Customers[Customer] ), IF ( CALCULATE ( MAX ( Data[Urgency ID] ), ALL ( Urgencies ) ) = SELECTEDVALUE ( Urgencies[Urgency ID] ), CALCULATE ( SUM ( Data[Amount] ), ALL ( Urgencies ) ), 0 ) ) ) )
Did I answer your question correctly? Mark my answer as a solution!
Proud to be a Datanaut!
Hi @JarnoVisser,
Add calculated columns:
Rank = IF ( Table2[Urgency] = "High", 1, IF ( Table2[Urgency] = "medium", 2, 3 ) ) Sum amount = IF ( Table2[Rank] = CALCULATE ( MIN ( Table2[Rank] ), ALLEXCEPT ( Table2, Table2[Transaction date].[Year] ) ), CALCULATE ( SUM ( Table2[Amount] ), ALLEXCEPT ( Table2, Table2[Transaction date].[Year] ) ), 0 )
Use a Matrix to display data.
Best regards,
Yuliana Gu
Hi Yuliana,
Thank you for your reply!
It works fine for only one customer. But in my real data I have multiple customers like:
Transaction date | Amount | Urgency | Customer |
1-1-2017 | 50 | high | a |
30-5-2017 | 100 | medium | a |
30-9-2017 | 30 | low | a |
1-1-2018 | 45 | medium | a |
20-2-2018 | 55 | low | a |
1-1-2017 | 50 | low | b |
30-5-2017 | 100 | low | b |
30-9-2017 | 30 | low | b |
1-1-2018 | 45 | medium | b |
20-2-2018 | 55 | high | b |
And with multiple customers it gives no amount for par example customer b in 2017. Do you have a solution for that?
Thanks in advance!
Kind regards,
Jarno
If you follow the Star Schema approach which LivioLanzo showed, then you can also use the below Calculated column HighestUrgencyID in Data table, and create a relationship between Urgency[UrgencyID] & Data[HighestUrgencyID]. This way your measure will be just SUM(Data[Amount]).
HighestUrgencyID = VAR TransactionYear = RELATED ( 'Calendar'[Year] ) VAR CurrentCustomer = 'Data'[Customer] RETURN CALCULATE ( MAX ( 'Data'[UrgencyID] ), FILTER ( 'Data', 'Data'[Customer] = CurrentCustomer && RELATED ( 'Calendar'[Year] ) = TransactionYear ) )
Thank you all! The most easy one even to verify is the solution of Akhil. The syntax of his solution should only be written as follows:
HighestUrgencyID = VAR TransactionYear = RELATED ( 'Calendar'[Year] ) VAR CurrentCustomer = RELATED ('Dim'[Customer] RETURN CALCULATE ( MIN ( 'Data'[UrgencyID] ), FILTER ( 'Data', 'Data'[Customer] = CurrentCustomer && 'Data'[Year] ) = TransactionYear ) )
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
97 | |
69 | |
46 | |
39 | |
33 |
User | Count |
---|---|
158 | |
102 | |
60 | |
43 | |
40 |