データの結合

Tableau で分析するデータは、ビューの特定のフィールド (つまり列) で関連付けられた表の集まりで構成されています。結合は、共通のフィールド上の関連データを組み合わせる方法です。結合を使用したデータの組み合わせの結果は、データの列を追加することによって通常は横方向に拡張された仮想テーブルです。

: テーブルを結合する際は、結合させるフィールドが同じデータ型である必要があります。テーブルの結合後にデータ型を変更すると、結合が壊れます。

たとえば、パブリッシャー用のデータを分析するとします。パブリッシャーは、2 つの表を持つことができます。最初の表には、ID 番号、姓、名、およびパブリッシャーのタイプが含まれます。2 つ目の表には、出版した書籍の ID 番号、価格、印税、タイトルが含まれます。2 つの表の関連フィールドは ID の可能性があります。

表 1

ID パブリッシャーのタイプ
20034 Adam Davis 独立
20165 Ashley Garcia
20233 Susan Nguyen 小/中

表 2

本のタイトル 価格 印税 ID
Weather in the Alps 19.99 5,000 20165
My Physics 8.99 3,500 20800
The Magic Shoe Lace 15.99 7,000 20034

これらの 2 つの表をまとめて分析するには、[ID] で表を結合し、「指定された出版社から作者に支払われた印税の金額」などの質問に回答することができます。結合を使用して表を組み合わせることにより、異なる表からの関連データを分析で表示および使用できます。

ID パブリッシャーのタイプ 本のタイトル 価格 印税
20034 Adam Davis 独立 The Magic Shoe Lace 15.99 7,000
20165 Ashley Garcia Weather in the Alps 19.99 5,000

結合タイプの概要

一般的に、Tableau でデータの組み合わせに使用できる結合には、内部、左、右、完全外部の 4 つのタイプがあります。結合できる表と使用できる別の結合タイプは、接続しているデータベースまたはファイルによって異なります。データに接続し、キャンバスに 2 つ以上の表が表示された後で結合ダイアログを確認することで、データでサポートされる結合タイプを知ることができます。

結合タイプ 結果 説明
内部

内部結合を使用して表を組み合わせると、結果は両方の表に一致がある値を含む表になります。

 

左結合を使用して表を組み合わせると、結果は左の表のすべての値および右の表からの一致する値を含む表になります。

左の表の値に対応する一致が、右の表にない場合、データ グリッドに NULL 値が表示されます。

右結合を使用して表を組み合わせると、結果は右の表のすべての値および左の表からの一致する値を含む表になります。

右の表の値に対応する一致が、左の表にない場合、データ グリッドに NULL 値が表示されます。

完全外部

完全外部結合を使用して表を組み合わせると、結果は両方の表のすべての値を含む表になります。

いずれかの表の値が、他の表と一致しない場合、データ グリッドに NULL 値が表示されます。

ユニオン ユニオンは結合の一種ではありませんが、1 つの表の行にあるデータを別の表に追加することによって 2 つ以上の表を組み合わせる別の方法です。ユニオンを実行する 2 つの表のフィールド数が同じであり、両方のフィールドで名前とデータ型が一致していることが理想です。ユニオンの詳細については、データのユニオン作成を参照してください。

同じデータベースの表を組み合わせる

同じデータベース、ワークブック (Excel の場合)、ディレクトリ (テキストの場合) に保存されている表を分析する必要がある場合は、次の手順に従って表を結合します。同じデータベースの表を組み合わせるには、データ ソース内で 1 つの接続のみが必要です。一般的に、同じデータベースから表を結合することで、パフォーマンスが向上します。これは、同じデータベース上に保存されているデータのクエリの場合、所要時間が短くなり、データベースのネイティブの機能を活用して結合を実行するためです。

注:組み合わせる表の詳細レベルによって、代わりにデータ ブレンドを検討することができます。詳細については、データのブレンドを参照してください。

