DAX Power BI条件过滤

时间:2020-07-29 16:51:24

标签: powerbi dax

Sample file

c的列T可以具有值1, 2 or 3。我想过滤表,例如当用户选择值1时,没有任何内容被过滤。如果选择的值为2,则仅显示c列中包含值2或值3而不是值1的行,最后显示所选值为3,然后在3列中仅显示包含c的行。滑块或普通过滤器必须是单选而不是多选,因为否则会违反用户的业务规则之一。

Selected    Show
    1     all rows
    2     rows with 2 or 3
    3     only rows with 3

我试图创建列并创建度量,但是我什么也做不了。有方向吗?

enter image description here

2 个答案:

答案 0 :(得分:2)

我同意断开连接的表可能是此处的最佳解决方法。我希望该解决方案能与您的实际文件一起使用。

第1步-创建一个新的未连接表

FilterC = DISTINCT(T[c])

enter image description here

第2步-确保切片器来自新表(FilterC)

enter image description here

第3步-创建一个度量,对于要查看的行将返回1,对于要隐藏的行将返回0:

mFilter = 
    var Filter_C = SELECTEDVALUE(FilterC[c])
    var Row_C = SELECTEDVALUE(T[c])
return
    SWITCH(
        Filter_C,
        "1", 1,
        "2", IF(OR(Row_C = "2", Row_C = "3"), 1, 0),
        "3", IF(Row_C = "3", 1, 0)
    )

第4步-将此度量添加到表格中,甚至表格过滤器也足够。

enter image description here

步骤5 -开始切换值!

enter image description here

enter image description here

enter image description here

答案 1 :(得分:1)

首先,您需要将其设置为数字列。

enter image description here

第二,您可以编写复杂的度量并使用disconnected table,但是最好的选择是使用正确的切片器。有一个Greater than or Equal To选项。

enter image description here