Forum Discussion
moussab_orabi
8 years agoFrequent Visitor
Manipulating data form.
Hello every one, I need help with manipulating this data: odred quantity valid_form valid_to 1 100 01.01.2016 31.05.2017 2 50 01.02...
- 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]
Zubair_Muhammad
8 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_Muhammad
8 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.