本文介紹 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 中的可用使用者函數:
函數 | 語法 | 說明 |
FULLNAME |
| 返回目前使用者的全名。當使用者已登入時,這是 Tableau Server 或 Tableau Cloud 全名;否則為 Tableau Desktop 使用者的本機或網路全名。 範例:
如果經理 Dave Hallsten 已登入,則僅當檢視中的「Manager」欄位包含「Dave Hallsten」時,此範例才會返回 True。用作篩選器時,此計算欄位可用於建立使用者篩選器,該篩選器僅顯示與登入到伺服器的人員相關的資料。 |
ISFULLNAME |
| 如果目前使用者的全名與指定的全名匹配,則返回 true;如果不匹配,則返回 false。當使用者已登入時,此函數使用 Tableau Server 或 Tableau Cloud 全名;否則它使用 Tableau Desktop 使用者的本機或網路全名。 範例:
如果 Dave Hallsten 為目前使用者,則此範例返回 true,否則返回 false。 |
ISMEMBEROF |
| 如果目前使用 Tableau 的人員是與給定字串匹配的群組的成員,則返回 true。如果目前使用 Tableau 的人員已登入,則群組成員身分由 Tableau Server 或 Tableau Cloud 上的群組確定。若該人員未登入,則此函數會傳回 Null。 附註:若指定的字串為「所有使用者」,則無論是登入到 Tableau Server 還是 Tableau Cloud,此函數都將傳回「True」值。 ISMEMBEROF() 函數也接受 Active Directory 網域。必須使用群組名稱在計算中宣告 Active Directory 網域。 範例:
|
ISUSERNAME |
| 如果目前使用者的使用者名與指定的使用者名匹配,則返回 true;如果不匹配,則返回 false。當使用者已登入時,此函數使用 Tableau Server 或 Tableau Cloud 使用者名;否則它使用 Tableau Desktop 使用者的本機或網路使用者名。 範例:
如果 dhallsten 為目前使用者,則此範例返回 true,否則返回 false。 附註:「所有使用者」將始終傳回為 true。 |
USERDOMAIN |
| 當目前使用者已登入到 Tableau Server 時,返回該使用者的網域。如果 Tableau Desktop 使用者在網域上,則返回 Windows 網域。否則,此函數返回一個空字串。 範例:
|
USERNAME |
| 返回目前使用者的使用者名。當使用者已登入時,這是 Tableau Server 或 Tableau Cloud 使用者名;否則為 Tableau Desktop 使用者的本機或網路使用者名。 範例:
如果經理 dhallsten 已登入,則僅當檢視中的「Manager」欄位為「dhallsten」時,此函數才會返回 True。用作篩選器時,此計算欄位可用於建立使用者篩選器,該篩選器僅顯示與登入到伺服器的人員相關的資料。 |
建立使用者計算
使用者計算直接對您在 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] (人員)工作表中的使用者只會看到空白視覺效果。
另請參閱
使用者計算(連結在新視窗開啟)免費訓練視訊