我有一张表格,其中列出了每个计划的强制性任务
计划类型 | 任务 |
---|---|
电力 | 任务1 |
电力 | 任务2 |
管道 | 任务1 |
然后我有一张包含项目计划的表格。我想确保所有强制性任务都包含在内。因此,在下表中,您可以看到电力缺少任务 2。我们可以有额外的任务,但强制性任务必须存在。
项目编号 | 计划 | 任务 |
---|---|---|
1002 | 电力 | 任务1 |
1002 | 电力 | 任务3 |
1002 | 管道 | 任务1 |
在Power BI中我想创建一个这样的表:
缺少强制性任务:
项目编号 | 计划 | 任务 |
---|---|---|
1002 | 电力 | 任务2 |
我已经用谷歌搜索来寻找这个问题的帮助,但我被困住了。有人可以帮忙吗?
有趣的问题。如果您是 DAX 集合函数(UNION、INTERSECT、EXCEPT、CROSSJOIN)的新手,这确实是一个很好的练习。
由于 DAX 很有趣,因为它仅连接单个列,因此我在“MandatoryTasks”和“PlanTasks”表中创建了一个计算列
PlanTypeTask = [Plan Type] & "\" & [Task]
所以表格现在看起来像这样:MandatoryTasks(Plan Type, Task, PlanTypeTask)
DISTINCT('Projects'[ProjectName])
现在我有了这两个表,我可以交叉连接它们(创建笛卡尔积...两组值的所有可能组合)。
AllProjectTasks = CROSSJOIN(VALUES('Projects'[ProjectName]),'MandatoryTasks')
然后我就做减法。
EXCEPT('AllProjectTasks','ProjectPlan')