我正在尝试使用 Power BI 自动化公司的一些报告,但我在计算项目 S 曲线时遇到问题。我们使用 MS Project 来计划我们的活动,我可以将数据导出到访问文件,其中包含开始日期、结束日期、任务值、计划开始日期、计划结束日期...
我还创建了一个日历表并制作了以下列:
问题在于,每个任务的价值只有在完成后才会计入,因此已经开始但未完成的任务没有贡献,使得图表有步骤:
我想通过计算未完成任务增加的值,将任务值乘以开始日期和日历日期之间的差值,然后除以开始日期和结束日期之间的差值,使这条曲线更平滑。任务。
我尝试了很多不同的功能,但到目前为止没有任何效果。我正在处理日历表,当前列表达式如下所示:
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)。表格如下:
有人可以帮助我吗?
不太明白这个问题/询问 - 但是看看这个清理后的 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)
)
)