按类别限制切片器的多选选项

问题描述 投票:0回答:1

我有一份来自不同来源的预测报告,其中每个来源属于2个可能类别中的第1个(客户预测或合作伙伴预测)。为了保持报告的组织性,我放置了一个切片器,允许查看者选择他们想要查看的预测来源。

理想情况下,用户不应选择属于同一类别的多个预测源,但我想通过规则/措施强制执行此操作,而不将切片器限制为“单选”选项。

例如如果预测 A 和 E 属于“类别 A”,预测 X 和 Y 属于“类别 B”,我可以使用 X 或 Y 多重选择预测 A 或 B,但不能选择预测 A 和 B 或预测 X 和 Y。

预测来源预测类别可与预测A客户预测X 和 Y预测B客户预测X 和 Y预测X合作伙伴预测A 和 B预测Y合作伙伴预测A 和 B
组合

我做了什么

    创建了一个度量
  1. ForecastCategoryCount
     来计算每个预测类别的预测源的不同值。
ForecastCategoryCount = DISTINCTCOUNT('forecast_filters'[Forecast Type])

    我在切片机上放置了一个过滤器,只允许
  1. ForecastCategoryCount
     
    <= 1

发生了什么事

结果对多选切片器没有影响。我假设是这样,因为切片器的字段是预测类型,所以公式的结果将始终为 1。

** 更新 **

我创建了一个度量,根据特定列中的选定值,并考虑应用于数据的任何其他过滤器,计算唯一值的总数(每个预测类别的预测源数量)。

ForecastCounts = CALCULATE( DISTINCTCOUNT('forecast_filters'[Forecast Source]), ALLSELECTED('forecast_filters'[Forecast Source]) )
计算有效时,当我过滤时

ForecastCategoryCount


<= 1 the slicer completely stops working.

按要求提供数据

切片器从专门创建为相关表的表 (forecast_filters) 中获取值,以过滤其他表,下面是该表中的数据示例,我在其中创建了已显示的度量:

起源目的地预测来源预测类型100023400012预测A客户预测100040400080预测A客户预测100023400012预测B客户预测100040400080预测B客户预测200083900080预测X合作伙伴预测200099900055预测Y合作伙伴预测
切片器过滤器不应允许我同时选择 A 和 B,而不是同时选择 X 和 Y。

powerbi dax powerbi-custom-visuals
1个回答
0
投票
由于用户只能选择 2 个可能的类别,因此我建议为每个类别及其来源创建 2 个表。

Slicer Cat 1

 计算表:

Slicer Cat 1 = VAR Category = "Customer Forecast" VAR Source = SELECTCOLUMNS(FILTER('Table', [Forecast Category] = Category) , "Source", [Forecast Source] ) RETURN UNION(Source , ROW("Source", "None") )

Slicer Cat 2

 计算表:

Slicer Cat 2 = VAR Category = "Partner Forecast" VAR Source = SELECTCOLUMNS(FILTER('Table', [Forecast Category] = Category) , "Source", [Forecast Source] ) RETURN UNION(Source , ROW("Source", "None") )
每个表都添加一个 

None

 选项以允许用户不选择值。

然后创建以下度量以按所选切片器过滤视觉效果:

ShowRows = VAR thisVal = MAXX('Table', [Forecast Source]) VAR slicerSelect1 = SELECTEDVALUE('Slicer Cat 1'[Source]) VAR slicerSelect2 = SELECTEDVALUE('Slicer Cat 2'[Source]) VAR output = IF( ISEMPTY( FILTER('Table' , [Forecast Source] = slicerSelect1 || [Forecast Source] = slicerSelect2 ) ), 0 , 1 ) RETURN output
然后,为了获得所需的视觉效果,将 

ShowRows

 度量添加到 
Filters on this visual
。将过滤器设置为 
is 1
。然后它将删除视觉效果的所有其他数据。

Example

© www.soinside.com 2019 - 2024. All rights reserved.