Фильтр по 3 столбцам True / False

#powerbi #dax #powerbi-desktop

#powerbi #dax #powerbi-рабочий стол

Вопрос:

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

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

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

Мои данные

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

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

Комментарии:

1. Вы пробовали комбинировать фильтры уровня страницы?

2. @Rubens_Z мое требование заключается в том, чтобы я мог создать срез с 3 столбцами; есть ли способ добиться этого с помощью фильтров уровня страницы? Спасибо

Ответ №1:

Вы не указали, хотите ли вы использовать его в M или DAX. Решение в M-коде:

 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() amp;amp; 'Table'[col2]=TRUE() amp;amp; 'Table'[col3]=TRUE()
    , "ALL TRUE"
    , "NOT ALL TRUE"
    )
  

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

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

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

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

Комментарии:

1. Это просто говорит о том, являются ли все значения true или false (или смешанными), ему нужен срез, в котором каждый параметр выбирается индивидуально.