ユーザー関数
この記事では、ユーザー関数と Tableau での用途について紹介します。また、例を使用してユーザー計算を作成する方法を示します。
ユーザー関数を使う理由
ユーザー関数は、ユーザー フィルターや、Tableau Server または Tableau Cloud にパブリッシュされたビジュアライゼーションに影響を与える行レベルのセキュリティ フィルターの作成に使用できます。これにより、特定のユーザーのみがビジュアライゼーションを表示できるようにします。
たとえば、Tableau Server または Tableau Cloud にパブリッシュされた部門の従業員ごとの売り上げ実績を表示するビジュアライゼーションがある場合、従業員がビジュアライゼーションにアクセスするときに自分の売上数字のみが表示されるようにする必要があります。
この場合は、ISMEMBEROF 関数を使用して、サーバーにサインインしたユーザーのユーザー名がサーバー上の指定されたグループ ("Managers (マネージャー)" グループなど) のメンバーである場合に true を返すフィールドを作成できます。次に、この計算フィールドを使用してビューにフィルターを設定すると、グループに含まれるユーザーのみがデータを表示できるようになります。
この場合の計算は、次のようになります。
ISMEMBEROF('Managers')
注: グループ名またはユーザー名にアルファベット以外の文字が含まれており、関数を使用する場合には、特殊文字に HTML URL エンコードを使用する必要があります。
アンダースコア、かっこ、感嘆符などの一部の特殊文字は、HTML URL エンコードなしでも使用できます。 _ ( ) ! 他の多くの文字はエンコードする必要があります。
たとえば、関数 ISMEMBEROF("USERS+") は、'%2B' が '+' 記号の HTML URL エンコードなので、ISMEMBEROF("USERS%2B") と書く必要があります。HTML URL エンコードの詳細については、W3schools Web 開発者サイトの「HTML URL エンコードの参照 (英語)」(新しいウィンドウでリンクが開く)を参照してください。
データ アクセスを制御およびカスタマイズするためのユーザー属性関数
Tableau のユーザー関数のうち、ユーザー属性関数と呼ばれる関数のサブセットを使用すると、コンテンツにアクセスしているユーザーに基づいてデータを表示または非表示にすることができます。ユーザー属性関数の機能が動作するためには、認証ワークフローの一部として、Tableau にユーザー属性を渡す必要があります。
作成時の考慮事項:
- ユーザー属性関数は、Tableau Desktop、Tableau Cloud、または Tableau Server で作成されたコンテンツに含めることができます。
- OIDC または SAML シングル サインオン (SSO) ワークフローを介してアクセスされるコンテンツ内のユーザー属性関数は、Tableau Cloud および Tableau Server でサポートされています。
- Tableau Desktop、Tableau Cloud、または Tableau Server で作成する場合、これらの関数を使用したコンテンツのプレビューは利用できません。ユーザー属性関数は、NULL または FALSE 値を返します。ユーザー属性の関数が期待どおりに機能することを確認するため、コンテンツが利用可能になった後にその内容をレビューすることをお勧めします。これらのユーザー関数が含まれるワークフローについては、「Tableau 埋め込み API v3(新しいウィンドウでリンクが開く)」ヘルプ、Tableau Cloud の OIDC(新しいウィンドウでリンクが開く) または SAML(新しいウィンドウでリンクが開く) のトピック、あるいは Tableau Server の OIDC(新しいウィンドウでリンクが開く) または SAML(新しいウィンドウでリンクが開く) のトピックを参照してください。
- ユーザー属性関数は、Tableau Bridge に依存するワークフローでは使用できません。
ワークフロー 1: 埋め込みワークフロー (Tableau 接続済みアプリまたは統合アクセス トークンを使用した JWT)
埋め込みコンテンツのユーザー属性関数 (USERATTRIBUTE および USERATTRIBUTEINCLUDES) は、以下を使用して JSON Web トークン (JWT) で渡されるユーザー属性を介して有効にすることができます。
-
Tableau Cloud 上の Tableau 接続済みアプリ(新しいウィンドウでリンクが開く)
-
Tableau Server 2025.1 以降上の Tableau 接続済みアプリ(新しいウィンドウでリンクが開く)
-
2025 年 12 月以降、Tableau Cloud 上の統合アクセス トークン(新しいウィンドウでリンクが開く)
ユーザー属性が JWT から渡されると、これらの関数を使用して作成された埋め込みコンテンツで、ユーザーに表示されるデータを制御およびカスタマイズすることができます。
注:
-
ワークフローに影響を与える可能性のある既知の問題と制約については、Tableau 埋め込み API v3(新しいウィンドウでリンクが開く) のヘルプを確認してください。
-
ユーザー属性を機能させるには、次の条件を満たす必要があります。
-
Tableau Cloud で、サイト管理者は、1) [認証ワークフローにおけるユーザー アクセスを制御する] 設定を有効にして、2) JWT のユーザー属性クレーム値を使用して、接続済みアプリまたは統合アクセス トークンを構成する必要があり、3) コンテンツ作成者は、ユーザー属性関数 (USERATTRIBUTE または USERATTRIBUTEINCLUDES) を作成する必要があります。
-
Tableau Server で、サーバー管理者が 1) Tableau REST API を使用して、サイトの更新(新しいウィンドウでリンクが開く)メソッドによってユーザー属性機能を有効にし、必要に応じて、features.VizDataServiceClientEnable(新しいウィンドウでリンクが開く) TSM オプションを有効にする、2) JWT のユーザー属性クレーム値を使用して接続済みアプリを構成する、3) コンテンツ作成者がユーザー属性関数(新しいウィンドウでリンクが開く)を作成する必要があります。
詳細については、Tableau 埋め込み API v3 ヘルプの「ユーザー属性を使用したデータ アクセスのカスタマイズと制御(新しいウィンドウでリンクが開く)」を参照してください。
-
ワークフロー 2: SAML または OIDC による直接サインインを使用するコンテンツ ワークフロー
上記の埋め込みワークフローに加えて、ユーザー属性関数の機能は、追加の埋め込みワークフローと非埋め込みワークフローにも対応できるようになります。ユーザーが OIDC または SAML SSO を使用してサインインするように構成されている場合、コンテンツ内のユーザー属性関数は、ユーザーがコンテンツにアクセスするためにサインインしたときにキャプチャされる OIDC クレームまたは SAML アサーションで渡されるユーザー属性を介して有効にすることができます。属性がクレームまたはアサーションから渡されると、これらの関数 (USERATTRIBUTE および USERATTRIBUTEINCLUDES) を使用して作成されたコンテンツで、ユーザーに表示されるデータを制御およびカスタマイズできます。
注:
-
ワークフローに影響を与える可能性のある既知の問題と制限については、Tableau Cloud の「OIDC」(新しいウィンドウでリンクが開く)または「SAML」(新しいウィンドウでリンクが開く)のトピック、あるいは Tableau Server の「OIDC」(新しいウィンドウでリンクが開く)または「SAML」(新しいウィンドウでリンクが開く)のトピック (Tableau Server 2026.2 以降) を参照してください。
-
ユーザー属性が機能するには、管理者がユーザー属性を OIDC クレームまたは SAML アサーションに含め、コンテンツ作成者がユーザー属性関数 (USERATTRIBUTE または USERATTRIBUTEINCLUDES) を作成する必要があります。
Tableau で利用可能なユーザー関数
FULLNAME( )
| 構文 | FULLNAME( )
|
| 出力 | 文字列 |
| 定義 |
現在のユーザーのフル ネームを返します。 |
| 例 | FULLNAME( ) サインインしたユーザーのフルネームを返します (「Hamlin Myrer」など)。 [Manager] = FULLNAME( ) Hamlin Myrer というマネージャーがサインインしている場合、この例では、ビューの [マネージャー] フィールドに「Hamlin Myrer」が含まれているときにのみ TRUE を返します。 |
| 注 |
この関数は以下をチェックします。
ユーザー フィルター フィルターとして使用すると、 |
ISFULLNAME
| 構文 | ISFULLNAME("User Full Name")
|
| 出力 | ブール値 |
| 定義 |
現在のユーザーのフル ネームが指定されたフル ネームに一致する場合に |
| 例 | ISFULLNAME("Hamlin Myrer")
|
| 注 |
この関数は以下をチェックします。
|
ISMEMBEROF
| 構文 | ISMEMBEROF("Group Name")
|
| 出力 | ブール値または Null |
| 定義 |
現在 Tableau を使用しているユーザーが指定された文字列と一致するグループのメンバーである場合は |
| 例 | ISMEMBEROF('Superstars')ISMEMBEROF('domain.lan\Sales')
|
| 注 |
Tableau Cloud または Tableau Server にユーザーがサインインしている場合、グループ メンバーシップは Tableau グループによって決定されます。指定された文字列が「全ユーザー」の場合、この関数は TRUE を返します。
ユーザーのグループ メンバーシップに変更が加えられた場合、グループ メンバーシップに基づくデータの変更は、新しいセッションを使用してワークブックまたはビューに反映されます。既存のセッションには古いデータが反映されます。 |
ISUSERNAME
| 構文 | ISUSERNAME("username")
|
| 出力 | ブール値 |
| 定義 | 現在のユーザーのユーザー名が、指定された username に一致する場合は TRUE を、一致しない場合は FALSE を返します。 |
| 例 | ISUSERNAME("hmyrer")
|
| 注 |
この関数は以下をチェックします。
|
USERDOMAIN( )
| 構文 | USERDOMAIN( )
|
| 出力 | 文字列 |
| 定義 | 現在のユーザーのドメインを返します。 |
| 注 |
この関数は以下をチェックします。
|
USERNAME( )
| 構文 | USERNAME( )
|
| 出力 | 文字列 |
| 定義 | 現在のユーザーのユーザー名を返します。 |
| 例 | USERNAME( ) サインインしているユーザーのユーザー名 (「hmyrer」など) を返します。 [Manager] = USERNAME( ) hmyrer というマネージャーがサインインしている場合、この例では、ビューの [マネージャー] フィールドに「hmyrer」が含まれているときにのみ TRUE を返します。 |
| 注 |
この関数は以下をチェックします。
ユーザー フィルター フィルターとして使用すると、 |
USERATTRIBUTE
注: この機能を使用する前に、「データ アクセスを制御およびカスタマイズするためのユーザー属性関数」を参照してください。詳細については、ご使用のワークフローに応じて、『埋め込み API v3 ヘルプ』の「認証と埋め込みビュー」(新しいウィンドウでリンクが開く)、Tableau Cloud の OIDC(新しいウィンドウでリンクが開く) または SAML(新しいウィンドウでリンクが開く) のトピック、または Tableau Server の OIDC(新しいウィンドウでリンクが開く) または SAML(新しいウィンドウでリンクが開く) のトピックを参照してください。
| 構文 | USERATTRIBUTE('attribute_name')
|
| 出力 | 文字列または Null |
| 定義 |
|
| 例 |
「地域」が、JWT または SAML 応答に含まれ、Tableau に渡されるユーザー属性であるとします。 ワークブックの作成者は、ビジュアライゼーションを設定し、指定された地域に基づいてデータをフィルターすることができます。そのフィルターでは、次の計算を参照できます。 [Region] = USERATTRIBUTE("Region")
西部地域の User2 が埋め込まれたビジュアライゼーションを表示すると、Tableau は適切な西部地域のデータのみを表示します。 |
| 注 | <'attribute_name'> が複数の値を返すと予測される場合は、USERATTRIBUTEINCLUDES 関数を使用することができます。 |
USERATTRIBUTEINCLUDES
注: この機能を使用する前に、「データ アクセスを制御およびカスタマイズするためのユーザー属性関数」を参照してください。詳細については、ご使用のワークフローに応じて、『埋め込み API v3 ヘルプ』の「認証と埋め込みビュー」(新しいウィンドウでリンクが開く)、Tableau Cloud の OIDC(新しいウィンドウでリンクが開く) または SAML(新しいウィンドウでリンクが開く) のトピック、または Tableau Server の OIDC(新しいウィンドウでリンクが開く) または SAML(新しいウィンドウでリンクが開く) のトピックを参照してください。
| 構文 | USERATTRIBUTEINCLUDES('attribute_name', 'expected_value')
|
| 出力 | ブール値 |
| 定義 |
次の両方が true の場合に
そうでない場合は |
| 例 |
「地域」が、JWT または SAML 応答に含まれ、Tableau に渡されるユーザー属性であるとします。 ワークブックの作成者は、ビジュアライゼーションを設定し、指定された地域に基づいてデータをフィルターすることができます。そのフィルターでは、次の計算を参照できます。 USERATTRIBUTEINCLUDES('Region', [Region])
西部地域の User2 が埋め込まれたビジュアライゼーションにアクセスすると、Tableau はユーザー属性 [地域] が [地域] フィールドの値のいずれかと一致するかどうかをチェックします。true である場合、ビジュアライゼーションは適切なデータを表示します。 北部地域の User3 が同じビジュアライゼーションにアクセスすると、[地域] フィールドの値と一致するものがないため、データを表示することができません。 |
ユーザー計算の作成
ユーザー計算は、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 (売上高)" を [マーク] カードの [色] にドラッグします。
-
[列] シェルフで [経度] フィールドを選択し、キーボードの Control (Mac では Command) を押したままコピーします。コピーを [列] シェルフにある元データの右側にドラッグします。
-
[マーク] カードで、2 番目 (下部) の [経度] タブをクリックします。
-
[データ] ペインから "Region (地域)" を [マーク カード] の [色] にドラッグします。
右側のマップ ビューが新しい色を使用して更新されます。
-
[マーク] カードで、[マーク タイプ] ドロップダウンをクリックし、[マップ] を選択します。
-
[マーク] カードの [不透明度] で [色] をクリックし、スライダーを 50% に調整します。
-
[マーク] カードで、最初の [経度] タブをクリックします。
-
[マーク] カードで [色] > [色の編集] をクリックし、次にカラー パレットのドロップダウン リストから [灰色] を選択します。
左側のマップ ビューが更新されます。
-
[列] シェルフの右側にある [経度] フィールドを右クリックして、[二重軸] を選択します。
マップは次のようになります。
ステップ 3: ユーザー計算の作成
-
[分析] > [計算フィールドの作成] を選択します。
-
開いた計算エディターで、次の操作を実行します。
-
計算フィールドに "User Filter (ユーザー フィルター)" と名前を付けます。
-
次の式を入力します。
[Regional Manager] = USERNAME() OR ISMEMBEROF("National Managers")この計算では、ユーザーが "Region (People) (地域 (人))" フィールドに含まれているか、または "National Managers (統括マネージャー)" グループに含まれているかを確認します。含まれている場合は、true を返します。
-
終了したら、[OK] をクリックします。
新しい計算フィールドが [データ] ペインの [ディメンション] の下に表示されます。他のフィールドと同様に、このフィールドを 1 つ以上のビジュアライゼーションで使用できます。
ステップ 4: [フィルター] シェルフへのユーザー計算の追加
-
[データ] ペインの [ディメンション] から、"User Filter (ユーザー フィルター)" を [フィルター] シェルフまでドラッグします。
-
開いた [フィルター] ダイアログ ボックスで [True] を選択してから、[OK] をクリックします。
注: Tableau Server または Tableau Cloud にサインインしていない場合は、[True] オプションを表示できません。Tableau Desktop で、Tableau Server または Tableau Cloud にサインインして選択します。詳細については、Tableau Desktop から Tableau Server または Tableau Cloud にサインインする(新しいウィンドウでリンクが開く)を参照してください。
ステップ 5: 計算のテスト
-
Tableau Desktop で、ワークスペースの右下隅にある [ユーザーとしてフィルター] ドロップダウンをクリックし、ユーザーを Sadie Pawthorne に変更します。
Sadie は "People (人)" シートの "West (西部)" 地域に割り当てられているため、マップが更新されて "United States (米国)" の "West (西部)" 地域のみが表示されます。
-
[ユーザーとしてフィルター] ドロップダウンをもう一度選択し、ユーザーを Roxanne Rodriguez に変更します。
Roxanne は "People (人)" シートの "Central (中央部)" 地域に割り当てられているため、マップが更新されて "United States (米国)" の "Central (中央部)" 地域のみが表示されます。
-
[ユーザーとしてフィルター] ドロップダウンを再度選択し、ユーザーを [Chuck Magee] に変更します。
Chuck は "People (人)" シートの "East (東部)" 地域に割り当てられているため、マップが更新されて "United States (米国)" の "East (東部)" 地域のみが表示されます。
-
[ユーザーとしてフィルター] ドロップダウンをもう一度選択し、ユーザーを Fred Suzuki に変更します。
Fred は "People (人)" シートの "South (南部)" 地域に割り当てられているため、マップが更新されて "United States (米国)" の "South (南部)" 地域のみが表示されます。
-
[ユーザーとしてフィルター] ドロップダウンをもう一度選択し、ユーザーを自分に戻します。
自分はサーバーの "National Managers (統括マネージャー)" グループに含まれているため、マップが更新されてすべてのデータが表示されます。
ビューを Tableau Server または Tableau Cloud にパブリッシュすると、動作が保持されます。"National Managers (統括マネージャー)" グループまたは "Sample - Superstore (サンプル - スーパーストア)" データ ソースの "People (人)" シートに記載されていないユーザーには、空白のビジュアライゼーションのみが表示されます。
