如何计算 DAX 中总值的百分比(Power BI Desktop)
How to calculate Percentage out of Total value in DAX (Power BI Desktop)
我在 Power BI Desktop 中有以下切片器,其中 # of Clients 计算为 Count(Distinct(Fact.EHRTransaction.ClientFK)) 在我的数据模型中:
我的目标是计算 占总数的百分比 (13 639) 并将其作为度量或其他列添加到此切片器,例如:
Gender # of Clients Total Clients
Unknown 2 0.00%
Intersex 13 0.00%
Transgender 18 0.00%
Female 662 0.04%
Male 832 0.05%
(Not Recorded) 12 112 72.79%
我尝试添加以下列:
Percentage = 'FactEHRClinicalTransaction'[ClientFK]/
CALCULATE(SUM('FactEHRClinicalTransaction'[ClientFK]),ALLSELECTED())
但我得到的值不正确 -
拜托,帮助或建议!
更新:
最后,找到了解决办法:
为了实现这些计算,需要为每个操作添加一个Measures。然后,在最终的 % 计算中使用它们(而不是字段)-
# of Clients = DISTINCTCOUNT('Fact EHRClinicalTransaction'[ClientFK])
# of Clients_Total =
CALCULATE(DISTINCTCOUNT('Fact EHRClinicalTransaction'[ClientFK]),
ALLSELECTED('Fact EHRClinicalTransaction'))
% of Clients = DIVIDE('Fact EHRClinicalTransaction'
[# of Clients],'Fact EHRClinicalTransaction'[# of Clients_Total])
您似乎在除法的第一部分缺少聚合,而在第二部分对 FK 求和而不是计数。试试这个:
Percentage =
DIVIDE (
DISTINCTCOUNT ( 'FactEHRClinicalTransaction'[ClientFK] ),
CALCULATE (
DISTINCTCOUNT ( 'FactEHRClinicalTransaction'[ClientFK] ),
ALLSELECTED ()
)
)
使用 DIVIDE() 进行更安全的除法。
我在 Power BI Desktop 中有以下切片器,其中 # of Clients 计算为 Count(Distinct(Fact.EHRTransaction.ClientFK)) 在我的数据模型中:
我的目标是计算 占总数的百分比 (13 639) 并将其作为度量或其他列添加到此切片器,例如:
Gender # of Clients Total Clients
Unknown 2 0.00%
Intersex 13 0.00%
Transgender 18 0.00%
Female 662 0.04%
Male 832 0.05%
(Not Recorded) 12 112 72.79%
我尝试添加以下列:
Percentage = 'FactEHRClinicalTransaction'[ClientFK]/
CALCULATE(SUM('FactEHRClinicalTransaction'[ClientFK]),ALLSELECTED())
但我得到的值不正确 -
拜托,帮助或建议!
更新: 最后,找到了解决办法: 为了实现这些计算,需要为每个操作添加一个Measures。然后,在最终的 % 计算中使用它们(而不是字段)-
# of Clients = DISTINCTCOUNT('Fact EHRClinicalTransaction'[ClientFK])
# of Clients_Total =
CALCULATE(DISTINCTCOUNT('Fact EHRClinicalTransaction'[ClientFK]),
ALLSELECTED('Fact EHRClinicalTransaction'))
% of Clients = DIVIDE('Fact EHRClinicalTransaction'
[# of Clients],'Fact EHRClinicalTransaction'[# of Clients_Total])
您似乎在除法的第一部分缺少聚合,而在第二部分对 FK 求和而不是计数。试试这个:
Percentage =
DIVIDE (
DISTINCTCOUNT ( 'FactEHRClinicalTransaction'[ClientFK] ),
CALCULATE (
DISTINCTCOUNT ( 'FactEHRClinicalTransaction'[ClientFK] ),
ALLSELECTED ()
)
)
使用 DIVIDE() 进行更安全的除法。