データの結合
多くの場合、目的の分析を実行するには、複数の場所 (異なるテーブルやデータ ソース) からデータを組み合わせる必要があります。データの構造と分析のニーズに応じて、テーブルを組み合わせるためのいくつかの方法があります。
関係と結合
Tableau Desktop での既定の方法は、関係を使用することです。関係は、情報を組み合わせるときに元のテーブルの詳細レベルを保持します。関係を使用すると、コンテキストベースの結合をシート単位で実行でき、各データソースの柔軟性が向上します。ほとんどの場合、データを組み合わせる方法として関係が推奨されています。詳細については、関係と結合の違いを参照してください。
ただし、意図的なフィルター―処理や重複など、関係と比較して結合が制御され望ましい結果となるように、結合を直接確立する必要がある場合があります。
注: 関係は、最終的に結合を活用します (バックグラウンドで実行)。たとえば、データ ソース間の関係では、Viz が異なるデータ ソースのテーブルのフィールドを使用するときに、クロスデータベース結合が生成されます。そのため、クロスデータベース結合のパフォーマンス向上が関連している場合もあります。
一般的な問題
- 結合を表示、編集、または作成するには、関係キャンバスで論理テーブル (データ ソースを初めて開くか作成する際に表示される領域) を開き、結合キャンバスにアクセスする必要があります。
- パブリッシュされた Tableau データ ソースは結合に使用できません。パブリッシュされたデータ ソースを結合するには、元のデータ ソースを編集して、結合をネイティブに含めるか、データ ブレンドを使用する必要があります。
- テーブルを結合する際は、結合するフィールドが同じデータ型である必要があります。テーブルの結合後にデータ型を変更すると、結合が壊れます。
- 結合句に使用するフィールドは、結合を解除しなければ削除することができません。データを結合して重複するフィールドをクリーンアップするには、Tableau Desktop ではなく Tableau Prep Builder を使用します。
ヒント: Tableau Desktop には結合を作成し、基本的なデータを形成する機能がありますが、Tableau Prep Builder はデータの準備を目的として設計されています。複数の結合の実行、フィールド名のクリーンアップ、データ型の変更、複数のピボットの実行、またはその他の関連するデータの準備などを行う場合は、Tableau Prep Builder(新しいウィンドウでリンクが開く) の使用を検討してください。
結合の作成
結合を作成するには、関連するデータ ソースまたはソースに接続します。データへの接続を参照してください。
これらは、同じデータ ソース (データベース内のテーブルや Excel スプレッドシート内のシートなど)、または異なるデータ ソース (クロスデータベース結合と呼ばれます) に含めることができます。クロスデータベース結合を使用してテーブルを組み合わせると、キャンバスのテーブルとデータ グリッドの列に色が付けられ、データがどの接続から来ているかが示されます。
注: パブリッシュされた Tableau データ ソースを含むすべてのデータ ソースでクロスデータベース結合がサポートされているわけではありません。パブリッシュされたデータ ソースを結合するには、元のデータ ソースを編集して、結合をネイティブに含めるか、データ ブレンドを使用します。
最初のテーブルをキャンバスにドラッグします。
メニューから [開く] を選択するか、最初のテーブルをダブルクリックして結合キャンバス (物理レイヤー) を開きます。
別のテーブルをダブルクリックするか、結合キャンバスにドラッグします。
次のテーブル全体が別のデータ ソースから作成されている場合、左のペインの [接続] から [追加] ボタン (Web 作成では ) をクリックして、新しい接続を Tableau データ ソースに追加します。接続を選択した状態で、目的のテーブルを結合キャンバスにドラッグします。
結合アイコンをクリックして既存の結合を構成します。データ ソースで使用されている利用可能なテーブルからフィールドを選択し、追加したテーブルから結合演算子およびフィールドを選択して、1 つ以上の結合句を追加します。
注: 不要な結合句を削除するには、結合句の右側にカーソルを移動すると表示される、 "x" をクリックします。
完了したら、[結合] ダイアログと結合キャンバスを閉じます。
結合を作成したら、データの結合します。結合のトラブルシューティングを行うには、データの結合を参照してください。
結合のしくみ
結合は、結合句と同様に、その型によって定義されます。
結合タイプ
一般的に、Tableau で使用できる結合には、内部、左、右、完全外部の 4 つのタイプがあります。複数テーブルのデータを組み合わせるために使用する結合タイプが不明な場合は、リレーションシップを使用する必要があります。
結合タイプ | 結果 |
内部 | 内部結合を使用してテーブルを組み合わせると、結果は両方のテーブルに一致がある値を含むテーブルになります。 値が両方のテーブルで一致しない場合、その値は完全に削除されます。 |
左 | 左結合を使用してテーブルを組み合わせると、結果は左のテーブルのすべての値および右のテーブルからの一致する値を含むテーブルになります。 左のテーブルの値に対応する一致が、右のテーブルにない場合、データ グリッドに NULL 値が表示されます。 |
右 | 右結合を使用してテーブルを組み合わせると、結果は右のテーブルのすべての値および左のテーブルからの一致する値を含むテーブルになります。 右のテーブルの値に対応する一致が、左のテーブルにない場合、データ グリッドに NULL 値が表示されます。 |
完全外部 | 完全外部結合を使用してテーブルを組み合わせると、結果は両方のテーブルのすべての値を含むテーブルになります。 いずれかのテーブルの値が、他のテーブルと一致しない場合、データ グリッドに NULL 値が表示されます。 |
ユニオン | ユニオンは結合の一種ではありませんが、1 つのテーブルの行にあるデータを別のテーブルに追加することによって 2 つ以上のテーブルを組み合わせる別の方法です。ユニオンを実行する 2 つのテーブルのフィールド数が同じであり、両方のフィールドで名前とデータ型が一致していることが理想です。ユニオンの詳細については、データのユニオンを参照してください。 |
すべてのデータベースですべての結合のタイプがサポートされているわけではありません。結合ダイアログでオプションが使用できない場合は、データ ソースの制約が原因となっている可能性があります。
結合句
結合は、1 つまたは複数の結合句を設定することによって実行されます。結合句は、どのフィールドをテーブル間で共有し、対応する行をどのように照合するかを Tableau に指示します。たとえば、同じ ID を持つ行は結果のテーブル内に並べられます。
ほとんどの場合、結合句は等値演算子 (=) を使用して、同じ値を持つ行を照合します。より小さい (<) や等しくない (<>) などの非等値結合を実行することもできます。
また、結合には複数の結合句を含めることができます。たとえば、姓と名が別々の列に保存されている場合は、"First name = First name (名 = 名)" と "Last name = Last name (姓 = 姓)" の場合にのみ結合すると効果的です。行を結合する場合は、両方の条件が true である必要があります。または、姓が共有されているが、名が共有されていないときに結果を返す必要がある場合、結合句は "First name <> First name (名 <> 名)" と "Last name = Last name (姓 = 姓)" になります。
結合句には計算を含めることもできます。たとえば、結合句は名前フィールドの連結 "[First name] + [Last name] = [First name] + [Last name]" になります。すべてのデータ ソース接続が結合句での計算をサポートしているわけではないことに注意してください。
結合キーの NULL 値について
一般的に、結合はデータベース レベルで実行されます。テーブルの結合に使用しているフィールドに NULL 値が含まれている場合、ほとんどのデータベースでは NULL 値を含む行以外のデータを返します。ただし、特定の単一接続データ ソースの場合は、Tableau から、NULL 値を含むフィールドと NULL 値を含む別のフィールドとの結合を許可する追加オプションが提供されます。
データ ソースを設定した後、[データ ソース] ページで [データ] > [Null 値を Null 値に結合する] を選択します。
このオプションがグレー表示されている場合は、データ ソースでは使用できません。このオプションを使用するデータ ソースに 2 つ目の接続を追加すると、結合によって既定の動作 (NULL 値の行を除外する) に戻されます。
クロスデータベース結合
Tableau では、異なるデータソースのテーブルからの結合が可能ですが、プラットフォームに互換性があるデータベース側からの制限もあります。クロスデータベース結合を行うには、複数接続データ ソースを設定する必要があります。つまり、テーブルを結合する前に各データベースに新しい接続を作成します。
- 最初のデータ ソースに接続したら、[データ] ペインの [追加] オプションを使用して、別の接続を追加します。
注: 別の接続を追加するときに、必要なコネクタが [接続] リストから利用できない場合は、結合するソースの組み合わせに対してクロスデータベース結合がサポートされていません。これには、キューブ データ (Microsoft Analysis Services など)、ほとんどの抽出専用データ (Google Analytics および OData など)、パブリッシュされた Tableau Server データ ソースへの接続が含まれます。
- これにより、まったく異なるデータ ソースではなく、2 つ目の接続が作成されます。[データ ソース] タブで、2 つ以上の接続を切り替えることができます。
- ワークシートに移動して分析を開始すると、データ ソースは単一のデータ ソースの組み合わせとして機能します。これは、ワークシート上で切り替えることができる 2 つの独立したデータ ソースと大きく異なる点です。
注: 一般的に、同じデータベースからテーブルを結合すると、パフォーマンスが向上します。これは、同じデータベース上に保存されているデータのクエリの場合、所要時間が短くなり、データベースのネイティブの機能を活用して結合を実行するためです。クロスデータベース結合のパフォーマンスの詳細については、クロスデータベース結合のパフォーマンス向上を参照してください。