表の結合するには

  1. Tableau Desktop で: スタート ページの [接続] で、データに接続するコネクタをクリックします。この手順では、Tableau データ ソースの最初の接続を作成します。

    Web 作成で[ホーム] または [検索] ページで [作成] > [ワークブック] をクリックし、新しいワークブックを開始してデータに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。

  2. ファイル、データベース、またはスキーマを選択した後、表をダブルクリックするか、キャンバスにドラッグします。

    注: データ ソースの設定中に、web で作成しているか、 (Tableau Desktop から)Tableau Server にサインインしている場合は、推奨したテーブルにアクセスするとデータを簡単に結合することができます。詳細については、認定、推奨データ ソースおよびテーブルの使用を参照してください。

  3. 別の表をダブルクリックまたはキャンバスにドラッグしてから、結合関係をクリックして結合句を追加し、結合タイプを選択します。

  4. データ ソースで使用されている利用可能な表からフィールド、追加した表から結合演算子およびフィールドを選択し、1 つ以上の結合句を追加します。結合句を検査し、予想どおりに表を接続しているかどうかを確認します。

    たとえば、発注情報の表と別の情報を返す表があるデータ ソースでは、両方の表にある "Order ID (注文 ID)" フィールドに基づき、内部結合を使用して 2 つの表を結合できます。

    注: 不要な結合句を削除するには、結合句の右側にカーソルを移動すると表示される、 "x" をクリックします。

  5. 終了したら、[結合] ダイアログを閉じます。

結合を作成した後、データ グリッドを確認し、結合によって期待する結果が得られていることを確認します。詳細については、データ グリッドで結合の結果を確認するを参照してください。結合のトラブルシューティングを行うには、結合のトラブルシューティングを参照してください。

続行して分析用にデータ ソースを準備します。フィールドの名前の変更とリセット、計算の作成、データ インタープリターによるデータのクリーニング、フィールドのデータ型の変更などを実行できます。

結合キーの NULL 値について

一般的に、結合はデータベース レベルで実行されます。表の結合に使用しているフィールドに NULL 値が含まれている場合、ほとんどのデータベースでは NULL 値を含む行以外のデータを返します。ただし、Excel、テキスト、または Salesforce 接続を使用する単一接続データ ソースをセットアップした場合、Tableau によって NULL 値を含むフィールドと NULL 値を含む別のフィールドの結合を許可する追加オプションが提供されます。

NULL 値で結合するには

  • データ ソースを設定した後、[データ ソース] ページで [データ] > [Null 値を Null 値に結合する] を選択します。

たとえば、データの表が 2 つあり、それらを結合するとします。(Orders_JuneOrders_July)

Orders_June Orders_July
ID 場所
1 ニューヨーク
2  
3 マイアミ
ID 場所
1 ニューヨーク
2  
3 マイアミ

[ID][場所] フィールドの両方を結合した場合、ほとんどのデータベースは次のデータの表を返します。

結合 (Orders_June と Orders_July)

ID 場所 ID(Orders_July) Location (Orders_July)
1 ニューヨーク 1 ニューヨーク
3 マイアミ 3 マイアミ

データ ソースで 1 つの Excel、テキスト、または Salesforce 接続を使用している場合は、[データ] > [Null 値を Null 値に結合する] を選択すると次の表が返されます。

結合 (Orders_June と Orders_July)

ID 場所 ID(Orders_July) Location (Orders_July)
1 ニューヨーク 1 ニューヨーク
2 NULL 2 NULL
3 マイアミ 3 マイアミ

注:このオプションは、テキスト、Excel、および Salesforce を使用する単一接続のデータ ソースで使用できます。このオプションを使用するデータ ソースに 2 つ目の接続を追加すると、結合によって既定の動作 (null 値の行を除外する) に戻されます。

異なるデータベースの表を組み合わせる

Tableau バージョン 10.0 以降、異なるデータベース、ワークブック (Excel の場合)、ディレクトリ (テキストの場合) に保存されている表の分析が必要な場合は、次の手順に従い、クロスデータベース結合を使用して表を結合します。

クロスデータベース結合を行うには、最初にマルチ接続データ ソースを設定する必要があります。つまり、表を結合する前に各データベースに新しい接続を作成します。複数のデータベースに接続する場合、データ ソースはマルチ接続データ ソースになります。別の社内システムを使用する組織でデータを分析する必要がある場合や、社内外のグループと両方で別に管理されるデータを操作する必要がある場合、マルチ接続データ ソースを使用すると都合がよい場合があります。

