Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more
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
)
)
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.