如何在Power BI中通过关联表格识别缺失的必填任务?
解决Power BI中识别项目缺失必填任务的问题
现有数据说明
1. 必填任务表(命名为MandatoryTasks)
| Plan Type | Task |
|---|---|
| Electricity | Task1 |
| Electricity | Task2 |
| Plumbing | Task1 |
2. 项目计划表(命名为ProjectTasks)
| Project ID | Plan | Task |
|---|---|---|
| 1002 | Electricity | Task1 |
| 1002 | Electricity | Task3 |
| 1002 | Plumbing | Task1 |
目标需求
生成缺失必填任务的表格,示例结果:
Missing Mandatory Tasks
| Project ID | Plan | Task |
|---|---|---|
| 1002 | Electricity | Task2 |
实现步骤
方法:创建DAX计算表
在Power BI中,点击建模选项卡 → 新建表,输入以下DAX公式:
MissingMandatoryTasks = VAR AllProjectPlanCombinations = SELECTCOLUMNS( SUMMARIZE(ProjectTasks, ProjectTasks[Project ID], ProjectTasks[Plan]), "Project ID", ProjectTasks[Project ID], "Plan", ProjectTasks[Plan] ) VAR RequiredTasksPerProjectPlan = GENERATE( AllProjectPlanCombinations, FILTER( MandatoryTasks, MandatoryTasks[Plan Type] = [Plan] ) ) RETURN EXCEPT( SELECTCOLUMNS( RequiredTasksPerProjectPlan, "Project ID", [Project ID], "Plan", [Plan], "Task", MandatoryTasks[Task] ), SELECTCOLUMNS( ProjectTasks, "Project ID", ProjectTasks[Project ID], "Plan", ProjectTasks[Plan], "Task", ProjectTasks[Task] ) )
公式说明
- AllProjectPlanCombinations:提取项目表中所有唯一的「项目ID+计划类型」组合,确保每个项目的每个计划都被覆盖。
- RequiredTasksPerProjectPlan:将每个「项目ID+计划类型」组合与该计划对应的所有必填任务匹配,生成该项目该计划下所有应该存在的任务列表。
- EXCEPT函数:对比应该存在的任务列表和实际项目任务列表,返回实际缺失的必填任务。
注意事项
- 确保两张表中计划类型的字段名称和内容完全匹配(比如
MandatoryTasks的Plan Type和ProjectTasks的Plan内容一致,无大小写或拼写差异)。 - 若存在多个项目,该公式会自动识别所有项目的缺失任务。
内容的提问来源于stack exchange,提问作者ninelondon
相关产品推荐
相关产品推荐

