Tableau CONTAINS 函数是字符串函数之一,有助于执行搜索操作。它将搜索给定列中的每一行是否包含指定的子字符串。如果指定了子字符串,它将返回布尔值 True。否则,它返回 False。
本文将通过一个示例展示如何使用 Tableau CONTAINS 函数执行字符串搜索。字符串 CONTAINS 函数的语法如下所示。
CONTAINS(Original_String_Column, Substring)
从上面的语法可以看出,CONTAINS 函数会在原始字符串列中搜索子字符串,如果找到则返回 True,否则返回 False。
Tableau CONTAINS 函数用于搜索字符串
为了演示 CONTAINS 函数的字符串搜索功能,我们使用了 AdventureWorksDW SQL 数据库的以下报告。要创建下面的报告,请将 SalesAmount 拖放到“列”架上,并将 English Sub category Name 拖放到“行”架上。默认情况下,它会显示一个条形图;否则,请使用“显示我”窗口或将标记类型更改为“条形”。有关 Tableau 中其余图表的信息,请单击此处。
接下来,将 English Product Name 添加到“颜色”架上为条形添加颜色,然后单击 T 按钮添加数据标签。由于存在一些 NULL 值,我们通过将 Sales Amount 度量添加到筛选器中来筛选掉这些 NULL 值。请访问SQL 源和SQL 教程文章以了解数据源。
创建一个计算字段来编写内置的 Tableau CONTAINS 函数。转到“分析”选项卡,然后选择“创建计算字段”选项,或者右键单击“MeasureValue”下方的空白区域,然后编写以下表达式。
CONTAINS([English Product Subcategory Name], "Bike")

上面的字符串函数表达式将检查或搜索每个 English Product Subcategory Name 是否包含子字符串 Bike。如果存在,它将返回布尔值 True;否则,它将返回 False。有关所有内置函数,>> 单击此处!
请将 Check 计算字段添加到表中以查看输出。如果您注意到,Tableau CONTAINS 函数返回 Road Bikes、Mountain Bikes、Touring Bikes、Bike Stands 和 Bike Racks 的 True。对于所有剩余的行,它返回 False。

上述方法将搜索原始字符串中的一个特定子字符串。但是,您可以使用 CONTAINS 函数动态地使用参数搜索字符串。
为了允许用户选择 Tableau CONTAINS 函数的搜索词,请创建一个参数来输入字符串词。为此,右键单击“Measure Values”空白区域下方,然后选择“创建参数”选项。
这将打开以下窗口。我将使用 Choose Item 作为参数名称,选择 String 作为数据类型,并添加参数值列表,即 Mountain、Gloves、Bike、Cap、Jersey、Tire 和 Bottle。

我们需要一个计算字段才能在报告中使用该参数。因此,创建另一个计算字段,将其命名为 String Search,并编写以下参数表达式。这里,CONTAINS 函数接受一个参数作为第二个参数。因此,基于参数值,将执行字符串搜索。
CONTAINS([English Product Name], [Choose Item])
下一步是将这些字段添加到报告中。右键单击“Choose Item”参数,然后选择“显示参数”选项。接下来,将“String Search”计算字段拖放到“颜色”架上。下图显示,所有包含“Mountain”一词的产品名称均为橙色,其余均为蓝色。

我将更改字符串参数值以显示 Tableau CONTAINS 函数报告中的变化。

除了手动输入参数的所有值之外,我们还可以使用列作为输入。为此,单击“Choose Item”旁边的向下箭头,然后单击“编辑参数”选项。接下来,选择正确的数据集和列字段来填充项目列表。我们使用 DimProduct 表中存在的 color 字段进行演示。

我将选择黑色来突出显示包含黑色的产品名称。

我们无需为选定的值分配橙色,为其余值分配蓝色,而是可以使用筛选器操作删除不匹配的项。将 Product Subcategory 添加到“颜色”架上,并将 String Search 添加到“筛选器”架上。当您将 String Search 计算字段放置在“筛选器”架上时,将打开一个新的弹出窗口。选择“True”选项。
下面的 Tableau CONTAINS 函数图像搜索 Balck 字符串,仅显示包含黑色的产品名称。请参考“筛选器”文章。