注:多くの場合、データを組み合わせる主な方法はクロスデータベース結合を使用することです。ただし、代わりにデータ ブレンドを使用してデータを組み合わせなければならない場合があります。詳細については、データのブレンドを参照してください。

クロスデータベース結合を使用して表を結合すると、キャンバスの表とデータグリッドの列に色が付けられ、データの接続がどこから来たかを示します。

異なるデータベースの表を結合するには

  1. Tableau Desktop で:スタート ページの [接続] で、データに接続するコネクタをクリックします。この手順では、Tableau データ ソースの最初の接続を作成します。

    Web 作成で: [ホーム] または [検索] ページで [作成] > [ワークブック] をクリックし、新しいワークブックを開始してデータに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。

  2. ファイル、データベース、またはスキーマを選択した後、表をダブルクリックするか、キャンバスにドラッグします。

  3. 左のペインで、[接続] の下で [追加] ボタン (Web 作成では ) をクリックして、新しい接続を Tableau データ ソースに追加します。別のデータベースに関連データが保存されている場合にのみ、新しい接続が必要です。

    注: 必要なコネクタが [接続] リストで利用できない場合、結合するソースの組み合わせでクロスデータベース結合がサポートされていません。これには、キューブ データ (Microsoft Analysis Services など)、ほとんどの抽出専用データ (Google Analytics および OData など)、Tableau Server データ ソースへの接続が含まれます。表を結合する代わりに、データ ブレンドの使用を検討します。詳細については、データのブレンドを参照してください。

  4. データ ソースで使用されている利用可能な表からフィールド、追加した表から結合演算子およびフィールドを選択し、1 つ以上の結合句を追加します。結合句を検査し、予想どおりに表を接続しているかどうかを確認します。

    たとえば、発注情報の表、および別の情報を返す表があるデータ ソースでは、両方の表にある "Order ID (注文 ID)" フィールドに基づき、2 つの表を結合できます。結合タイプを選択します。

    注: 不要な結合句を削除するには、結合句の右側にカーソルを移動すると表示される、 "x" をクリックします。

  5. 終了したら、[結合] ダイアログ ボックスを閉じます。

    表と列に色を付け、データの接続がどこから来たかを示します。

クロスデータベース結合を作成した後、続行して分析用にマルチ接続データ ソースを準備します。フィールドの名前の変更とリセット、計算の作成、データ インタープリターによるデータのクリーニング、フィールドのデータ型の変更などを実行できます。

結合のトラブルシューティングを行うには、結合のトラブルシューティングを参照してください。

クロスデータベース結合でのパフォーマンスの向上

Tableau Desktop および Tableau Server のバージョン 2019.3 より、Hyper ではなく接続されているデータベースを使用して結合の実行を Tableau に許可することにより、単一ファイル接続と単一データベース接続のデータを結合する際のパフォーマンスを向上させることができます。このオプションを有効にすると、Tableau は最も高速なオプション (Hyper または接続されているデータベース) を選択します。Tableau が接続されているデータベースを使用する場合、ファイル接続のデータはデータベース内の一時表に移動され、そこで結合が実行されます。

重要: データが一時的に Tableau の外部に移動されているため、接続先のデータベースが信頼できるソースからのものであることを確認してください。

このオプションは、次の条件が満たされる場合にのみ使用できます。

  • ファイル サイズは 1 MB 未満です。
  • ファイルは Microsoft Excel、PDF、またはテキスト (.csv、.txt、.tsv、.tab) のファイル タイプです。
  • 接続されているデータベースは、次のいずれかです。
    • Microsoft SQL Server
    • Oracle
    • PostgreSQL
    • Vertica
  • Web 作成で: [ユーザーに Web 作成の使用を許可] オプションが有効になります。

    また、サイト管理者は、Tableau Server の [設定] > [全般] タブで [データベース間結合] オプションを設定し、ユーザーが利用できるオプションを構成することもできます。これらの設定の詳細については、Tableau Server ヘルプの「サイトの Web 作成アクセスの設定」を参照してください。

