用户函数
- 版本 :2022.1 及更高版本
适用于: Tableau Desktop, Tableau Online, Tableau Public, Tableau Server
本文介绍 Tableau 中的用户函数及其用途。它还使用示例来演示如何创建用户计算。
为何使用用户函数
用户函数可用于创建用户筛选器或行级别安全筛选器,这些筛选器影响发布到 Tableau Server 或 Tableau Online 的可视化项,以便只有特定人员才能看到您的可视化项。
举例来说,如果您有一个发布到 Tableau Server 或 Tableau Online 的可视化项,该可视化项显示部门中每名员工的销售业绩。您可能希望只允许员工在访问该可视化项时查看自己的销售数字。
在这种情况下,您可以使用 ISMEMBEROF 函数创建一个字段,如果登录到服务器的人员的用户名是(服务器上)指定组(例如,“Managers”组)的成员,则该字段返回 true。然后,当您使用此计算字段筛选视图时,只有属于该组的人员才能看到数据。
本例中的计算可能如下所示:
ISMEMBEROF('Managers')
注意:如果组名称或用户名包含非字母数字,以使用下面的函数时,您必须为特殊字符使用 HTML URL 编码。
某些特殊字符无需 HTML URL 编码即可使用,例如下划线、括号和感叹号。 _ ( ) !
许多其他字符必须编码。
例如,函数 ISMEMBEROF("USERS+")
需要编写为 ISMEMBEROF("USERS%2B")
,因为“%2B”是“+”符号的 HTML URL 编码。有关 HTML URL 编码的信息,请参见 W3schools Web 开发者网站上的 HTML URL 编码参考。
Tableau 中的可用用户函数:
函数 | 语法 | 描述 |
FULLNAME |
| 返回当前用户的全名。当用户已登录时,这是 Tableau Server 或 Tableau Online 全名;否则为 Tableau Desktop 用户的本地或网络全名。 示例:
如果经理 Dave Hallsten 已登录,则仅当视图中的“Manager”字段包含“Dave Hallsten”时,此示例才会返回 True。用作筛选器时,此计算字段可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。 |
ISFULLNAME |
| 如果当前用户的全名与指定的全名匹配,则返回 true;如果不匹配,则返回 false。当用户已登录时,此函数使用 Tableau Server 或 Online 全名;否则它使用 Tableau Desktop 用户的本地或网络全名。 示例:
如果 Dave Hallsten 为当前用户,则此示例返回 true,否则返回 false。 |
ISMEMBEROF |
| 如果当前使用 Tableau 的人员是与给定字符串匹配的组的成员,则返回 true。如果当前使用 Tableau 的人员已登录,则组成员身份由 Tableau Server 或 Tableau Online 上的组确定。如果该人员未登录,则此函数返回 NULL。 注意:如果给定字符串为“All Users”,则不管是登录到 Tableau Server 或 Tableau Online,函数都将返回“True”。 ISMEMBEROF() 函数也将接受 Active Directory 域。必须使用组名称在计算中声明 Active Directory 域。 示例:
|
ISUSERNAME |
| 如果当前用户的用户名与指定的用户名匹配,则返回 true;如果不匹配,则返回 false。当用户已登录时,此函数使用 Tableau Server 或 Online 用户名;否则它使用 Tableau Desktop 用户的本地或网络用户名。 示例:
如果 dhallsten 为当前用户,则此示例返回 true,否则返回 false。 注意:“All Users”将始终返回 true。 |
USERDOMAIN |
| 当当前用户已登录到 Tableau Server 时,返回该用户的域。如果 Tableau Desktop 用户在域上,则返回 Windows 域。否则,此函数返回一个空字符串。 示例:
|
USERNAME |
| 返回当前用户的用户名。当用户已登录时,这是 Tableau Server 或 Tableau Online 用户名;否则为 Tableau Desktop 用户的本地或网络用户名。 示例:
如果经理 dhallsten 已登录,则仅当视图中的“Manager”字段为“dhallsten”时,此函数才会返回 True。用作筛选器时,此计算字段可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。 |
创建用户计算
用户计算直接对您在 Tableau Server 或 Tableau Online 上设置的用户和组起作用。您可以创建用户计算来用作筛选器,以便用户只看到与其相关的数据。
举例来说,如果您有一个类似于如下的地图可视化项,其中显示 48 个美国州的销售额数据,则您可以创建一个用户计算以仅显示与每个用户相关的地图部分,例如区域经理的相关数据与全国经理的相关数据。(全国经理应能够看到全国的数据,而区域经理应该只能看到他们管理的区域的数据)。
全国经理登录后会看到以下可视化项:
西部区域经理登录后,将只会看到其区域的销售额:
若要执行所执行功能类似于此示例的用户函数,请执行下面的步骤。
开始之前
若要执行此示例的步骤,您必须具有 Tableau Server 或 Tableau Online 的访问权限。您还必须是服务器管理员或站点管理员。
步骤 1:创建用户和组
登录到 Tableau Server 或 Tableau Online。
在 Tableau Server 或 Tableau Online 中,添加以下用户:
有关详细信息,请参见 Tableau Server 帮助中的向站点添加用户。
Sadie Pawthorne
Chuck Magee
Fred Suzuki
Roxanne Rodriguez
创建一个名为“National Managers”(全国经理)的新组。
有关详细信息,请参见 Tableau Server 帮助中的创建本地组。
将自己添加到“National Managers”(全国经理)组。
有关详细信息,请参见 Tableau Server 帮助中的向组添加用户。
步骤 2:创建虚拟化项
打开 Tableau Desktop,并连接到 Tableau 附带的“Sample - Superstore”数据源。
在工作区的左下角,单击“数据源”选项卡。
在“数据源”页面上,从左侧的“连接”窗格中,将“People”(人员)工作表拖到联接区域。
单击联接图标,并选择“左侧”。
导航到新工作表。
在“数据”窗格中的“维度”下,双击“State”(州/省/市/自治区)。
将创建一个地图视图。
从“数据”窗格中的“度量”下,将“Sales”(销售额)拖到“标记”卡上的“颜色”。
在“列”功能区上,选择“经度”字段,并按住键盘上的 Ctrl 键(在 Mac 上为 Command 键)复制该字段。将副本拖到“列”功能区上原始字段的右侧。
在“标记”卡上,单击第二个(底部的)“经度”选项卡。
从“数据”窗格中,将“Region”(区域)拖到“标记”卡上的“颜色”。
右侧的地图视图将更新为新颜色。
在“标记”卡上,单击标记类型下拉列表,并选择“地图”。
在“标记”卡上,单击“颜色”,并在“不透明度”下将滑块调整到“50%”。
在“标记”卡上,单击第一个“经度”选项卡。
在“标记”卡上,单击“颜色”>“编辑颜色”,然后从调色板下拉列表中选择“灰色”。
左侧的地图视图将更新。
在“列”功能区上,右键单击右侧的“经度”字段,并选择“双轴”。
地图如以下所示:
步骤 3:创建用户计算
选择“分析”>“创建计算字段”。
在打开的计算编辑器中,执行以下操作:
将计算字段命名为“User Filter”(用户筛选器)。
输入以下公式:
[Regional Manager] = USERNAME() OR ISMEMBEROF("National Managers")
此计算检查某个人员是否包括在“Region (People)”(区域(人员))字段中,或者某个人员是否包括在“National Managers”(全国经理)组中。如果包括在其中,则该计算返回 true。
完成后,单击“确定”。
新的用户计算字段会显示在“数据”窗格中的“维度”下。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。
步骤 4:将用户计算添加到“筛选器”功能区
从“数据”窗格中的“维度”下,将“User Filter”(用户筛选器)拖到“筛选器”功能区。
在打开的“筛选器”对话框中,选择“True”,然后单击“确定”。
注意:如果您未登录到 Tableau Server 或 Tableau Online,则看不到“True”选项。在 Tableau Desktop 中,登录到 Tableau Server 或 Tableau Online 以将其选定。有关详细信息,请参见登录到 Tableau Server 或 Tableau Online。
步骤 5:测试计算
在 Tableau Desktop 中工作区的右下角,单击“筛选为用户”下拉列表,并将用户更改为“Sadie Pawthorne”。
地图将更新以仅显示美国的西部区域,因为已在“People”(人员)工作表中将 Sadie 分配到西部区域。
再次选择“筛选为用户”下拉列表,并将用户更改为“Roxanne Rodriguez”。
地图将更新以仅显示美国的中部区域,因为已在“People”(人员)工作表中将 Roxanne 分配到中部区域。
再次选择“筛选为用户”下拉列表,并将用户更改为“Chuck Magee”。
地图将更新以仅显示美国的东部区域,因为已在“People”(人员)工作表中将 Chuck 分配到东部区域。
再次选择“筛选为用户”下拉列表,并将用户更改为“Fred Suzuki”。
地图将更新以仅显示美国的南部区域,因为已在“People”(人员)工作表中将 Fred 分配到南部区域。
再次选择“筛选为用户”下拉列表,并将用户更改回您自己。
地图将更新为显示所有数据,因为您是服务器上“National Managers”(全国经理)组的成员。
当您将视图发布到 Tableau Server 或 Tableau Online 时,此行为将保留。未列在“National Managers”(全国经理)组中或“Sample Superstore”数据源的“People”(人员)工作表中的用户只会看到空白可视化项。