March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hi everyone,
So I am triyng to get the sum of values between two dates column, this is a sample of the data :
ContractID Start End ContractRevPerYear 00000034507 09/10/1972 09/10/1990 10000 00000046073 01/01/1978 01/01/2008 24000 00000047710 01/01/1978 01/01/2004 30000 00000046138 01/01/1979 01/01/1990 21000
My goal is to get the revenue per year between the start date and the end date, for example if I filter on year 1989 I would have the cumulative total from the begining of each contract to the year choosen.
I have tried many ways like using a calendar table and create a cumulative measure but it failed :
Calendar = CALENDAR(MIN('Table'[Start]);MAX('Table'[End]))
TotalRevenueGenerated = CALCULATE ( SUM ( 'Table'[ContractRevYear] ); FILTER ( ALL ( 'Calendar'[Date]); ('Calendar'[Date]) <= MAX ( 'Calendar'[Date] ) ) )
Could anyone please give me any hint how to achieve this?
Kind regards,
Mohammad
Solved! Go to Solution.
@Anonymous
hi, please try this:
RevenueGenerated = VAR revenue = IF ( HASONEVALUE ( 'Calendar'[Year] ), IF ( YEAR ( VALUES ( Table1[End] ) ) <= VALUES ( 'Calendar'[Year] ), YEAR ( VALUES ( Table1[End] ) ) - YEAR ( VALUES ( Table1[Start] ) ); VALUES ( 'Calendar'[Year] ) - YEAR ( VALUES ( Table1[Start] ) ) ) * CALCULATE ( AVERAGE ( Table1[ContractRevPerYear] ) ) ) RETURN IF ( revenue > 0, revenue, BLANK () )
@Anonymous
hi, please try this:
RevenueGenerated = VAR revenue = IF ( HASONEVALUE ( 'Calendar'[Year] ), IF ( YEAR ( VALUES ( Table1[End] ) ) <= VALUES ( 'Calendar'[Year] ), YEAR ( VALUES ( Table1[End] ) ) - YEAR ( VALUES ( Table1[Start] ) ); VALUES ( 'Calendar'[Year] ) - YEAR ( VALUES ( Table1[Start] ) ) ) * CALCULATE ( AVERAGE ( Table1[ContractRevPerYear] ) ) ) RETURN IF ( revenue > 0, revenue, BLANK () )
Hi,
Thank you for your reply. I tried it but i have a blank result.
Is your Calendar table connected to your main table ? How do you manage to create it ?
Kind Regards,
Mohammad PATEL
@Anonymous
The Calendar:
A Calculated Column in Calendar:
Don't related with Data Table:
The Slicer:
Thanks.
Unfortunately, i get an error when i choose a year. Well this is the error :
MdxScript(Model) (14, 18) Calculation error in measure 'Calendar'[RevenueGen]: A table with multiple values has been given while unique value is expected
@Anonymous
disable the total in the visual table.
@Anonymous
What type is your visual...a Table?
Indeed, yes it is a table.
Mohammad
@Anonymous
After review your measure, need litle adjustment:
Premium = VAR revenue = IF ( HASONEVALUE( 'Calendar'[Year] ), IF ( YEAR(VALUES('Active Policies'[Maturity Date])) <= VALUES('Calendar'[Year]), YEAR(VALUES('Active Policies'[Maturity Date])) - YEAR(VALUES('Active Policies'[Policy Date])), VALUES ('Calendar'[Year]) - YEAR(VALUES('Active Policies'[Policy Date])) ) * CALCULATE(AVERAGE('Active Policies'[Basic Premium])) ) RETURN if(revenue>0,revenue;BLANK())
Thanks for your help.
It is still make me the same issue from the screenshot.
Kind regards,
Mohammad
Thank you for your time and your patience it works now !
Mohammad
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
124 | |
82 | |
69 | |
53 | |
44 |
User | Count |
---|---|
202 | |
106 | |
100 | |
64 | |
56 |