クロスデータベース結合でのパフォーマンス オプションの有効化

  1. Tableau Desktop で: スタート ページの [接続] で、サポートされているファイル タイプまたはデータベース タイプに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。

    Web 作成で: [ホーム] または [検索] ページで [作成] > [ワークブック] をクリックし、新しいワークブックを開始してデータに接続します。この手順では、Tableau データ ソースの最初の接続を作成します。

  2. 接続先のファイルまたはデータベースを選択した後、表をダブルクリックするか、キャンバスにドラッグします。

  3. 左のペインで、[接続] の下で [追加] ボタン (Web 作成では ) をクリックして、2 番目の接続を Tableau データ ソースに追加します。

    [データ ソース] タブのキャンバスの右上隅に [データベース間結合] オプションが表示されます。

    : このオプションが表示されない場合は、サポートされているデータ ソースだけを使用していること、および 2 つのデータ ソースのみ (ファイル 1 つとデータベース タイプ 1 つ) のみを使用していることを確認してください。それでも表示できない場合、サイト管理者が [クロスデータベース間結合] 構成オプションを [Tableau のみ] に設定した可能性があります。

  4. Tableau による結合の実行方法を変更するには、[データベース間結合] オプションの隣にある [編集] をクリックします。
  5. [データベース間結合] ダイアログで、次のいずれかのオプションを選択し、[OK] をクリックします。

    • Tableau または既存のデータベースを使用。このオプションにすると、Tableau が結合を最も高速に実行するオプション (Hyper または接続されているデータベースのどちらか) を選択できます。

    • Tableau のみを使用。このオプションは既定で、結合の実行に常に Hyper を使用します。

      [データベース間結合] オプションを使用すると、選択した内容に応じ、既定オプションである [Tableau の使用] (Hyper を使用) から、新しいオプションである [データベースの使用] に切り替えられます。

      : [Tableau または既存のデータベースを使用] を選択すると、Tableau は結合の実行時に最も速いオプションを選択します。Tableau が結合の実行に Hyper を使用する場合、このプロセスはバックグラウンドで実行され、結合が行われた場所を特定する指標は表示されません。

  6. データ ソースで使用されている利用可能な表からフィールド、追加した表から結合演算子およびフィールドを選択し、1 つ以上の結合句を追加します。結合句を検査し、予想どおりに表を接続しているかどうかを確認します。

マルチ接続データ ソースについて

マルチ接続データ ソースの操作は、本セクションで説明した、いくつかのキャンバスを使用した他のデータ ソースの場合と同様です。

接続内のユニオン データ

データのユニオンを作成するには、同じ接続のテキスト表または Excel 表を使用する必要があります。つまり、異なるデータベースの表のユニオンを作成することはできません。Tableau Desktop で、異なる Excel ワークブックで、または異なるフォルダー内のファイルで表のユニオンを実行できます。詳細については、ワイルドカード検索を使用してユニオン表を作成する (Tableau Desktop)を参照してください。

異なるデータベースのデータでユニオンを作成する必要がある場合は、Tableau Prep を使用します。

照合順序

照合順序は、文字列の値を比較および並べ替える方法を決定するデータベースのルールです。ほとんどの場合、照合順序はデータベースによって処理されます。ただし、クロスデータベース結合を操作する場合は、照合順序が異なる列を結合する場合があります。

たとえば、クロスデータベース結合が、SQL Server の大文字と小文字を区別する列と、Oracle の大文字と小文字を区別しない列で構成される結合キーを使用しているとします。このような場合、Tableau は間違って解釈される値を最小限に抑えるため、特定の照合順序を他に対してマッピングします。

次の規則はクロスデータベース結合で使用されます。

  • 列がユニコード国際コンポーネント (ICU) の照合順序標準を使用している場合、Tableau は他の列にもその照合順序を使用します。

  • すべての列が ICU の照合順序標準を使用している場合、Tableau は左の表の列にもその照合順序を使用します。

  • いずれの列も ICU の照合順序標準を使用していない場合、Tableau はバイナリ照合順序を使用します。バイナリ照合順序はデータベースのロケールを意味し、列のデータ型によって、文字列の値の比較および並べ替え方法が決まります。

