内容:

用户函数

  • 版本 :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

FULLNAME( )

返回当前用户的全名。当用户已登录时,这是 Tableau Server 或 Tableau Online 全名;否则为 Tableau Desktop 用户的本地或网络全名。

示例:

[Manager]=FULLNAME( )

如果经理 Dave Hallsten 已登录,则仅当视图中的“Manager”字段包含“Dave Hallsten”时,此示例才会返回 True。用作筛选器时,此计算字段可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。

ISFULLNAME

ISFULLNAME(string)

如果当前用户的全名与指定的全名匹配,则返回 true;如果不匹配,则返回 false。当用户已登录时,此函数使用 Tableau Server 或 Online 全名;否则它使用 Tableau Desktop 用户的本地或网络全名。

示例:

ISFULLNAME(“Dave Hallsten”)

如果 Dave Hallsten 为当前用户,则此示例返回 true,否则返回 false。

ISMEMBEROF

ISMEMBEROF(string)

如果当前使用 Tableau 的人员是与给定字符串匹配的组的成员,则返回 true。如果当前使用 Tableau 的人员已登录,则组成员身份由 Tableau Server 或 Tableau Online 上的组确定。如果该人员未登录,则此函数返回 NULL。

注意:如果给定字符串为“All Users”,则不管是登录到 Tableau Server 或 Tableau Online,函数都将返回“True”。

ISMEMBEROF() 函数也将接受 Active Directory 域。必须使用组名称在计算中声明 Active Directory 域。

示例:

IF ISMEMBEROF(‘domain.lan\Sales’) THEN “Sales” ELSE “Other” END

ISUSERNAME

ISUSERNAME(string)

如果当前用户的用户名与指定的用户名匹配,则返回 true;如果不匹配,则返回 false。当用户已登录时,此函数使用 Tableau Server 或 Online 用户名;否则它使用 Tableau Desktop 用户的本地或网络用户名。

示例:

ISUSERNAME(“dhallsten”)

如果 dhallsten 为当前用户,则此示例返回 true,否则返回 false。

注意:“All Users”将始终返回 true。

USERDOMAIN

USERDOMAIN()

当当前用户已登录到 Tableau Server 时,返回该用户的域。如果 Tableau Desktop 用户在域上,则返回 Windows 域。否则,此函数返回一个空字符串。

示例:

[Manager]=USERNAME() AND [Domain]=USERDOMAIN()

USERNAME

USERNAME( )

返回当前用户的用户名。当用户已登录时,这是 Tableau Server 或 Tableau Online 用户名;否则为 Tableau Desktop 用户的本地或网络用户名。

示例:

[Manager]=USERNAME( )

如果经理 dhallsten 已登录,则仅当视图中的“Manager”字段为“dhallsten”时,此函数才会返回 True。用作筛选器时,此计算字段可用于创建用户筛选器,该筛选器仅显示与登录到服务器的人员相关的数据。


创建用户计算

用户计算直接对您在 Tableau Server 或 Tableau Online 上设置的用户和组起作用。您可以创建用户计算来用作筛选器,以便用户只看到与其相关的数据。

举例来说,如果您有一个类似于如下的地图可视化项,其中显示 48 个美国州的销售额数据,则您可以创建一个用户计算以仅显示与每个用户相关的地图部分,例如区域经理的相关数据与全国经理的相关数据。(全国经理应能够看到全国的数据,而区域经理应该只能看到他们管理的区域的数据)。

全国经理登录后会看到以下可视化项:

西部区域经理登录后,将只会看到其区域的销售额:

若要执行所执行功能类似于此示例的用户函数,请执行下面的步骤。

开始之前

若要执行此示例的步骤,您必须具有 Tableau Server 或 Tableau Online 的访问权限。您还必须是服务器管理员或站点管理员。

步骤 1:创建用户和组

  1. 登录到 Tableau Server 或 Tableau Online。

  2. 在 Tableau Server 或 Tableau Online 中,添加以下用户:

    有关详细信息,请参见 Tableau Server 帮助中的向站点添加用户(链接在新窗口中打开)

    • Sadie Pawthorne

    • Chuck Magee

    • Fred Suzuki

    • Roxanne Rodriguez

  3. 创建一个名为“National Managers”(全国经理)的新组。

    有关详细信息,请参见 Tableau Server 帮助中的创建本地组(链接在新窗口中打开)

  4. 将自己添加到“National Managers”(全国经理)组。

    有关详细信息,请参见 Tableau Server 帮助中的向组添加用户(链接在新窗口中打开)

