使用者函數

本文介紹 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 Developer 網站的 HTML URL編碼參考(連結在新視窗開啟)

僅適用於在 Tableau Cloud 中內嵌工作流程

在使用者函數中,使用者屬性函數的子集可用於 Tableau 已連線應用程式(連結在新視窗開啟)。使用者屬性函數(USERATTRIBUTEUSERATTRIBUTEINCLUDES)允許 Tableau 在執行階段作為驗證工作流程的一部分擷取使用者屬性。使用者屬性從 JSON Web 權杖 (JWT) 傳遞時,使用這些函數製作的內嵌內容可以控制和自訂顯示給使用者的資料。

附註:

  • 請查看內嵌 API v3(連結在新視窗開啟) 說明,以瞭解可能影響工作流程的已知問題

  • 使用者屬性函數可以包含在 Tableau Desktop 或 Tableau Cloud 中製作的內容中。

  • 在 Tableau Desktop 或 Tableau Cloud 中製作時,無法預覽使用這些函數的內容。使用者屬性函數將傳回 NULL 或 FALSE 值。為確保使用者屬性函數按預期工作,我們建議您在外部應用程式中完成內嵌後查看內容。有關內嵌包含這些使用者函數的工作流程的詳情,請參閱內嵌 API v3(連結在新視窗開啟) 說明。

Tableau 提供的使用者函數

FULLNAME( )

語法FULLNAME( )
輸出字串
定義

返回目前使用者的全名。

範例
FULLNAME( )

這樣會傳回已登入的使用者的全名,例如「Hamlin Myrer」。

[Manager] = FULLNAME( )

如果經理「Hamlin Myrer」已登入,則僅檢視中的「經理」欄位包含「Hamlin Myrer」時,此範例才會傳回 TRUE。

說明

此函數會檢查:

  • Tableau CloudTableau Server:已登入的使用者的全名
  • Tableau Desktop:使用者的本機或網路全名

使用者篩選器

用作篩選器時,計算欄位(例如 [Username field] = FULLNAME( ))可用於建立使用者篩選器,該篩選器僅顯示與登入伺服器的人員相關的資料。

ISFULLNAME

語法ISFULLNAME("User Full Name")
輸出布林值
定義

如果目前使用者的全名與指定的全名相符,傳回 TRUE;如果不相符,則傳回 FALSE

範例
ISFULLNAME("Hamlin Myrer")
說明

<"User Full Name"> 引數必須為文字字串,而不是欄位。

此函數會檢查:

  • Tableau CloudTableau Server:登入使用者的全名
  • Tableau Desktop:使用者的本機或網路全名

ISMEMBEROF

語法ISMEMBEROF("Group Name")
輸出布林值或 NULL
定義

若目前使用 Tableau 的人員是與指定字串相符的群組的成員,則傳回 TRUE;若不是成員,則傳回 FALSE;若未登入,則傳回 NULL

範例
ISMEMBEROF('Superstars')
ISMEMBEROF('domain.lan\Sales')
說明

<"Group Full Name"> 引數必須為文字字串,而不是欄位。

若使用者已登入 Tableau CloudTableau Server,則群組成員資格由 Tableau 群組決定。若指定字串是「All Users」,則函數將傳回 TRUE

ISMEMBEROF( ) 函數也接受 Active Directory 網域。必須使用群組名稱在計算中宣告 Active Directory 網域。

若對使用者的群組成員資格進行變更,則基於群組成員資格的資料變更會反映在具有新工作階段的工作簿或檢視中。現有工作階段將反映過時資料。

ISUSERNAME

語法ISUSERNAME("username")
輸出布林值
定義若目前使用者的使用者名稱與指定的使用者名稱相符,則傳回 TRUE;若不相符,則傳回 FALSE
範例
ISUSERNAME("hmyrer")
說明

<"username"> 引數必須為文字字串,而不是欄位。

此函數會檢查:

  • Tableau CloudTableau Server:登入使用者的使用者名稱
  • Tableau Desktop:使用者的本機或網路使用者名稱

USERDOMAIN( )

語法USERDOMAIN( )
輸出字串
定義傳回目前使用者的網域。
說明

此函數會檢查:

  • Tableau CloudTableau Server:登入使用者的使用者網域
  • Tableau Desktop:本機網域(若使用者位於網域上)

USERNAME( )

語法USERNAME( )
輸出字串
定義返回目前使用者的使用者名。
範例
USERNAME( )

此函數會傳回登入使用者的使用者名稱,例如「hmyrer」。

[Manager] = USERNAME( )

若經理「hmyrer」已登入,則僅當檢視中的「經理」欄位包含「hmyrer」時,此範例才會傳回 TRUE。

說明

