0

我有一个包含多个公司数据的表,其中包含company_id列。我想在报告中显示具有所选company_id最大值的滑块,用于排名功能

我创建了一个度量来计算所选公司的最大值的计数。

Max Value = CALCULATE(DISTINCTCOUNT(SOURCE_TABLE[Company_Name]),FILTER(SOURCE_TABLE,SOURCE_TABLE[Company_id]=SELECTEDVALUE(SOURCE_TABLE[Company_id])))

但是,当我尝试将其用于排名特征中的假设参数时,会低于错误,

在此处输入图像描述

TopRank = GENERATESERIES(1,[最大值], 1)

错误代码:

GenerateSeries 函数中的参数不能为空。

当我使用 DISTINCTCOUNT 函数时,它可以正常工作,但是使用过滤器时会出现问题。

TopRank = GENERATESERIES(1,DISTINCTCOUNT(SOURCE_TABLE[Company_Name]), 1)

-- 这工作正常

如何使用FILTER获取DISTINCTCOUNT的值。任何想法将不胜感激。!

4

1 回答 1

2

您可能已经注意到,假设参数表是一个计算表。

仅当您刷新数据源时,才会重新计算计算表。它不会根据用户交互重新计算,例如在切片器中选择公司 ID。

在您的场景中,您需要创建具有可能最大数量的参数表。并且,您可以过滤切片器,使其仅根据当前选择的公司 ID 显示可用数字。

您可以通过创建一个度量来指示参数是否可用于当前选定的公司 ID。例如,

__AvailableRankFlag = IF( [TopRank Value] <= [Max Value], 1 )

并将此度量添加到具有“__AvailableRankFlag 为 1”的切片器的过滤器中。

于 2019-11-14T05:42:37.503 回答