Фильтр по 3 истинным / ложным столбцам - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь объединить 3 столбца true / false в визуальном слайсере, где выбор имени столбца фильтрует все, где этот столбец истинен.

Я хочу, чтобы пользователь мог выбирать (одиночный выбор): - Столбец1 - Столбец2 - Столбец3

Страница должна быть отфильтрована по всем истинным значениям в столбце.

Мои данные

Column1| Column2| Column3|
true   | true   | false  |
false  | true   | false  |
false  | false  | true   |

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

1 Ответ

0 голосов
/ 04 марта 2019

Вы не указали, хотите ли вы это в M или DAX.Решение в М-коде:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCgkKdVXSUXJz9AlG0LE6GBJgLkgcRYB0cfItQOYjm4PqdCw24DCIkMW4bSDfJGL9gMPTxIYRqjGxAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [col1 = _t, col2 = _t, col3 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"col1", type logical}, {"col2", type logical}, {"col3", type logical}}),
    #"Added Conditional Column" = Table.AddColumn(#"Changed Type", "AllTrue_M", each if [col1] = false then false else if [col2] = false then false else if [col3] = false then false else true)
in
    #"Added Conditional Column"

Или добавить вычисляемый столбец в DAX:

CalculatedColumn = IF(
    'Table'[col1]=TRUE() && 'Table'[col2]=TRUE() && 'Table'[col3]=TRUE()
    , "ALL TRUE"
    , "NOT ALL TRUE"
    )

В качестве альтернативы, проверьте другие комбинации:

CalculatedColumn = SWITCH(TRUE(), 
'Table'[col1]=TRUE() && 'Table'[col2]=TRUE() && 'Table'[col3]=TRUE(), "ALL TRUE", 
'Table'[col1]=FALSE() && 'Table'[col2]=FALSE() && 'Table'[col3]=FALSE(), "ALL FALSE",
"MIXED")

Действительно, это интересноПроблема, как сделать проверку на множественные условия.К сожалению, функция AND в DAX принимает только два аргумента (условия).Вы можете проверить несколько условий с помощью оператора & &.

https://docs.microsoft.com/en-us/dax/dax-operator-reference#logical-operators

...