BI内でデータをクロスジョインする方法を2つ紹介したいと思います。BI・データ分析を学習しよう!!クロスジョインとは?クロスジョインは、複数のテーブルの特定の列の全ての組み合わせを作るデータ結合(ジョイン)手法です。BIで複数のテーブルを結合する方法で紹介した内部結合があります。クロスジョインのイメージを持ってもらいたいと思います。下図のような2つのマスタテーブルがあるとします。【テーブル1:期間】2023年の1月~12月までの月別テーブルです。製品A~Gまでの製品別マスタです。これら2つのテーブルは互いに独立して存在している場合、クロスジョインを使うことで、この2つの列の全ての組み合わせとなる新たなテーブル・列を作成することが可能となります。【下図:クロスジョイン後のデータ】どのようなケースで使うのか?特殊なケースを除いて、正直クロスジョインをそれ単独で使うケースは少ないと感じます。元々はマトリックスビジュアルで空白を埋めるために活用していました。下図のように製品を縦軸に、期間を横軸とした場合に、製品×期間で売上金額を確認したい場合などです。マトリックスで空白値含めて全ての値を表示する機能で実績データからマトリックスが作れるようになったので、その必要性は薄れてしまいましたが、、、ただ、仮に何らかの理由で過去の実績データには表示されない製品の売上高(たまたま製品の売上がなかった)も表示したい場合は、マスタ同士をつなげてクロスジョインすることで、その事実を可視化できます。このようにデータに網羅性を持たせる必要がある場合等の、細かい活用方法はまだまだ存在しているのかなと思います。Queryを使う方法の2つを紹介します。DAXを使う方法DAXを使う場合の手順は下記の通りです。1.新しいテーブルを作成する2.CrossJoin関数を使う下図のようにCrossJoin関数で、クロス結合させたいテーブルを指定します。テーブルの中の特定の列を選択したい場合は、Summarize関数と組み合わせることで、実現できます。CrossJoin関数の引数は下記の通り2つです。CROSSJOIN(テーブル1,テーブル2)。クロス結合の対象テーブルを指定する形となります。Queryを使った方法です。1.データを複製する今回クエリを結合させたい方の一方のテーブルを複製します。※あるいは必要な列のみで作りたい場合は、Table.SelectColumnsで指定もできる。2.カスタム列を追加して結合先を指定するカスタム列の式は、結合先のシート名を指定するだけで大丈夫です。3.展開する上図の赤丸部をクリックして、クロスジョインさせたい列を選択して、OKボタンを選択します。今回のケースでは、テーブルの中に1列しかないですが、複数列ある場合は結合させたい列のみチェックマークを入れて、他は外します。完成!一見DAXを使う方が直感的で簡単そうに見えるのですが、Summarize関数を使ったり、DAXを組み合わせたりする必要があるのでちょっと複雑な気がします。こっちの方が速いですね。Queryを使うやり方の方が列を直接指定できたり、カスタマイズ性には優れていると感じます。手順が多いので、構築するまで時間がかかるのが難点です。どっちを使うかは、両者を比較しての好みや、レポート・データ毎でケース・バイ・ケースで対応するのがいいかなと思います。BIの使い方やデータ分析のノウハウを伝えております。データを使って世の中やビジネスを可視化したり、データ分析基盤作りの支援をしています。本業はITソフトウェア企業でデータ分析や分析基盤の構築に携わっています。BIを学び始めたい方、ご検討下さい。)のトレーニングも開催しています。下記よりご確認下さい。BIレポートのショーケースも一部公開しております。BIの入門記事・記事をピックアップしましたので、こちらも参考にしてみて下さい。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ソフ蔵とは?データで世の中の動きやビジネスを可視化しています。BIの機能や検証をユーザー目線で書いたり、データ分析手法を発信しています。