Microsoft Excel データを操作しており、カタカナとひらがなを区別する日本語データなど、結合実行時にデータの大文字と小文字を維持する必要がある場合は、[データ] メニューから [大文字と小文字の維持 (Excel)] オプションを有効にできます。

このオプションを選択すると、Excel データ ソースの値の大文字と小文字の区別が維持され、それが異なる値を結合するのではなく一意的に識別し、結果の行数に違いが起こります。

たとえば、あるワークシートには "House" という値があり、別のワークシートには "House"、"house"、"houSe" という値があります。既定では、2 つの表を結合すると、2 つ目のワークシートの大文字と小文字の違いが無視され、2 つ目のワークシートの "House"、"house"、"houSe" は 1 つ目のワークシートの "House" と結合されます。

[大文字と小文字の維持 (Excel)] オプションを有効にすると、表の結合時に大文字と小文字の違いが識別されます。結合では 1 つ目のワークシートの "House" が 2 つ目のワークシートの値 "House" とのみ一致し、"house" と "houSe" を一意的な別の値として読み取るため、結合結果の表示は少なくなります。

注: このオプションは Tableau がサポートするすべての言語で使用でき、オペレーティング システムのロケールに依存しません。このオプションは、Microsoft Excel データ ソースでのみ使用できます。

計算およびマルチ接続データ ソース

マルチ接続データ ソースでは、計算のサブセットのみを使用できます。

Tableau Desktopで: 次の両方に当てはまる場合、特定の計算を使用できます。

  • マルチ接続データ ソース内のすべての接続でサポートされる

  • Tableau 抽出でサポートされます。

Web 作成時 (Tableau Online および Tableau Server): マルチ接続データ ソース内のすべての接続でサポートされる場合は、特定の計算を使用できます。

ストアド プロシージャ

ストアド プロシージャはマルチ接続データ ソースでは使用できません。

接続内のデータのピボット

データのピボットを作成するには、同じ接続のテキスト列または Excel 列を使用する必要があります。つまり、異なるデータベースの列をピボットに含めることはできません。

抽出ファイルを最初の接続にする(Tableau Desktop のみ)

複数接続のデータ ソースで抽出ファイルに接続する場合は、抽出 (.tde または .hyper) ファイルへの接続が最初の接続になるようにします。これにより、抽出の一部となる可能性のあるカスタマイズを保持します (既定のプロパティ、計算フィールド、グループ、別名などに対する変更を含む)。

注:複数接続のデータ ソースで複数の抽出ファイルに接続する必要がある場合、最初の接続内の抽出のカスタマイズのみが保持されます。

ファイル ベースのデータへの接続を含むマルチ接続データ ソースの抽出(Tableau Desktop のみ)

Excel などのファイル ベースのデータへの接続を含むマルチ接続データ ソースの抽出をパブリッシュする場合は、[外部ファイルを含める] オプションを選択すると、ファイル ベースのデータのコピーがデータ ソースの一部としてサーバー上に配置されます。この場合、ファイル ベースのデータのコピーをダウンロードでき、そのコンテンツは他のユーザーによってアクセスされます。抽出から意図的に除外したファイルベースのデータに機密情報が含まれている場合は、データ ソースをパブリッシュする際に [外部ファイルを含める] を選択しないでください。

データ ソースのパブリッシュの詳細については、データ ソースのパブリッシュを参照してください。

クエリとクロスデータベース結合について

各接続について、Tableau は結合のデータベースに独立クエリを送信します。結果は、抽出ファイルの形式で一時テーブルに保存されます。

たとえば、「dbo.listings」と「reviews$」という 2 つの表への接続を作成するとします。これらの表は、2 つの異なるデータベース (SQL Server および Excel) に保存されます。Tableau は各接続で独立してデータベースのクエリを行います。データベースはクエリを実行してフィルターや計算などのカスタマイズを適用し、Tableau は各接続の結果を一時テーブルに保存します。この例では、FQ_Temp_1 は SQL Server への接続用の一時テーブル、FQ_Temp_2 は Excel への接続用の一時テーブルです。

SQL Server テーブル

Excel 表

クロス データベース結合を実行すると、Tableau Desktop によって一時テーブルが結合されます。これらの一時テーブルは、Tableau がクロス データベース結合を実行するため必要です。

