我有一份来自不同来源的预测报告,其中每个来源属于2个可能类别中的第1个(客户预测或合作伙伴预测)。为了保持报告的组织性,我放置了一个切片器,允许查看者选择他们想要查看的预测来源。
理想情况下,用户不应选择属于同一类别的多个预测源,但我想通过规则/措施强制执行此操作,而不将切片器限制为“单选”选项。
例如如果预测 A 和 E 属于“类别 A”,预测 X 和 Y 属于“类别 B”,我可以使用 X 或 Y 多重选择预测 A 或 B,但不能选择预测 A 和 B 或预测 X 和 Y。
组合 | ||
---|---|---|
我做了什么
ForecastCategoryCount
来计算每个预测类别的预测源的不同值。
ForecastCategoryCount = DISTINCTCOUNT('forecast_filters'[Forecast Type])
ForecastCategoryCount
<= 1
发生了什么事
结果对多选切片器没有影响。我假设是这样,因为切片器的字段是预测类型,所以公式的结果将始终为 1。** 更新 **
ForecastCounts =
CALCULATE(
DISTINCTCOUNT('forecast_filters'[Forecast Source]),
ALLSELECTED('forecast_filters'[Forecast Source])
)
计算有效时,当我过滤时ForecastCategoryCount
按要求提供数据
切片器从专门创建为相关表的表 (forecast_filters) 中获取值,以过滤其他表,下面是该表中的数据示例,我在其中创建了已显示的度量:
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
。然后它将删除视觉效果的所有其他数据。