Forum Discussion
Manipulating data form.
- 8 years ago
Following are the steps
Step#1 Create a New Table
Go to Modelling Tab >>>NEW TABLE
New_Table = GENERATE ( TableName, GENERATESERIES ( YEAR ( TableName[Valid From] ), YEAR ( TableName[Valid To] ), 1 ) )Step# 2 Change the Column Name from "Value" to YEAR
- 8 years ago
Step # 3 Add the YEAR PORTION column to this NEW TABLE
Year_Portion = IF ( YEAR ( 'New_Table'[Valid From] ) = 'New_Table'[YEAR], DIVIDE ( DATEDIFF ( 'New_Table'[Valid From], MIN ( DATE ( YEAR ( 'New_Table'[Valid From] ), 12, 31 ), 'New_Table'[Valid To] ), DAY ), DATEDIFF ( 'New_Table'[Valid From], 'New_Table'[Valid To], DAY ) ), IF ( 'New_Table'[YEAR] > YEAR ( 'New_Table'[Valid From] ) && 'New_Table'[YEAR] < YEAR ( 'New_Table'[Valid To] ), 365 / DATEDIFF ( 'New_Table'[Valid From], 'New_Table'[Valid To], DAY ), DIVIDE ( DATEDIFF ( DATE ( YEAR ( 'New_Table'[Valid to] ) - 1, 12, 31 ), 'New_Table'[Valid To], DAY ), DATEDIFF ( 'New_Table'[Valid From], 'New_Table'[Valid To], DAY ) ) ) ) * 'New_Table'[Quantity]
Thanks :smileyvery-happy:. I had missed it
See the attached file here with the solution or attempted solution
- Zubair_Muhammad8 years agoCommunity Champion
Following are the steps
Step#1 Create a New Table
Go to Modelling Tab >>>NEW TABLE
New_Table = GENERATE ( TableName, GENERATESERIES ( YEAR ( TableName[Valid From] ), YEAR ( TableName[Valid To] ), 1 ) )Step# 2 Change the Column Name from "Value" to YEAR
- Zubair_Muhammad8 years agoCommunity Champion
Step # 3 Add the YEAR PORTION column to this NEW TABLE
Year_Portion = IF ( YEAR ( 'New_Table'[Valid From] ) = 'New_Table'[YEAR], DIVIDE ( DATEDIFF ( 'New_Table'[Valid From], MIN ( DATE ( YEAR ( 'New_Table'[Valid From] ), 12, 31 ), 'New_Table'[Valid To] ), DAY ), DATEDIFF ( 'New_Table'[Valid From], 'New_Table'[Valid To], DAY ) ), IF ( 'New_Table'[YEAR] > YEAR ( 'New_Table'[Valid From] ) && 'New_Table'[YEAR] < YEAR ( 'New_Table'[Valid To] ), 365 / DATEDIFF ( 'New_Table'[Valid From], 'New_Table'[Valid To], DAY ), DIVIDE ( DATEDIFF ( DATE ( YEAR ( 'New_Table'[Valid to] ) - 1, 12, 31 ), 'New_Table'[Valid To], DAY ), DATEDIFF ( 'New_Table'[Valid From], 'New_Table'[Valid To], DAY ) ) ) ) * 'New_Table'[Quantity]- Zubair_Muhammad8 years agoCommunity Champion
Final output looks like this
It would be in accurate by decimals. I think because DateDiff formula misses one Day i..e to say Datediff between 1 Jan and 31 Dec is 364 days.
- moussab_orabi8 years agoFrequent Visitor
Hello Zubair,
thanks for your solution it was really helpful,
GENERATE_SERIES was the missing operation I needed.BR,
Moussab