此函數會檢查:

  • Tableau CloudTableau Server:登入使用者的使用者名稱
  • Tableau Desktop:使用者的本機或網路使用者名稱

使用者篩選器

用作篩選器時,計算欄位(例如 [Username field] = USERNAME( ))可用於建立使用者篩選器,該篩選器僅顯示與登入伺服器的人員相關的資料。

USERATTRIBUTE

附註:僅適用於在 Tableau Cloud 中內嵌工作流程。有關詳情,請參閱驗證和內嵌檢視(連結在新視窗開啟)

語法USERATTRIBUTE('attribute_name')
輸出字串或 NULL
定義

<'attribute_name'> 是傳遞給 Tableau 的 JSON Web 權杖 (JWT) 的一部分,則計算將傳回 <'attribute_name'> 的第一個值。

<'attribute_name'> 不存在,則會傳回 NULL。

範例

假設「Region」是 JWT 中包含的使用者屬性,並使用站台管理員已設定的已連線用程式傳遞給 Tableau。

作為工作簿作者,可以將視覺效果設定為根據指定區域篩選資料。在該篩選器中,可以參考以下計算。

[Region] = USERATTRIBUTE("Region")

來自西部區域的使用者 2 檢視內嵌視覺效果時,Tableau 僅顯示西部區域的適當資料。

說明若想要 <'attribute_name'> 傳回多個值,則可以使用 USERATTRIBUTEINCLUDES 函數。

USERATTRIBUTEINCLUDES

附註:僅適用於在 Tableau Cloud 中內嵌工作流程。有關詳情,請參閱驗證和內嵌檢視(連結在新視窗開啟)

語法USERATTRIBUTEINCLUDES('attribute_name', 'expected_value')
輸出布林值
定義

若以下兩個條件均為 TRUE,則傳回 TRUE

  • <'attribute_name'> 是傳遞給 Tableau 的 JSON Web 權杖 (JWT) 的一部分
  • <'attribute_name'> 的其中一個值等於 <'expected_value'>

否則傳回 FALSE

範例

假設「Region」是 JWT 中包含的使用者屬性,並使用站台管理員已設定的已連線用程式傳遞給 Tableau。

作為工作簿作者,可以將視覺效果設定為根據指定區域篩選資料。在該篩選器中,可以參考以下計算。

USERATTRIBUTEINCLUDES('Region', [Region])

若來自西部區域的使用者 2 存取內嵌視覺效果,Tableau 將檢查 Region 使用者屬性是否與 [Region] 欄位值之一相符。若為 true,可視化會顯示適當資料。

來自北部區域的使用者 3 存取相同的視覺效果時,她無法看到任何資料,因為與 [Region] 欄位值不相符。

建立使用者計算

使用者計算直接對您在 Tableau Server 或 Tableau Cloud 上設定的使用者和群組起作用。您可以建立使用者計算來用作篩選器,以便使用者只看到與其相關的資料。

舉例來說,如果您有一個類似於如下的地圖視覺效果,其中顯示 48 個美國州的銷售額資料,則您可以建立一個使用者計算以僅顯示與每個使用者相關的地圖部分,例如區域經理的相關資料與全國經理的相關資料。(全國經理應能夠看到全國的資料,而區域經理應該只能看到他們管理的區域的資料)。

全國經理登入後會看到以下視覺效果:

西部區域經理登入後,將只會看到其區域的銷售額:

若要執行所執行功能類似於此範例的使用者函數,請執行下面的步驟。

開始之前

若要執行此範例的步驟,您必須具有 Tableau Server 或 Tableau Cloud 的存取權限。您還必須是伺服器管理員或網站管理員。

步驟 1:建立使用者和群組

  1. 登入到 Tableau Server 或 Tableau Cloud。

  2. 在 Tableau Server 或 Tableau Cloud 中,新增以下使用者:

    • Sadie Pawthorne

    • Chuck Magee

    • Fred Suzuki

    • Roxanne Rodriguez

    有關詳情,請參閱 Tableau Server 說明中的向網站新增使用者(連結在新視窗開啟)

  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 Cloud,則看不到 [True] 選項。在 Tableau Desktop 中,登入到 Tableau Server 或 Tableau Cloud 以將其選定。有關詳情,請參閱登入至 Tableau Server 或 Tableau Cloud(連結在新視窗開啟)

步驟 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 Cloud 時,此視覺效果為將保留。未列在 [National Managers] (全國經理)群組中或 [Sample Superstore] 資料來源的 [People] (人員)工作表中的使用者只會看到空白視覺效果。

另請參閱

Tableau 中的函數

Tableau 函數(按類別)

Tableau 函數(按字母順序)

感謝您的意見回饋!