筛选 3 True/False 列

Filter on 3 True/False Columns

我正在尝试在可视化切片器中组合 3 true/false 列,其中 select 列名称过滤所有该列为真的地方。

我希望用户能够选择(单-select): - 专栏 1 - 专栏 2 - Column3

页面应按列中的所有 true 进行过滤。

我的数据

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

数据重叠,所以我无法使用 if 语句创建计算列。我真的坚持这一点任何帮助我指出正确方向的人都会受到赞赏。

您没有指定是在 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() && '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")

确实,如何检查多个条件是一个有趣的问题。遗憾的是 DAX 中的 AND 函数只接受两个参数(条件)。您可以使用“&&”运算符检查多个条件。

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