计算差异百分比的 DAX 查询
DAX Query to Calculate % Difference
我有一些数据如下所示:
Gender Salary PayGrade
M 40000 3
F 35000 3
M 50000 5
M 65000 7
我正在创建一个 PowerBI 视觉对象,它应该为每个薪酬等级显示一个水平条,显示按性别划分的 $ 差异。 IE。在 PayGrade 3 中,在此示例中,男性的薪酬比女性高 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"),"")
如果您正在寻找每个 PayGrade
的平均工资差异,我想您会想要如下内容:
WageGap = IF(DISTINCTCOUNT(Pay[Gender]) > 1,
CALCULATE(AVERAGE(Pay[Salary]), Pay[Gender] = "M") -
CALCULATE(AVERAGE(Pay[Salary]), Pay[Gender] = "F")
,0)
其中 Pay
是您的数据 table 并且您的图表轴上有 PayGrade
。
该指标首先测试某个薪酬等级是否存在多个性别,然后取平均工资的差异。
编辑:
您似乎正试图将其制作成龙卷风图表。要让它发挥作用,您需要两个单独的度量,可以使用我上面写的度量来定义它们。
Men = IF([WageGap] > 0, [WageGap], BLANK())
Women = IF([WageGap] < 0, -[WageGap], BLANK())
尝试将这两项措施纳入您的视觉价值观。
我有一些数据如下所示:
Gender Salary PayGrade
M 40000 3
F 35000 3
M 50000 5
M 65000 7
我正在创建一个 PowerBI 视觉对象,它应该为每个薪酬等级显示一个水平条,显示按性别划分的 $ 差异。 IE。在 PayGrade 3 中,在此示例中,男性的薪酬比女性高 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"),"")
如果您正在寻找每个 PayGrade
的平均工资差异,我想您会想要如下内容:
WageGap = IF(DISTINCTCOUNT(Pay[Gender]) > 1,
CALCULATE(AVERAGE(Pay[Salary]), Pay[Gender] = "M") -
CALCULATE(AVERAGE(Pay[Salary]), Pay[Gender] = "F")
,0)
其中 Pay
是您的数据 table 并且您的图表轴上有 PayGrade
。
该指标首先测试某个薪酬等级是否存在多个性别,然后取平均工资的差异。
编辑:
您似乎正试图将其制作成龙卷风图表。要让它发挥作用,您需要两个单独的度量,可以使用我上面写的度量来定义它们。
Men = IF([WageGap] > 0, [WageGap], BLANK())
Women = IF([WageGap] < 0, -[WageGap], BLANK())
尝试将这两项措施纳入您的视觉价值观。