Tableau api 具有多个值的Tableau参数过滤器?

Tableau api 具有多个值的Tableau参数过滤器?,tableau-api,Tableau Api,在Tableau 9.2中,我当前设置了一个参数,其中包含多个字符串值和一个附加的“All”值。我还有一个计算字段,它只包含Str([some_field])函数。然后,我将此计算字段拖到“过滤器”窗格中,并从中启用“全部使用”,并将以下公式置于“条件”选项卡下: 在我的仪表板中为多个工作表创建计算字段(使用不同数据源的工作表都包含公共的some_字段)后,我可以更改参数的值,它将一次过滤所有工作表 我的问题是,我需要通过一个复选框一次接受多个值。我知道一个参数一次只能取一个值,所以我想知道如何

在Tableau 9.2中,我当前设置了一个参数,其中包含多个字符串值和一个附加的“All”值。我还有一个计算字段,它只包含
Str([some_field])
函数。然后,我将此计算字段拖到“过滤器”窗格中,并从中启用“全部使用”,并将以下公式置于“条件”选项卡下:

在我的仪表板中为多个工作表创建计算字段(使用不同数据源的工作表都包含公共的some_字段)后,我可以更改参数的值,它将一次过滤所有工作表

我的问题是,我需要通过一个复选框一次接受多个值。我知道一个参数一次只能取一个值,所以我想知道如何在不为仪表板中的每个工作表设置相同过滤器的情况下实现这一点。也许这可以通过计算字段来完成


编辑:我尝试了通过控件视图制作全局过滤器的技术。这允许我使用Ctrl+单击同时在某个字段中选择多个值,但我仍然没有下拉框。或者,如果有人知道如何在下拉框中使用此方法,则这将是另一种解决方案。

如果我正确理解您的情况,我已通过以下方法完成此操作:

创建计算字段并输入以下代码:

if [parameters].parametername = 'All' then true
elseif [parameters].parametername = FILTEREDCOLUMN then true
else false
end

将该计算字段添加到过滤器窗格并选择“True”-换句话说,过滤掉计算字段为False的所有记录。如果您选择的参数为“全部”,则所有记录均为真。否则,仅当参数与FILTEREDCOLUMN匹配时才为真。我希望这有帮助

参数一次只能传递一个值,即参数控件将有一个下拉列表。

仅根据您提供的内容,不需要参数。如果只对计算字段中的内容进行过滤,则应直接对其进行过滤。有一个选项可以包括
All
选项。Nicarus:此筛选器将应用于仪表板中的所有工作表,因此我使用一个参数一次筛选所有工作表。如果有一种方法可以在没有参数的情况下做到这一点,而该参数不需要我为仪表板中的每个工作表设置一个筛选复选框,那么我会接受它。这些工作表是否使用相同的数据源?如果是,请对相关工作表或数据源中的所有工作表应用筛选器。根据我的问题,并非所有工作表都是相同的数据源。
[parameters]。parametername
导致
[parameters]
字段名格式错误,因此我将
[parameters]。parametername
替换为
[my\u parameter\u name]
这似乎有效。然后,它在计算字段中给了我一个错误:
不能在'if'表达式中使用'boolean'类型。
我使用的是Tableau 9.2d'oh-对不起。需要将结果设置为字符串而不是布尔值;改为使用此代码。
如果[parameters]。parametername='All'然后'true'elseif[parameters]。parametername=FILTEREDCOLUMN然后'true'否则'false'结束
这不再会导致错误,但是我如何通过复选框使其与同时选择的多个值一起工作?嗯。。。我认为Tableau目前不提供/支持多值参数。但是,就像我们使用“all”逻辑一样,您可以为自定义条目添加逻辑块。类似地,如果您希望用户选择“East”,您可以构建逻辑来过滤字段中的“East”条目。与下面的代码类似,然后进行过滤以仅显示“True”
//如果[testparameter]=“Rx”和([Event Type]=“Rx Scripts”或[Event Type]=“Rx Brand Scripts”)则过滤逻辑为“True”elseif[testparameter]=“East”和([Event Type]=“Virginia”或[Event Type]=“DC”或[Event Type]=“Maryland”)然后是'True'或'False'结束
//请注意,这些字符串似乎区分大小写。
if [parameters].parametername = 'All' then true
elseif [parameters].parametername = FILTEREDCOLUMN then true
else false
end