Как добавить оператор if в формулу DAX? - PullRequest
0 голосов
/ 06 сентября 2018

Я новичок в 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: enter image description here

Таблица взносов SSS:

enter image description here

Таблица информации о сотрудниках:

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Для условия OR вы можете добавить его в качестве другого фильтра:

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

Это может работать, а может и не работать, в зависимости от вашей точной модели данных / структуры отношений, но может указывать правильное направление. Возможно, вам нужно использовать RELATED / RELATEDTABLE, но я не уверен, что сам не смогу поиграть с ним.

0 голосов
/ 06 сентября 2018

Используйте вашу меру как есть для всех данных. Затем вы создаете сводную таблицу, в которой вы можете использовать фильтр или срезы по типу сотрудника, чтобы исключить нежелательные значения. Добавьте показатель в область «Значения», и он будет рассчитываться только для данных, находящихся в строках и столбцах сводной таблицы.

...