DAX查询计算%差异

时间:2017-10-17 20:19:38

标签: powerbi dax

我有一些看起来像这样的数据:

Gender  Salary  PayGrade
M       40000    3
F       35000    3
M       50000    5
M       65000    7

我正在创建一个PowerBI视觉效果,应该为每个工资等级显示一个水平条,显示按性别划分的差异。 I.E.在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"),"")

1 个答案:

答案 0 :(得分:1)

如果您正在寻找每PayGrade平均工资的差异,我想您会想要以下内容:

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())

尝试将这两个度量放入您的视觉值中。