提问人:Katia Vlv 提问时间:11/15/2023 最后编辑:Katia Vlv 更新时间:11/17/2023 访问量:35
DAX 统计计算
DAX statistics calculation
问:
[我目前正在分析一项关于仇外心理的调查(60.0000 个欧洲国家的约 30 名受访者)。
更准确地说:每个国家有多少女性和男性(占样本的百分比)是仇外心理。
我检查了捷克共和国的一些数据(表中的 CZ - 在 CZ 574 的 2476 名受访者中回答了仇外问题(对移民的 3 次否定,即答案中的 4-4-4(列名 [impcntr]、[imsmetn]、[imdfetn])) -这些是 259 名男性和 315 名女性(即在捷克共和国的所有受访者中,如果 2476 人,则为 10.46% 和 12.72% 的女性)。 这正是我对欧洲每个国家(百分比)所需要的。
此外,在 [gndr] 列中,性别被提及为 -1 男性和 2 女性。
我首先制作了这些公式:
MeasureMale= CALCULATE(COUNTAX('male-female xenophobes','male-female xenophobes'[gndr]), 'male-female xenophobes'[gndr]="1" && 'male-female xenophobes'[impcntr]=4 && 'male-female xenophobes'[imsmetn]=4 && 'male-female xenophobes'[imdfetn]=4)
MeasureFemale = CALCULATE(COUNTAX('male-female xenophobes','male-female xenophobes'[gndr]), 'male-female xenophobes'[gndr]="2" && 'male-female xenophobes'[impcntr]=4 && 'male-female xenophobes'[imsmetn]=4 && 'male-female xenophobes'[imdfetn]=4)
然后,我制定了一些新措施来计算百分比:每个国家有多少男性是仇外心理,有多少女性(每个国家样本的百分比)。
percentage xenM per country = 100*divide([MeasureMale], COUNTROWS(ALLNOBLANKROW('male-female xenophobes')))
percentage xenF per country = 100*divide([MeasureFemale], COUNTROWS(ALLNOBLANKROW('male-female xenophobes')))
但是,生成的图形似乎不正确。可能是什么原因,也许有人可以建议??
此外,我需要从我的数据表(大约 60.000)中计算整个欧盟样本中有多少男性和女性(以 % 为单位)是仇外的。 谁能帮我?
提前非常感谢!!
答:
0赞
Sam Nseir
11/17/2023
#1
我想我已经发现了两个问题:
- 你把你的百分比乘以100(你不应该)
ALLNONBLANKROW
返回整个表,即 60,000
把这些放在一起,它可以解释你的图表。例如:
- 60,000 人中有 259 名 CZ 男性 = 0.0043
- 你是乘以 100 = 0.43
- 并且很可能您的度量值格式为 Percentage = 43%
43% 看起来非常接近您在图表上对 CZ Male 的看法。
请尝试以下操作(这些都是度量):
Respondent Count = COUNT('male-female xenophobes'[idno])
MeasureMale= CALCULATE(
[Respondent Count],
'male-female xenophobes'[gndr] = "1" &&
'male-female xenophobes'[impcntr] = 4 &&
'male-female xenophobes'[imsmetn] = 4 &&
'male-female xenophobes'[imdfetn] = 4
)
MeasureFemale = CALCULATE(
[Respondent Count],
'male-female xenophobes'[gndr] = "2" &&
'male-female xenophobes'[impcntr] = 4 &&
'male-female xenophobes'[imsmetn] = 4 &&
'male-female xenophobes'[imdfetn] = 4
)
percentage xenM = DIVIDE( [MeasureMale], [Respondent Count])
percentage xenF = DIVIDE( [MeasureFemale], [Respondent Count])
percentage xenM of All = DIVIDE(
[MeasureMale],
CALCULATE( [Respondent Count], ALL('male-female xenophobes') )
)
percentage xenF of All = DIVIDE(
[MeasureFemale],
CALCULATE( [Respondent Count], ALL('male-female xenophobes') )
)
评论
0赞
Katia Vlv
11/17/2023
亲爱的山姆,你真棒!!它现在可以工作了!!!非常感谢您的帮助!!我正在尝试附上上面的结果图。希望它井然有序!!
0赞
Katia Vlv
11/17/2023
现在你可以清楚地看到欧盟国家的仇外心理评级和每个国家的性别差异。该数据来自最近的ESS调查(在2020-2022年进行)。我认为这很有趣,我很高兴看到一个明确的结果!为您的 DAX 技能竖起大拇指!!
0赞
Sam Nseir
11/17/2023
很高兴听到它。为了所有人的利益,请将答案标记为已接受。
评论
Total resp = COUNTROWS(ALLNOBLANKROW('male-female xenophobes'))
cntry
MeasureMale
MeasureFemale
Total resp