我试图在可视切片器中合并3个true / false列,在该切片器中,选择列名将过滤该列为true的所有位置。
我希望用户能够选择(单选): -第1栏 -第2栏 -第3列
该页面应按列中所有true过滤。
我的数据
Column1| Column2| Column3|
true | true | false |
false | true | false |
false | false | true |
数据重叠,所以我无法使用if语句创建计算列。我真的坚持在此方面为我指明正确方向的任何帮助表示赞赏。
答案 0 :(得分: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() && '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