根据同一表的另一列获取特定列的计数-Power BI

时间:2020-03-16 11:11:37

标签: powerbi powerbi-desktop powerbi-datasource

我有两个桌子。
表A和表B。

表A与表B的关系是一对多的。
一张表A记录给了我几张表B记录。

表A包含我的主数据,表B包含其他数据。

这是两个表的样子:

表A:

 _________________________________
| ... | Confirmation Number | ... |
|_____|___________________________|
| ... |       7413080       | ... |
|     |                     |     |

表B:

 ______________________________________________________________
| Confirmation Number | Occurrences | Name  |      Status      |
|_____________________|_____________|_______|__________________|
|       7413080       |      1      | DAVE  |  Not Clocked Off |
|_____________________|_____________|_______|__________________|
|       7413080       |      2      | STEVE |       Fine       |
|_____________________|_____________|_______|__________________|
|         ...         |     ...     |  ...  |        ...       |

我希望在Power BI报表中显示的数据是:
1)总人数(在Name上唯一计数)-我实现的目标没有问题
2)基于总数,Fine条记录的数量
3)根据总人数,Not Clocked On条记录的数量

在我的主屏幕上,用户可以过滤数据(表A记录)-这为我提供了表B的相关记录数。

在表B上,对于#1,我在Name列上进行了不同记录的计数: enter image description here

哪个给了我想要的结果(左下): enter image description here

要实现#2和#3,我创建了相同的Card,计数为Statusenter image description here

78是表B中“状态”的数量(计数)-很好,我想,我只需要过滤这些结果以显示Not Clocked Off中有多少记录...

因此,我在New Quick Measure列上创建了Status,以过滤Not Clocked Off

enter image description here

哪个给了我29条记录-表B中的29行状态为Not Clocked Off。但这对我的用户而言毫无意义,我希望拥有总数为Not Clocked Off。这意味着为Name的过滤器获取Not Clocked Off的唯一计数。

我该如何实现?

Status进行不同的计数会给我2(这也是无用的,因为当然有2种状态类型-FineNot Clocked Off)。

这是我的关系链接: enter image description here

2 个答案:

答案 0 :(得分:4)

您需要自己编写度量(而不是快速度量),以便准确获得所需的内容。

尝试一下:

CountNotClockedOff =
CALCULATE (
    DISTINCTCOUNT ( TableB[Name] ),
    FILTER ( TableB, TableB[Status] = "Not Clocked Off" )
)

对于CountFine,只需将上面的"Not Clocked Off"更改为"Fine"

答案 1 :(得分:-3)

使用关系。转到数据集并定义关系船。确保对表进行分组的条件过滤了另一个表。

然后将表中列出的内容删除 然后在表2中删除您需要计数的内容。您可以使用不同的计数行创建度量