Как фильтровать переменную через запятую в табличном DAX - PullRequest
0 голосов
/ 23 октября 2018

Итак, в основном моя проблема в том, что я пытаюсь отфильтровать в текущем офисе человека, который может иметь более одного текущего офиса.Я передаю идентификаторы для текущих офисов как значения, разделенные запятыми, в переменной, тогда мне нужно, чтобы эти значения были отфильтрованы по.

Здесь я опубликовал пример, когда у меня есть только один CurrentOfficeId, но что, если у меня есть несколько?

DEFINE 
    VAR CurrentOfficeIds = "2"

EVALUATE
SUMMARIZECOLUMNS(
    'Person'[CurrentOfficeId],
    'Person'[Current Office Name],
    'Person'[Display Name],
    FILTER ('Person',[CurrentOfficeId] = VALUE(CurrentOfficeIds))
)

Несколько офисов

DEFINE 
    VAR CurrentOfficeIds = "2,3,4"

EVALUATE
SUMMARIZECOLUMNS(
    'Person'[CurrentOfficeId],
    'Person'[Current Office Name],
    'Person'[Display Name],
    FILTER ('Person',[CurrentOfficeId] = ?????)
)

1 Ответ

0 голосов
/ 23 октября 2018

Это не совсем то, что вы просили, но может работать для ваших целей.

Вы можете определить свою переменную в виде списка через запятую, а затем просто передать его.

DEFINE 
    VAR CurrentOfficeIds = {2,3,4}

EVALUATE
SUMMARIZECOLUMNS(
    'Person'[CurrentOfficeId],
    'Person'[Current Office Name],
    'Person'[Display Name],
    FILTER ('Person',[CurrentOfficeId] IN CurrentOfficeIds)
)

Если вы используете более старую версию DAX, которая не поддерживает функциональность IN, тогда вы можете использовать CONTAINS вместо [CurrentOfficeId] IN CurrentOfficeIds:

CONTAINS(CurrentOfficeIds, [Value], [CurrentOfficeId])
...