Power BI/Power Query中关联多表并计算主项总进度的方法求助
Power BI主任务加权进度计算解决方案
一、DAX计算表实现关联与进度计算
假设你已有权重计算表ITEM_WEIGHTS,包含ITEM_NUMBER(主任务编号)和SUB_TASK_WEIGHT(子任务权重百分比,如0.2代表20%)。
建立表关系:
- 确保
ITEMS[ITEM_NUMBER]与SUB_ITEMS[ITEM_NUMBER]为一对多关系 - 确保
SUB_ITEMS[ITEM_NUMBER]与ITEM_WEIGHTS[ITEM_NUMBER](若权重按子任务细分,需额外匹配子任务编号)建立关系
- 确保
创建DAX计算表:
主任务进度表 = SUMMARIZE( SUB_ITEMS, ITEMS[ITEM_NUMBER], ITEMS[ITEM_NAME], -- 可选,保留主任务名称 "总进度", SUMX( RELATEDTABLE(SUB_ITEMS), SUB_ITEMS[完成百分比] * RELATED(ITEM_WEIGHTS[SUB_TASK_WEIGHT]) ) )
若权重为主任务下子任务均分(如5个子任务各占20%),可简化为:
主任务进度表 = SUMMARIZE( SUB_ITEMS, ITEMS[ITEM_NUMBER], ITEMS[ITEM_NAME], "总进度", SUMX( SUB_ITEMS, SUB_ITEMS[完成百分比] * (1 / COUNTROWS(RELATEDTABLE(SUB_ITEMS))) ) )
二、Power Query实现关联与进度计算
若需在Power Query中完成全流程处理:
- 导入
ITEMS、SUB_ITEMS、ITEM_WEIGHTS到Power Query编辑器 - 合并表:
- 选中
SUB_ITEMS,点击合并查询,选择ITEMS,匹配ITEM_NUMBER列,合并类型选左外部 - 再次合并结果表与
ITEM_WEIGHTS,匹配对应关联列(主任务编号+子任务编号,若权重为子任务级),合并类型选左外部
- 选中
- 展开合并列,取出主任务信息和权重字段
- 添加自定义列计算子任务贡献:
= [完成百分比] * [SUB_TASK_WEIGHT] - 分组计算总进度:
- 选择
ITEM_NUMBER及主任务相关字段,点击分组依据,操作选求和,目标列选自定义贡献列,命名为总进度
- 选择
- 加载处理后的表到Power BI模型
注意事项
- 确保权重列格式为小数(如20%需转换为0.2),避免计算误差
- DAX方法需保证表关系的交叉筛选方向正确,否则
RELATEDTABLE无法正常获取子任务数据
内容的提问来源于stack exchange,提问作者Alex Boorjs
相关产品推荐
相关产品推荐

