根据相同 table 的另一列获取特定列的计数 - Power BI
Get a count of a particular column, based on another column of the same table - Power BI
我有两张桌子。
Table A 和 Table B.
从Table A到Table B的关系是一对多。
一个 Table A 记录给我几个 Table B 记录。
Table A 包含我的主数据,Table B 包含其他数据。
下面是两个表的样子:
Table答:
_________________________________
| ... | Confirmation Number | ... |
|_____|___________________________|
| ... | 7413080 | ... |
| | | |
Table乙:
______________________________________________________________
| 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
条记录数
在我的主屏幕上,用户可以过滤数据(Table A 记录)- 这为我提供了 Table B 的相关记录数。
在 Table B 上,对于 #1,我正在计算 Name
列上的不同记录:
这给了我想要的结果(左下角):
为了实现#2 和#3,我创建了相同的 Card
,计数为 Status
。
78
是我在 Table B 中拥有的 'statuses' 的数量(计数)- 我认为这很好,我只需要过滤这些结果以显示有多少条记录有 Not Clocked Off
...
所以我在 Status
列上创建了一个 New Quick Measure
,用于过滤 Not Clocked Off
。
这给了我 29
条记录 - Table B 中的 29 行状态为 Not Clocked Off
。但这对我的用户来说毫无意义,我希望拥有 人 的总人数 Not Clocked Off
。这意味着为 Not Clocked Off
.
的过滤器获取 Name
的非重复计数
我怎样才能做到这一点?
对 Status
进行不同计数得到 2(这又是无用的,因为当然有 2 种状态类型 - Fine
和 Not Clocked Off
)。
这是我的关系 link:
使用关系。转到数据集并定义关系。确保您分组的 table 过滤其他 table.
然后放下你在 Table 中摸到的东西
然后在 table 中删除您需要计算的内容 2. 您可以创建一个具有不同计数行的度量
您需要自己编写度量(而不是快速度量),这样您就可以获得您想要的结果。
试试这个:
CountNotClockedOff =
CALCULATE (
DISTINCTCOUNT ( TableB[Name] ),
FILTER ( TableB, TableB[Status] = "Not Clocked Off" )
)
对于CountFine
只需将上面的"Not Clocked Off"
改为"Fine"
即可。
我有两张桌子。
Table A 和 Table B.
从Table A到Table B的关系是一对多。
一个 Table A 记录给我几个 Table B 记录。
Table A 包含我的主数据,Table B 包含其他数据。
下面是两个表的样子:
Table答:
_________________________________
| ... | Confirmation Number | ... |
|_____|___________________________|
| ... | 7413080 | ... |
| | | |
Table乙:
______________________________________________________________
| 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
条记录数
在我的主屏幕上,用户可以过滤数据(Table A 记录)- 这为我提供了 Table B 的相关记录数。
在 Table B 上,对于 #1,我正在计算 Name
列上的不同记录:
这给了我想要的结果(左下角):
为了实现#2 和#3,我创建了相同的 Card
,计数为 Status
。
78
是我在 Table B 中拥有的 'statuses' 的数量(计数)- 我认为这很好,我只需要过滤这些结果以显示有多少条记录有 Not Clocked Off
...
所以我在 Status
列上创建了一个 New Quick Measure
,用于过滤 Not Clocked Off
。
这给了我 29
条记录 - Table B 中的 29 行状态为 Not Clocked Off
。但这对我的用户来说毫无意义,我希望拥有 人 的总人数 Not Clocked Off
。这意味着为 Not Clocked Off
.
Name
的非重复计数
我怎样才能做到这一点?
对 Status
进行不同计数得到 2(这又是无用的,因为当然有 2 种状态类型 - Fine
和 Not Clocked Off
)。
这是我的关系 link:
使用关系。转到数据集并定义关系。确保您分组的 table 过滤其他 table.
然后放下你在 Table 中摸到的东西 然后在 table 中删除您需要计算的内容 2. 您可以创建一个具有不同计数行的度量
您需要自己编写度量(而不是快速度量),这样您就可以获得您想要的结果。
试试这个:
CountNotClockedOff =
CALCULATE (
DISTINCTCOUNT ( TableB[Name] ),
FILTER ( TableB, TableB[Status] = "Not Clocked Off" )
)
对于CountFine
只需将上面的"Not Clocked Off"
改为"Fine"
即可。