Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers!
Enter the sweepstakes now!See when key Fabric features will launch and what’s already live, all in one place and always up to date. Explore the new Fabric roadmap
Hi,
I need help with the following Problem:
Table A has records about service contracts and their value as well as covered time frame. I have contracts for 1 to 5 years. For better analytics, I need to create a new table which only has records valid for 12 month (1 yr) and the cotract value for that time frame.
My Main Table A looks like:
RecID | Name | StartDate | EndDate | Value | Years | |||||
1 | Test1 | 01.01.2022 | 31.12.2022 | $ 10.000,00 | 1 | |||||
2 | Test2 | 22.06.2023 | 21.06.2024 | $ 50.000,00 | 1 | |||||
3 | Test3 | 01.01.2021 | 31.12.2024 | $ 90.000,00 | 3 | |||||
4 | Test4 | 14.02.2022 | 13.02.2024 | $ 40.000,00 | 2 | |||||
5 | Test5 | 01.05.2021 | 30.04.2025 | $ 50.000,00 | 5 |
The new Table should look like:
RecID | Name | StartDate | EndDate | Value | Years | |||||
1 | Test1 | 01.01.2022 | 31.12.2022 | $ 10.000,00 | 1 | |||||
2 | Test2 | 22.06.2023 | 21.06.2024 | $ 50.000,00 | 1 | |||||
3 | Test3 | 01.01.2021 | 31.12.2022 | $ 30.000,00 | 1 | |||||
4 | Test3 | 01.01.2022 | 31.12.2023 | $ 30.000,00 | 1 | |||||
5 | Test3 | 01.01.2023 | 31.12.2024 | $ 30.000,00 | 1 | |||||
6 | Test4 | 14.02.2022 | 13.02.2023 | $ 20.000,00 | 1 | |||||
7 | Test4 | 14.02.2023 | 13.02.2024 | $ 20.000,00 | 1 | |||||
8 | Test5 | 01.05.2021 | 30.04.2022 | $ 10.000,00 | 1 | |||||
9 | Test5 | 01.05.2022 | 30.04.2023 | $ 10.000,00 | 1 | |||||
10 | Test5 | 01.05.2023 | 30.04.2024 | $ 10.000,00 | 1 | |||||
11 | Test5 | 01.05.2024 | 30.04.2025 | $ 10.000,00 | 1 | |||||
12 | Test5 | 01.05.2025 | 30.04.2026 | $ 10.000,00 | 1 |
Can someone help me?
Solved! Go to Solution.
Hi @ClausS - you can try below suggested solutions and request from @Sahir_Maharaj and @uzuntasgokberk .
giving another alternative with a new calculated table logic as below
Proud to be a Super User! | |
Hi @ClausS - you can try below suggested solutions and request from @Sahir_Maharaj and @uzuntasgokberk .
giving another alternative with a new calculated table logic as below
Proud to be a Super User! | |
I added an IF Statement around the "INT(DATEDIFF(TableA[StartDate], TableA[EndDate], MONTH) / 12)" to make sure the Result is greater 0 and now it works. Data is never be perfect 🙂
Thx again for your great help.
Claus
Thx for your work, I think something is missing. I get the error message "The arguments in GenerateSeries function cannot be blank."
Can we include a statement to make sure records with incorrcet data (Like no start or end date) will be skipped?
BR
Claus
Hello @ClausS,
Can you please try this approach:
NormalizedTable =
ADDCOLUMNS(
GENERATE(
'Table A',
VAR ContractStart = [StartDate]
VAR ContractEnd = [EndDate]
VAR ContractYears = [Years]
VAR ValuePerYear = [Value] / ContractYears
RETURN GENERATESERIES(1, ContractYears, 1)
),
"YearStart",
DATEADD([StartDate], (VALUE - 1) * 12),
"ValuePerYear",
[Value] / [Years]
)
Hello @ClausS ,
Filter years column to 1?
Best Regards,
Gökberk Uzuntaş
LinkedIn: https://www.linkedin.com/in/g%C3%B6kberk-uzunta%C5%9F-b43906198/
User | Count |
---|---|
88 | |
74 | |
69 | |
59 | |
56 |
User | Count |
---|---|
40 | |
38 | |
34 | |
32 | |
28 |