DAX:根据工期和顺序计算开始日期

时间:2020-04-27 01:05:52

标签: powerbi

我有一张要转换为甘特图的表格。该表包含任务顺序(有时与并行任务相同)以及任务持续时间(按季度)。

如果我的项目开始日期= 1/1/2020,我如何计算每个后续任务的开始和结束日期?

示例

Task A: Order = 1, Duration = 4 ---> Start = 1/1/2020, End = 1/1/2021
Task B: Order = 2, Duration = 1 ---> Start = 1/1/2021, End = 3/1/2021
Task C: Order = 3, Duration = 2 ---> Start = 3/1/2021, End = 9/1/2021

1 个答案:

答案 0 :(得分:0)

您可以使用适当的过滤器修改器来计算经过的总时长。然后,您可以使用EDATE函数从项目开始日期加上经过的月份来获取开始日期和结束日期。

这是计算列中开始日期的示例公式。

StartDate =

VAR ProjectStartDate = Date ( 2020, 1, 1 )
VAR CurrentOrder = Tasks[Order]

-- Quarters passed since the project start date before the current task
VAR DurationElapsedBefore = CALCULATE (
    SUM ( Tasks[Duration] ),
    REMOVEFILTERS (),
    Tasks[Order] < CurrentOrder
)

-- Multiplying by 3 to turn quarters into months
RETURN EDATE ( ProjectStartDate, DurationElapsedBefore * 3 )

结束日期的公式只是将<中的<=替换为CALCULATE