表を結合した後、"topn" フィルターが適用され、データ グリッドに表示する値の数を最初の 1,000 行に制限します。このフィルターはデータ グリッドの応答性と、[データ ソース] ページの全体的なパフォーマンスを維持するために適用されます。

結合テーブル

データ グリッドで結合の結果を確認する

キャンバスで結合を作成した後、データ グリッドを確認し、結合によって期待する結果が得られていることを確認します。データ グリッドに期待していないデータが表示された場合、結合の変更が必要となる場合があります。

データ グリッドの結果

  • データなし:データ グリッドにデータが表示されない場合、結合条件に使用する結合タイプまたは結合フィールドの変更が必要になる場合があります。結合のフィールド間に不一致が疑われる場合は、代わりに計算フィールドを使用します。詳細については、結合で計算を使用してフィールド間の不一致を解決するを参照してください。

  • 重複データが表示された場合、いくつか実行できることがあります。分析に使用するメジャーの集計を変更することを検討してください。計算を使用する、または代わりにデータ ブレンドを使用します。データのブレンドの詳細については、データのブレンドを参照してください。

  • 不足しているデータ:データ グリッドに不足しているデータがある場合、結合条件に使用する結合タイプまたは結合フィールドの変更が必要になる場合があります。この場合も、結合のフィールド間に不一致が疑われる場合は、代わりに計算フィールドを使用します。詳細については、結合で計算を使用してフィールド間の不一致を解決するを参照してください。

  • 多くの null 値:期待されない null 値が多く表示される場合、結合タイプを完全外部タイプから内部タイプに変更しなければならないことがあります。

  • 1 つの表のすべての null 値:1 つの表のすべての値が null の場合、結合する表の間に一致はありません。これが期待どおりでなかった場合は、結合タイプを変更することを検討してください。

結合で計算を使用してフィールド間の不一致を解決する

結合条件のフィールドが一致しない場合、それは結合条件に使用されているフィールドの値間の不一致であり、データ グリッドにはデータがほとんど、またはまったく表示されません。フィールド間の不一致はいくつかの理由によって発生する可能性がありますが、多くの場合、フィールドの文字列値または日付値の書式設定の不一致によって発生します。多くの場合、計算を使用して結合のフィールド間の不一致を解決できます。

ほとんどの関数を計算で使用して、結合条件のフィールドを作成および置き換えることができます (ただし、集計関数と表計算関数は除く)。

注: 結合の計算は QuickBooks Online、Marketo、Oracle Eloqua、Anaplan、ServiceNow ITSM、および Web データ コネクタではサポートされていません。

文字列の不一致

文字列データを操作する際の一般的な不一致シナリオは、結合条件の一方のフィールドの 1 つが、結合条件のもう一方の 1 つ以上のフィールドと同等の場合に発生します。この場合、計算を使用して 2 つのフィールドを結合し、書式設定を結合条件のもう一方のフィールドと一致させます。

たとえば、次のデータを含む 2 つの表を結合するとします。

パトロン 連絡先
支社 メンバー登録年 借りているユニット 料金 制限の案
Alan

Wang

2000 1 0 15
John Smith 2000 36 3.50 15
Ashley Garcia 2000 243 11.30 15
Fred Suzuki 2000 52 .90 15
名前 会員番号 緊急連絡先 関係 緊急電話番号
Adam Davis 555-0324 Ellen Davis パートナー 555-0884
Alan Wang 555-0356 Jean Wilson 555-0327
Fred Suzuki 555-0188 Jim Suzuki 兄弟 555-3188

Henry Wilson

555-0100 Laura Rodriquez パートナー 555-0103
Michelle Kim 555-0199 Steven Kim パートナー 555-0125

2 つの表の間の共通フィールドは名前のようです。ただし、"Patron (パトロン)" 表には、別の列に姓と名があり、"Contact (連絡先)" 表には、同じ列に姓と名があります。これらの表を名前で結合するには、結合条件の左側の計算を使用して、姓の列と名の列をマージする必要があります。

結果として、結合ダイアログからのみアクセス可能な、結合条件の左側の計算フィールドが生成されます。この計算では、"Patron (パトロン)" 表のフィールドが、結合条件の右側の "Contact (連絡先)" 表のフィールドの書式設定と一致するようになった書式設定に変換されます。

結合で計算を使用すると、次の結合された表が生成されます。 

支社 メンバー登録年 借りているユニット 料金 制限の案 名前 電話番号
Alan Wang 2000 1 0 15 Alan Wang 555-0356
Fred Suzuki 2000 52 .90 15 Fred Suzuki 555-0188

日付の不一致

日付データを操作する際の一般的な不一致シナリオは、結合条件の 1 つのフィールドの日付値が、結合条件の他のフィールドと異なる詳細レベルでキャプチャされた場合に発生します。この場合、結合条件で計算を使用して一方の結合条件のフィールドの書式設定を変更し、書式設定を結合条件のもう一方のフィールドと一致させます。

たとえば、次の 2 つのデータの表があるとします。

プロジェクターのレンタル パトロン
日付 予約タイプ 申請者 ID

1/1/2000

個人 233445589
1/28/2002 学生 365948999
1/29/2002 非営利団体 233448888
12/5/2002 学生 365948999
5/5/2003 非営利団体 334015476
3/12/2004

非営利団体

334015476
3/15/2006 市町村 211896980
7/8/2007 学生 334015476
1/4/2008 個人 560495523
3/8/2009 非営利団体 233445566
2/14/2014

非営利団体

233445566
12/21/2015 非営利団体 233445566
2/10/2016 非営利団体 233445566
ID 支社 メンバー登録年 借りているユニット 料金 制限の案
454613981 Adam Davis 西 2012 25 0 10
232502870 Alan

Wang

2000 1 0 15
298000916 Amanda Smith 2001 54 6.4 15
233445566 Ashley Garcia 2000 243 11.30 15
900005122 Brian Frank 2011 12 .10 10
921491769 Elizabeth Johnson 西 2010 19 .5 10
233445589 Fred Suzuki 2000 52 .90 15
344556677 Henry Wilson 2005 3 .2 15
939502870 Jane Johnson 西 2017 0 0 10
233448978 John Smith 2000 36 3.50 15

新しいパトロンの動向を詳しく調べるには、"Patron (パトロン)" 表を "Projector Rental (プロジェクターのレンタル)" 表に結合すれば、どのようなライブラリ サービスが新規会員の獲得につながるかが分かるかもしれません。2 つの表の間の共通フィールドは "Date (日付)" および "Member since (入会年)" のようです。ただし、各フィールドの日付値は異なる詳細レベルで取り込まれています。これらの表をそれぞれの日付フィールドで結合するには、それぞれの結合条件の計算で DATE 関数を組み合わせて使用することにより、各フィールドの詳細レベルを一致させます。

結合で計算を使用すると、次の結合された表が生成されます。

日付 予約タイプ 申請者 ID ID 支社 メンバー登録年 借りているユニット 料金 制限の案

1/1/2000

個人 233445589 232502870 Alan Wang

2000 1 0.00 15
1/1/2000 個人 233445589 233445589 Fred Suzuki 2000 52 0.90 15
1/1/2000 個人 233445589 233445566 Ashley Garcia 2000 243 11.30 15
1/1/2000 個人 233445589 233448978 John Smith 2000 36 3.50 15

パトロンが自身のメンバーシップを開始した年度にプロジェクターをレンタルしたかどうかを判別するには、ID に基づいて結合に句を 1 つ追加します。

追加の結合条件は、1 人のパトロンのみがプロジェクターをレンタルするためのメンバーシップを開始している可能性があることを示しています。

日付 予約タイプ 申請者 ID ID 支社 結合済み 借りているユニット 料金 制限の案
1/1/2000 個人 233445589 233445589 Fred Suzuki 2000 52 0.90 15

結合のトラブルシューティング

オーバーカウント値または重複データ

複数の表に接続して結合する場合は、データ ソースの非正規化バージョンを設定します。場合によっては、Tableau は複数の表を 1 つの表として扱います。複数の表を 1 つの表として扱う場合、表が結合された後にすべての表がクエリされます。これにより、値がオーバーカウントされる可能性があります。

たとえば、2 つの表があるとします。最初の表には、従業員 ID や給与などの従業員情報が含まれます。2 つめのテーブルには部門名などの組織情報が含まれます。

表 1

従業員 ID 名前 給与
20106 Kim, Michelle 63,000
20107 Wilson, Henry 61,000
20108 Smith, John 65,000

表 2

部門 雇用開始日 従業員 ID 組織
開発 6/16/2016 20289 戦略
サポート 7/28/2015 20107 操作
サポート 8/05/2016 20299 操作
営業担当 8/25/2016 20107 操作

従業員 ID でこれらの表を結合すると、従業員が複数の部門と関連付けられているため、従業員の給与が 2 回以上カウントされます。

従業員 ID 名前 給与 部門 雇用開始日 組織
20107 Wilson, Henry 61,000 サポート 7/28/2015 操作
20107 Wilson, Henry 61,000 営業担当 8/25/2016 操作

この問題を解決するには、次のいずれかを実行できます。

  • 集計の変更:分析に応じて、MIN または AVG 集計を使用して二重計算を削除します。

    たとえば、"Salary (給与)" の集計を "SUM (合計)" から "MIN (最小値)"、"SUM (合計)" から "AVG (平均値)" に変更する場合。

  • 重複値を削除する計算フィールドを作成する:重複しているフィールドの合計を、重複を引き起こしているフィールドのインスタンスの数で除算する計算フィールドを作成できます。

    たとえば、"Salary (給与)" の値は、Wilson、Henry の "Employee ID (従業員 ID)" のインスタンス数によって重複しています。この場合、ビューでは、Salary が次の式を使用する計算フィールドに置き換えられます。SUM ([Salary])/ COUNT ([Employee ID]).

    また、詳細レベルの式を使用して重複データを削除することもできます。詳細については、Tableau ナレッジ ベースの「LOD 計算を使用して重複データを削除する」を参照してください。

  • データのブレンド:データが重複する可能性がある結合を作成する代わりに、共通するフィールドのデータをブレンドすることができます。詳細については、データのブレンドを参照してください。

  • カスタム SQL の使用:Tableau では、カスタム SQL を使用した、データ ソース内の複数の表への接続をサポートしています。GROUP BY 句で結合する前に、表を事前に集計できます。このオプションでは、SQL クエリの記述に関するある程度の知識と、可能であれば、データベース専門家からのサポートが必要になります。Tableau からカスタム SQL クエリへの接続方法の詳細については、カスタム SQL クエリへの接続を参照してください。

壊れた表の結合とクロスデータベース結合

同じデータ ソース内でまたはクロスデータベース結合を使用して表を結合する前に、結合キーのデータ型が一致していることを確認します。結合キーのデータ型が一致していない場合、結合は壊れ、赤い感嘆符とエラー メッセージ「結合フィールドで型が一致していません」で示されます。壊れた結合を修正するには、次のいずれかの提案を実行します。

  • 結合計算を作成することで結合キーを一致させるよう、結合ダイアログでフィールドの書式設定 (データ型を含む) を変更できます。結合計算は、組み合わせる 1 つ以上の表で結合キーの書式設定を変更できる、計算のサブセットをサポートしています。結合計算を作成するには、壊れた結合を持つ表の間の結合関係、書式設定の変更が必要なフィールドの順にクリックしてから、[結合計算の作成] を選択します。詳細については、結合で計算を使用してフィールド間の不一致を解決するを参照してください。

  • テキストまたは Excel ベースのデータの場合は、データ グリッド内のデータ型メニューを使用して、結合キー内のテキスト フィールドまたは Excel フィールドのいずれかのデータ型を変更します。

  • Tableau Desktop のみ:ほとんどの接続では、[カスタム SQL に変換] オプションで、CAST () などの関数を使用し、結合キーのいずれかのフィールドのデータ型を変更できます。[カスタム SQL に変換] オプションは、データ ソースに接続が 1 つだけ含まれている場合にのみ使用可能です。この場合は、2 番目の接続を削除してから、[データ] > [カスタム SQL に変換] を選択します。

このセクションの他の記事

フィードバックをくださりありがとうございます! フィードバックの送信中にエラが発生しました。もう一度やり直すか、メッセージをお送りください