You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DAX实现:统计所有项目中最后完成任务的全局计数

问题:统计各任务编号作为项目最后完成任务的次数

示例数据

Project 1 - 1 - Completed
Project 1 - 2 - Completed
Project 1 - 3 - In progress
Project 1 - 4 - Completed
Project 1 - 5 - In progress
Project 2 - 1 - Completed
Project 2 - 2 - In progress
Project 2 - 3 - In progress
Project 2 - 4 - In progress
Project 2 - 5 - Completed
Project 3 - 1 - Completed
Project 3 - 2 - In progress
Project 3 - 3 - In progress
Project 3 - 4 - In progress
Project 3 - 5 - Completed

需求说明

统计每个任务编号,在对应项目中作为最后完成任务(即该项目中编号最大的已完成任务)的次数,预期结果如下:

1 - 0
2 - 0
3 - 0
4 - 1
5 - 2

当前问题

已实现按单个项目计算最后完成任务的DAX公式,但无法实现全局范围的次数统计:

CALCULATE(
    MAX(task),
    Status = "Completed")

解决方案

步骤1:创建任务编号维度表

先建立一个包含所有任务编号的维度表(例如命名为Task Numbers,列Task的值为1到5),用于展示全量任务编号的统计结果。

步骤2:编写统计度量值

使用以下DAX度量值实现全局统计(注意替换YourTable为你的实际数据表名):

Count as Last Completed = 
VAR ProjectLastTasks = 
    ADDCOLUMNS(
        VALUES('YourTable'[Project]),
        "@LastCompletedTask", CALCULATE(MAX('YourTable'[Task]), 'YourTable'[Status] = "Completed")
    )
RETURN
COUNTROWS(FILTER(ProjectLastTasks, [@LastCompletedTask] = SELECTEDVALUE('Task Numbers'[Task])))

逻辑说明

  1. ADDCOLUMNS + VALUES('YourTable'[Project]):遍历所有独立项目,为每个项目计算其最大的已完成任务编号(即最后完成的任务)
  2. FILTER + COUNTROWS:筛选出所有项目中最后完成任务编号等于当前选中任务号的记录,统计行数即为该任务号的次数

结果展示

将Task Numbers表的Task列放到可视化组件的行区域,将上述度量值放到值区域,即可得到预期的统计结果。

内容的提问来源于stack exchange,提问作者Michal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:33:13