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,现在什么也不显示。