Forum Discussion
Calculated Table for progressive costs
I have three tables, PROJECTS, TIME and ACTUAL. In PROJECTS I have the list of projects (PROJECTID, DESCRIPTION), in TIME I have the list of all the dates (DATE, YEAR, MONTH, YEAR-MONTH), in ACTUAL there are the costs recorded for each project and for each date (PROJECTID , DATE, YEAR, MONTH, YEAR-MONTH, ARTICLE, QUANTITY, AMOUNT). The ACTUAL table is logically linked with a 1:N relationship to the PROJECTS table (PROJECTS.PROJECTID 1:N ACTUAL.PROJECTID). The ACTUAL table is also logically linked to the TIME table (TIME.DATE 1:N ACTUAL.DATE). The PROJECTS and TIME tables are not logically linked. How could the DAX code be to build a calculated table that has as fields: PROJECTID, YEAR-MONTH and COSTITOT (where COSTITOT is for PROJECT/YEAR-MONTH the cumulative cost, i.e. the progressive sum of all the ACTUAL.AMOUNT from the beginning of dates up to YEAR-MONTH ) ?
- Anonymous2 years ago
Hi Flabenu ,
According to your statement, I think [PROJECTID] and [YEAR-MONTH] you need are both in 'ACTUAL' table.
You can just create the calculated table based on 'ACTUAL' table.
I am still confused about the calculation logic about [COSTITOT] which is based on PROJECT/YEAR-MONTH.
Do you want to get a table which will show progressive costs? I think it should be comulative amount/ comulative quantity.
I think you can try code as below to create a calculated table.
Calculated Table = SUMMARIZE ( 'ACTUAL', 'ACTUAL'[PROJECTID], 'ACTUAL'[YEAR-MONTH], "Progressive Costs", VAR _Quantity = CALCULATE ( SUM ( 'ACTUAL'[QUANTITY] ), FILTER ( 'ACTUAL', 'ACTUAL'[PROJECTID] = EARLIER ( [PROJECTID] ) && 'ACTUAL'[YEAR-MONTH] <= EARLIER ( [YEAR-MONTH] ) ) ) VAR _AMOUNT = CALCULATE ( SUM ( 'ACTUAL'[AMOUNT] ), FILTER ( 'ACTUAL', 'ACTUAL'[PROJECTID] = EARLIER ( [PROJECTID] ) && 'ACTUAL'[YEAR-MONTH] <= EARLIER ( [YEAR-MONTH] ) ) ) RETURN DIVIDE ( _AMOUNT, _Quantity ) )Best Regards,
Rico ZhouIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
2 Replies
- gaurav-lakhotia
Helper I
Hi Flabenu ,
Make the relationship between TIME & ACTUAL bi-directional & then try to create the table. If it doesn't work, please share the sample file. - AnonymousNot applicable
Hi Flabenu ,
According to your statement, I think [PROJECTID] and [YEAR-MONTH] you need are both in 'ACTUAL' table.
You can just create the calculated table based on 'ACTUAL' table.
I am still confused about the calculation logic about [COSTITOT] which is based on PROJECT/YEAR-MONTH.
Do you want to get a table which will show progressive costs? I think it should be comulative amount/ comulative quantity.
I think you can try code as below to create a calculated table.
Calculated Table = SUMMARIZE ( 'ACTUAL', 'ACTUAL'[PROJECTID], 'ACTUAL'[YEAR-MONTH], "Progressive Costs", VAR _Quantity = CALCULATE ( SUM ( 'ACTUAL'[QUANTITY] ), FILTER ( 'ACTUAL', 'ACTUAL'[PROJECTID] = EARLIER ( [PROJECTID] ) && 'ACTUAL'[YEAR-MONTH] <= EARLIER ( [YEAR-MONTH] ) ) ) VAR _AMOUNT = CALCULATE ( SUM ( 'ACTUAL'[AMOUNT] ), FILTER ( 'ACTUAL', 'ACTUAL'[PROJECTID] = EARLIER ( [PROJECTID] ) && 'ACTUAL'[YEAR-MONTH] <= EARLIER ( [YEAR-MONTH] ) ) ) RETURN DIVIDE ( _AMOUNT, _Quantity ) )Best Regards,
Rico ZhouIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.