人生没有彩排
每一天都是现场直播

在PowerBI中计算项目人员投入时间

准确计算项目人员投入时间是成本控制、资源分配和项目进度管理的基础,本篇文章将介绍如何在PowerBI中实现这一指标的计算。

问题描述

某公司采用人天来衡量项目的投入,一人天等于八小时,该公司记录了所有人员在每个项目里的投入时间段与投入占比,现在需要计算各个项目在每一年的总投入人天,请自行建模完成计算。

注意:其中的投入占比代表员工在对应时间段内的每一天的工作时长占比,一天的标准工时为八小时,不考虑周末与节假日等的影响。

具体问题如下图所示:

本案例的初始数据如下:

项目投入表:

人员 项目 开始日期 结束日期 投入比例
张三 项目A 2023年1月1日 2023年3月31日 50%
李四 项目A 2023年2月15日 2023年4月30日 80%
王五 项目B 2023年3月1日 2023年5月15日 100%
赵六 项目C 2023年4月10日 2023年6月20日 60%
陈七 项目D 2023年5月1日 2023年7月31日 75%
张三 项目B 2023年4月1日 2023年6月30日 30%
李四 项目C 2023年3月15日 2023年5月31日 100%
王五 项目A 2023年2月1日 2023年4月15日 40%
赵六 项目D 2023年6月1日 2023年8月31日 90%
陈七 项目E 2023年7月1日 2023年9月30日 50%
张三 项目C 2023年5月15日 2023年7月15日 70%
李四 项目E 2023年8月1日 2023年10月31日 85%
王五 项目D 2023年9月1日 2023年11月30日 100%
赵六 项目B 2023年10月1日 2023年12月31日 60%
陈七 项目A 2023年11月1日 2024年1月31日 80%
张三 项目E 2023年12月1日 2024年2月28日 40%
李四 项目D 2024年1月15日 2024年3月15日 100%
王五 项目C 2024年2月1日 2024年4月30日 55%
赵六 项目E 2024年3月1日 2024年5月31日 70%
陈七 项目B 2024年4月1日 2024年6月30日 90%

若需其它辅助表等,可自行创建并建模。


解题要点

本案例的难点在于项目投入时间段的处理上,而这有两种处理方法:

1、通过GENERATE函数与CALENDAR函数将其在度量值中转换成单列日期,然后再与日期表的可见日期进行筛选过滤。

2、在导入数据到PowerBI之前,可在PowerQuery或其他工具中事先将项目投入的时间段转换成单列日期,然后再与日期表建立关系来实现筛选。

如果是在实际的工作场景中,推荐使用第二种方法,该方法通过创建数据模型,可以有效简化度量值的书写。

解决方案

方法一:

首先创建一个日期表,并且不需要与事实表连接关系,具体数据模型如下图所示:

然后,创建如下度量值:

投入人天 = 
SUMX(
    FILTER(
        GENERATE('项目投入',CALENDAR('项目投入'[开始日期],'项目投入'[结束日期])),
        [Date] IN VALUES('日期表'[Date])
    ),
    '项目投入'[投入比例]
)

最后创建一个矩阵,将项目字段作为行标签,将年份字段作为列标签,再将上面的度量值放入矩阵的值字段即可,如下图所示:



方法二:

首先在PowerQuery中添加一个自定义步骤,将时间段转换成单列日期,如下图所示:

然后将处理好的事实表加载到PowerBI,并创建一个日期表与其连接关系,如下图所示:

然后,创建如下度量值:

投入人天 = SUM('项目投入'[投入比例])

最后创建一个矩阵,将项目字段作为行标签,将年份字段作为列标签,再将上面的度量值放入矩阵的值字段即可,如下图所示:

总结

以上方法仅供参考,若有更优雅的解决方案,欢迎留言讨论,或者加入我们的技术交流群,一起享受这种思维碰撞的快乐吧!

PBI/DAX技术交流群(QQ):344353627

赞(0) 打赏
版权声明:本文为夕枫的原创文章,著作权归作者所有,未经允许不得转载
文章名称:《在PowerBI中计算项目人员投入时间》
文章链接:https://www.ximaple.com/posts/1150.html
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册

Operation don't support