首页 > 解决方案 > Power BI 切片器 OR 条件

问题描述

Power BI 中两个切片器之间的交互为我提供了 AND 条件的输出。

示例:如果我选择 2020 年和公司 ABC,则输出将是 2020 年公司 ABC 的所有数据。但我希望这两个切片器使用 OR 条件。

我用过这个 Dax

Include = (MAX(Table1[Column1]) = SELECTEDVALUE(Col1[Column1])) +
  (MAX(Table1[Column2]) = SELECTEDVALUE(Col2[Column2]))

但是上面 Dax 的问题我没有在切片器中选择任何东西(默认为 ALL)它向我展示了一个空白的视觉效果。我究竟做错了什么?

标签: powerbi

解决方案


我猜你有一个表“or_slicer_main_table”,其中包含年份、公司和其他一些列。现在创建 2 个新表,其中第一个将包含来自表“or_slicer_main_table”的不同年份列表,第二个将包含来自同一个表的不同公司列表。

新定制表1:

or_slicer_year_list = 
SELECTCOLUMNS(
    'or_slicer_main_table',
    "YEAR", 'or_slicer_main_table'[year]
)

新定制表2:

or_slicer_company_list = 
SELECTCOLUMNS(
    'or_slicer_main_table',
    "company", 'or_slicer_main_table'[company]
)

不要在这三个表之间建立任何关系。

步骤 1:使用新创建的“or_slicer_year_list”表创建年份切片器。

步骤 2:使用新创建的“or_slicer_company_list”表创建公司切片器。

步骤 3:在您的表“or_slicer_main_table”中创建以下 5 个度量

1.

year_current_row = max('or_slicer_main_table'[year])

2.

year_selected_in_slicer = SELECTEDVALUE(or_slicer_year_list[YEAR])

3.

company_current_row = max('or_slicer_main_table'[company])

4.

company_selected_in_slicer = SELECTEDVALUE(or_slicer_company_list[company])

5.

show_hide = 
if(
    [year_selected_in_slicer] = [year_current_row] 
        || [company_selected_in_slicer] = [company_current_row], 
    1, 
    0
)

现在你已经准备好所有的乐器了。使用表“or_slicer_main_table”中的列创建您的视觉对象

最后一步:现在只需为度量“show_hide”添加一个视觉级别过滤器,并且设置值仅在“show_hide = 1”时显示。

最终输出将如下图所示 -

在此处输入图像描述


推荐阅读