用户函数

您所在的位置:网站首页 函数sum相当于用户输入什么公式 用户函数

用户函数

2023-08-05 23:17| 来源: 网络整理| 查看: 265

本文介绍 Tableau 中的用户函数及其用途。它还使用示例来演示如何创建用户计算。

为何使用用户函数

用户函数可用于创建用户筛选器或行级别安全筛选器,这些筛选器影响发布到 Tableau Server 或 Tableau Cloud 的可视化项,以便只有特定人员才能看到您的可视化项。

举例来说,如果您有一个发布到 Tableau Server 或 Tableau Cloud 的可视化项,该可视化项显示部门中每名员工的销售业绩。您可能希望只允许员工在访问该可视化项时查看自己的销售数字。

在这种情况下,您可以使用 ISMEMBEROF 函数创建一个字段,如果登录到服务器的人员的用户名是(服务器上)指定组(例如,“Managers”组)的成员,则该字段返回 true。然后,当您使用此计算字段筛选视图时,只有属于该组的人员才能看到数据。

本例中的计算可能如下所示:

ISMEMBEROF('Managers')

注意:如果组名称或用户名包含非字母数字,以使用下面的函数时,您必须为特殊字符使用 HTML URL 编码。

某些特殊字符无需 HTML URL 编码即可使用,例如下划线、括号和感叹号。 _ ( ) ! 许多其他字符必须编码。

例如,函数 ISMEMBEROF("USERS+") 需要编写为 ISMEMBEROF("USERS%2B"),因为“%2B”是“+”符号的 HTML URL 编码。有关 HTML URL 编码的信息,请参见 W3schools Web 开发者网站上的 HTML URL 编码参考(链接在新窗口中打开)。

仅适用于在 Tableau Cloud 中嵌入工作流

在用户函数中,用户属性函数的一个子集可以与 Tableau 已连接应用(链接在新窗口中打开)一起使用。用户属性函数 (USERATTRIBUTE 和 USERATTRIBUTEINCLUDES) 允许 Tableau 在运行时作为身份验证工作流的一部分捕获用户属性。当用户属性从 JSON Web 令牌 (JWT) 传递时,使用这些函数编写的嵌入内容可以控制和自定义向用户显示的数据。

注意:

查看嵌入 API v3(链接在新窗口中打开) 帮助以了解可能影响您的工作流程的已知问题。

用户属性函数可以包含在 Tableau Desktop 或 Tableau Cloud 中制作的内容中。

在 Tableau Desktop 或 Tableau Cloud 中进行制作时,无法预览包含这些函数的内容。用户属性函数将返回 NULL 或 FALSE 值。为确保用户属性函数按预期工作,我们建议您在嵌入外部应用程序后查看内容。有关嵌入包含这些用户函数的工作流的详细信息,请参见 嵌入 API v3(链接在新窗口中打开) 帮助。Tableau 中的可用用户函数:函数语法描述

FULLNAME

FULLNAME( )

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

示例:

FULLNAME( ) 

此函数返回当前已登录用户的全名,即 Dave Hallsten。

[Manager]=FULLNAME( )

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

ISFULLNAME

ISFULLNAME(string)

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

示例:

ISFULLNAME("Dave Hallsten")

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

ISMEMBEROF

ISMEMBEROF(string)

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

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

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

示例:

IF ISMEMBEROF('domain.lan\Sales') THEN "Sales" ELSE "Other" END

ISUSERNAME

ISUSERNAME(string)

如果当前用户的用户名与指定的用户名匹配,则返回 true;如果不匹配,则返回 false。当用户已登录时,此函数使用 Tableau Server 或 Tableau Cloud 用户名;否则它使用 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 Cloud 用户名;否则为 Tableau Desktop 用户的本地或网络用户名。

示例:

USERNAME( ) 

此函数将返回已登录用户的用户名,即 dhallsten。

[Manager]=USERNAME( )

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

USERATTRIBUTEUSERATTRIBUTE('attribute_name')

(仅适用于在 Tableau Cloud 中嵌入工作流)

返回字符串。如果 'attribute_name' 是传递给 Tableau 的 JWT 的一部分,计算返回 'attribute_name' 的第一个值。如果 'attribute_name' 不存在,则返回 null。

注意:如果期望 'attribute_name' 返回多个值,您可以使用 USERATTRIBUTEINCLUDES 函数。

示例:

假设“Region”(区域)是 JWT 中包含的用户属性,并使用站点管理员已配置的已连接应用传递给 Tableau。作为工作簿作者,您可以将可视化项设置为根据指定区域筛选数据。在该筛选器中,您可以引用以下计算。

[Region]=USERATTRIBUTE('Region')

当来自西部地区的 Alan Wang 查看嵌入式可视化项时,Tableau 仅显示西部地区的相应数据。

USERATTRIBUTEINCLUDESUSERATTRIBUTEINCLUDES('attribute_name', 'expected_value')

(仅适用于在 Tableau Cloud 中嵌入工作流)

返回一个布尔值。如果满足以下条件,则返回“true”:1) 'attribute_name' 是传递给 Tableau 的 JWT 的一部分,并且 2) 其中一个 'attribute_name' 值等于 'expected_value' 。否则返回“false”。

注意:如果期望 'attribute_name' 返回单个字符串值,您可以使用 USERATTRIBUTE。

示例:

假设“Region”(区域)是 JWT 中定义的用户属性,并使用站点管理员已配置的已连接应用传递给 Tableau。作为工作簿作者,您可以将可视化项设置为基于“[Region]”(区域)筛选数据。在该筛选器中,您可以引用以下计算。

USERATTRIBUTEINCLUDES('Region', [Region])

如果来自西部地区的 Alan Wang 访问嵌入式可视化项,Tableau 会检查“Region”(区域)用户属性是否与“[Region]”(区域)字段值之一匹配。如果为 true,可视化项将显示适当的数据。当来自北部地区的另一位用户 Michele Kim 访问相同的可视化项时,她无法看到任何数据,因为没有与“[Region]”(区域)字段值匹配的项。

创建用户计算

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

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

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

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

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

开始之前

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

步骤 1:创建用户和组

登录到 Tableau Server 或 Tableau Cloud。

在 Tableau Server 或 Tableau Cloud 中,添加以下用户:

Sadie Pawthorne

Chuck Magee

Fred Suzuki

Roxanne Rodriguez

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

创建一个名为“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 Cloud,则看不到“True”选项。在 Tableau Desktop 中,登录到 Tableau Server 或 Tableau Cloud 以将其选定。有关详细信息,请参见登录到 Tableau Server 或 Tableau Cloud(链接在新窗口中打开)。

步骤 5:测试计算

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

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

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

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

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

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

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

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

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

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

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

另请参见

Tableau 中的函数

Tableau 函数(按类别)

Tableau 函数(按字母顺序)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3