步骤 2:创建虚拟化项

  1. 打开 Tableau Desktop,并连接到 Tableau 附带的“Sample - Superstore”数据源。

  2. 在工作区的左下角,单击“数据源”选项卡。

  3. 在“数据源”页面上,从左侧的“连接”窗格中,将“People”(人员)工作表拖到联接区域。

  4. 单击联接图标,并选择“左侧”

  5. 导航到新工作表。

  6. 在“数据”窗格中的“维度”下,双击“State”(州/省/市/自治区)

    将创建一个地图视图。

  7. “数据”窗格中的“度量”下,将“Sales”(销售额)拖到“标记”卡上的“颜色”

  8. 在“列”功能区上,选择“经度”字段,并按住键盘上的 Ctrl 键(在 Mac 上为 Command 键)复制该字段。将副本拖到“列”功能区上原始字段的右侧。

  9. 在“标记”卡上,单击第二个(底部的)“经度”选项卡。

  10. “数据”窗格中,将“Region”(区域)拖到“标记”卡上的“颜色”

    右侧的地图视图将更新为新颜色。

  11. 在“标记”卡上,单击标记类型下拉列表,并选择“地图”

  12. 在“标记”卡上,单击“颜色”,并在“不透明度”下将滑块调整到“50%”

  13. 在“标记”卡上,单击第一个“经度”选项卡。

  14. 在“标记”卡上,单击“颜色”>“编辑颜色”,然后从调色板下拉列表中选择“灰色”。

    左侧的地图视图将更新。

  15. 在“列”功能区上,右键单击右侧的“经度”字段,并选择“双轴”

地图如以下所示:

步骤 3:创建用户计算

  1. 选择“分析”>“创建计算字段”

  2. 在打开的计算编辑器中,执行以下操作:

    • 将计算字段命名为“User Filter”(用户筛选器)。

    • 输入以下公式:

      [Regional Manager] = USERNAME() OR ISMEMBEROF("National Managers")

      此计算检查某个人员是否包括在“Region (People)”(区域(人员))字段中,或者某个人员是否包括在“National Managers”(全国经理)组中。如果包括在其中,则该计算返回 true。

    • 完成后,单击“确定”

    新的用户计算字段会显示在“数据”窗格中的“维度”下。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。

步骤 4:将用户计算添加到“筛选器”功能区

  1. 从“数据”窗格中的“维度”下,将“User Filter”(用户筛选器)拖到“筛选器”功能区。

  2. 在打开的“筛选器”对话框中,选择“True”,然后单击“确定”

    注意:如果您未登录到 Tableau Server 或 Tableau Online,则看不到“True”选项。在 Tableau Desktop 中,登录到 Tableau Server 或 Tableau Online 以将其选定。有关详细信息,请参见登录到 Tableau Server 或 Tableau Online(链接在新窗口中打开)

步骤 5:测试计算

  1. 在 Tableau Desktop 中工作区的右下角,单击“筛选为用户”下拉列表,并将用户更改为“Sadie Pawthorne”

    地图将更新以仅显示美国的西部区域,因为已在“People”(人员)工作表中将 Sadie 分配到西部区域。

  2. 再次选择“筛选为用户”下拉列表,并将用户更改为“Roxanne Rodriguez”。

    地图将更新以仅显示美国的中部区域,因为已在“People”(人员)工作表中将 Roxanne 分配到中部区域。

  3. 再次选择“筛选为用户”下拉列表,并将用户更改为“Chuck Magee”。

    地图将更新以仅显示美国的东部区域,因为已在“People”(人员)工作表中将 Chuck 分配到东部区域。

  4. 再次选择“筛选为用户”下拉列表,并将用户更改为“Fred Suzuki”。

    地图将更新以仅显示美国的南部区域,因为已在“People”(人员)工作表中将 Fred 分配到南部区域。

  5. 再次选择“筛选为用户”下拉列表,并将用户更改回您自己。

    地图将更新为显示所有数据,因为您是服务器上“National Managers”(全国经理)组的成员。

当您将视图发布到 Tableau Server 或 Tableau Online 时,此行为将保留。未列在“National Managers”(全国经理)组中或“Sample Superstore”数据源的“People”(人员)工作表中的用户只会看到空白可视化项。