Power BI - 使用日历和任务表计算 S 曲线

问题描述 投票:0回答:1

我正在尝试使用 Power BI 自动化公司的一些报告,但我在计算项目 S 曲线时遇到问题。我们使用 MS Project 来计划我们的活动,我可以将数据导出到访问文件,其中包含开始日期、结束日期、任务值、计划开始日期、计划结束日期...

我还创建了一个日历表并制作了以下列:

Sum of the value of all completed tasks by date in my calendar table

问题在于,每个任务的价值只有在完成后才会计入,因此已经开始但未完成的任务没有贡献,使得图表有步骤:

Part of the graph

我想通过计算未完成任务增加的值,将任务值乘以开始日期和日历日期之间的差值,然后除以开始日期和结束日期之间的差值,使这条曲线更平滑。任务。

我尝试了很多不同的功能,但到目前为止没有任何效果。我正在处理日历表,当前列表达式如下所示:

Parciais = CALCULATE( 
    SUMX(

        MSP_EpmTask_OlapView, MSP_EpmTask_OlapView[Valor Planejado] * (DATEDIFF(RELATED('Calendar'[Data]), MSP_EpmTask_OlapView[Término],DAY) +1) / (DATEDIFF(MSP_EpmTask_OlapView[Início], MSP_EpmTask_OlapView[Término],DAY)+1) 

        ), 
    MSP_EpmTask_OlapView[É Resumo]=FALSE(),
    FILTER (

        MSP_EpmTask_OlapView,
        MSP_EpmTask_OlapView[Término] > 'Calendar'[Data]

        ),

    FILTER (

        MSP_EpmTask_OlapView,
        MSP_EpmTask_OlapView[Início Agendado] < 'Calendar'[Data]

        )
    )

我知道相关函数不是我应该在此处使用的函数,但我尝试了许多其他解决方案,并且这个解决方案至少不会返回错误(它向第一个 datediff 返回 0)。表格如下:

Tables used

有人可以帮助我吗?

powerbi dax ms-access-2010 ms-project
1个回答
0
投票

不太明白这个问题/询问 - 但是看看这个清理后的 DAX 是否有助于解决它:

Parciais = 
  SUMX(
    FILTER(
      MSP_EpmTask_OlapView,
      [É Resumo] = FALSE() &&
      [Término] > 'Calendar'[Data] &&
      [Início Agendado] < 'Calendar'[Data]
    ),
    (
      var d1 = DATEDIFF(MIN('Calendar'[Data]), MSP_EpmTask_OlapView[Término], DAY) +1
      var d2 = DATEDIFF([Início], [Término], DAY) + 1
      return DIVIDE( [Valor Planejado] * d1, d2)
    )
  )
© www.soinside.com 2019 - 2024. All rights reserved.