Powerbi 用于计算%差异的DAX查询
我有一些数据如下所示:Powerbi 用于计算%差异的DAX查询,powerbi,dax,Powerbi,Dax,我有一些数据如下所示: Gender Salary PayGrade M 40000 3 F 35000 3 M 50000 5 M 65000 7 我正在创建一个PowerBI视频,它应该为每个薪资等级显示一个水平条,显示按性别划分的美元差异。也就是说,在本例中,男性的薪酬比女性高5000美元 如何构造DAX查询来对此进行建模?应该是 =IF(SUM(MaleSalaries) > SUM(FemaleSala
Gender Salary PayGrade
M 40000 3
F 35000 3
M 50000 5
M 65000 7
我正在创建一个PowerBI视频,它应该为每个薪资等级显示一个水平条,显示按性别划分的美元差异。也就是说,在本例中,男性的薪酬比女性高5000美元
如何构造DAX查询来对此进行建模?应该是
=IF(SUM(MaleSalaries) > SUM(FemaleSalaries),
SUM(MaleSalaries) - SUM(FemaleSalaries) / COUNT(FemaleSalaries)).
我假设在可视化中会发生按等级划分的情况
编辑:以下是我对差距的DAX查询,以及性别栏:
WageGap = IF(COUNTROWS(VALUES('Ex 6A-Salary Analysis'[Gender])) > 1,
IF(CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]), 'Ex 6A-Salary Analysis'[Gender] = "M") >
CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]), 'Ex 6A-Salary Analysis'[Gender] = "F"),CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]), 'Ex 6A-Salary Analysis'[Gender] = "M") -
CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]), 'Ex 6A-Salary Analysis'[Gender] = "F"),CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]), 'Ex 6A-Salary Analysis'[Gender] = "F") -
CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]), 'Ex 6A-Salary Analysis'[Gender] = "M"))
,0)
ColumnGender = IF(COUNTROWS(VALUES('Ex 6A-Salary Analysis'[Gender]))>1,IF(CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]),'Ex 6A-Salary Analysis'[Gender]="M")>CALCULATE(AVERAGE('Ex 6A-Salary Analysis'[Annualized Salary]),'Ex 6A-Salary Analysis'[Gender]="F"),"M","F"),"")
如果您正在查找每个
薪资等级的平均薪资差异,我想您可能需要以下内容:
WageGap = IF(DISTINCTCOUNT(Pay[Gender]) > 1,
CALCULATE(AVERAGE(Pay[Salary]), Pay[Gender] = "M") -
CALCULATE(AVERAGE(Pay[Salary]), Pay[Gender] = "F")
,0)
其中,Pay
是您的数据表,您的图表轴上有PayGrade
这项措施首先测试某一薪酬等级中是否有一个以上的性别,然后计算平均工资的差异
编辑:
看起来你想把它做成龙卷风图。为了实现这一点,您需要两个单独的度量,可以使用我上面写的度量来定义
Men = IF([WageGap] > 0, [WageGap], BLANK())
Women = IF([WageGap] < 0, -[WageGap], BLANK())
Men=IF([WageGap]>0[WageGap],BLANK())
女性=如果([WageGap]<0,-[WageGap],BLANK())
试着将这两个指标纳入你的视觉价值观。这很接近,但我需要一个IF,看看每个薪酬等级哪个性别更高。也就是说,它只会为每个薪酬等级显示一个条,无论是男性还是女性。我能够整合IF声明。我的DAX查询和图表:。。。我想补充一点,理想情况下,如果给定的薪酬等级中只有男性或女性(但不是两者都有),那么就不应该显示任何值。也许这可以通过上图中的度量来实现,再加上一个表示“M”或“F”的额外列,根据哪个更适合该薪酬等级?我怀疑不是计数(薪酬[性别])>1
您应该真正使用COUNTROWS(VALUES(Pay[Gender]))>1
或DISTINCTCOUNT(Pay[Gender])>1
,因为它们都计算不同值的数量。如果有两行具有相同性别,则第一个表达式将返回true。我已合并了DISTINCTCOUNT,现在什么也不显示。