簡體   English   中英

如何在DAX公式度量中添加if語句?

[英]How to add an if statement in a DAX formula measure?

我是DAX的新手,並且創建了兩種方法來獲取每個員工的總薪資,然后將總薪資查詢到表中並在Power Pivot中返回一個值。

總薪資標准:

NMRPaySum:=SUMX(Pay,[Regular Pay]+[Overtime Pay]+[Other Pay])

范圍查找措施:

SSSContributionEE :=
CALCULATE (
    VALUES ( SSSContribution[EE] ),
    FILTER (
        SSSContribution,
        [NMRPaySum] >= SSSContribution[Lower Bound] &&
        [NMRPaySum] <= SSSContribution[Upper Bound]
    )
)

但是,我需要范圍查找來僅計算是否滿足員工類型。

邏輯如下:

If Employee[Type]="Regular" Then
    Calculate SSSConbtributionEE
Else
    0
End If

我已經嘗試過這個DAX公式,但是似乎沒有用:

=
IF (
    OR ( Salary[Type] = "Regular", Salary[Type] = "Agency" ),
    CALCULATE (
        VALUES ( SSSContribution[EE] ),
        FILTER (
            SSSContribution,
            [NMRPaySum] >= SSSContribution[Lower Bound] &&
            [NMRPaySum] <= SSSContribution[Upper Bound]
        )
    ),
    0
)

NMRPay表: 在此處輸入圖片說明

SSS貢獻表:

在此處輸入圖片說明

員工信息表:

在此處輸入圖片說明

對於所有數據,請按原樣使用度量。 然后,您構建數據透視表,在其中可以對Employee Type使用過濾器或切片器以排除不需要的值。 將度量添加到“值”區域,它將僅針對數據透視表的行和列中的數據進行計算。

對於OR條件,您應該可以將其添加為另一個過濾器:

=  CALCULATE (
        VALUES ( SSSContribution[EE] ),
        FILTER (
            SSSContribution,
            [NMRPaySum] >= SSSContribution[Lower Bound] &&
            [NMRPaySum] <= SSSContribution[Upper Bound]
        ),
        FILTER (Salary, Salary[Type] = "Regular" || SalaryType = "Agency")
)

根據您的確切數據模型/關系結構,這可能會或可能不會起作用,但它可能會為您指明正確的方向。 您可能需要使用RELATED / RELATEDTABLE ,但是我不確定自己是否可以使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM