This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
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 |
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 36 | |
| 29 | |
| 29 | |
| 21 | |
| 18 |
| User | Count |
|---|---|
| 69 | |
| 39 | |
| 33 | |
| 24 | |
| 23 |