Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
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?
Kind Regards,
Gökberk Uzuntaş
📌 If this post helps, then please consider Accepting it as a solution and giving Kudos — it helps other members find answers faster!
🔗 Stay Connected:
📘 Medium |
📺 YouTube |
💼 LinkedIn |
📷 Instagram |
🐦 X |
👽 Reddit |
🌐 Website |
🎵 TikTok |
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 55 | |
| 52 | |
| 41 | |
| 16 | |
| 16 |
| User | Count |
|---|---|
| 107 | |
| 103 | |
| 40 | |
| 33 | |
| 25 |