Power BI中按Bucket统计已完成任务数的实现方法咨询
解决Power BI中按Bucket计算已完成任务数及完成率的方法
第一步:建立表间关系
首先得把Buckets和Tasks表关联起来,否则无法按Bucket分组计算:
- 切换到Power BI的「模型」视图
- 把Buckets表的
id字段拖到Tasks表的bucketId字段上,自动建立一对多关系(一个Bucket对应多个Task)
方法一:用度量值计算(推荐,支持动态筛选)
度量值适合报表里的动态计算(比如用切片器筛选时自动更新结果),操作步骤如下:
1. 计算已完成任务数
- 切换到「数据」或「报表」视图,选中任意表(推荐选Buckets表方便管理)
- 点击顶部「建模」选项卡 → 「新建度量值」
- 输入以下公式,命名为
已完成任务数:
已完成任务数 = CALCULATE(COUNTROWS(Tasks), Tasks[complete] = 100)
2. 计算完成率(% Completion)
同样新建度量值,命名为完成率:
完成率 = DIVIDE([已完成任务数], COUNTROWS(Tasks), 0)
用
DIVIDE是为了避免出现除以0的错误,第三个参数0表示当某个Bucket没有任务时,完成率显示0。
方法二:用自定义列计算(静态结果,不随筛选变化)
如果需要在Buckets表中直接看到每个项目的已完成任务数,可以添加自定义列:
- 切换到「数据」视图,选中Buckets表
- 点击顶部「列工具」→「新建列」
- 输入以下公式:
已完成任务数 = CALCULATE(COUNTROWS(Tasks), Tasks[complete] = 100, Tasks[bucketId] = Buckets[id])
这个列的结果是固定的,不会随报表中的筛选器变化,适合静态查看数据。
在甘特图中使用
把对应的字段拖到甘特图视觉对象的对应位置:
- Buckets表的
name→ 甘特图的「项目」字段(作为你的项目名称) - Tasks表的任务名称、起止时间(如果导出了这些字段)→ 对应甘特图的任务字段
- 把
完成率度量值拖到甘特图的「完成百分比」类字段(不同甘特图视觉对象的字段名可能略有差异,找对应完成率的选项即可)
内容的提问来源于stack exchange,提问作者brunobliss
相关产品推荐
相关产品推荐

