Tableauの複数ファイルの読み込みについてご説明します
今回は、Tableau Desktop/Prepにおける複数ファイルの取り扱いについて説明を行いたいと思います。
Tableauを使い始める際に、データソースとしてCSVやExcelファイルを利用する方は多いかと思います。この時、同じフォーマットのファイルが複数ありますと、作業を効率的に行うには一気に読み込むことかと思います(例えば、売上の明細が月ごとに分かれているなど)。
これを行うにはユニオンという機能を使うことで実現可能ですが、その際に引っかかりそうなポイントなどありますので、説明したいと思います。今回は、DesktopとPrep両方について記載します。
なお、異なるフォーマットのファイルを結合して使いたい、ということであれば「データブレンド」や「テーブルの結合」などの利用になります(別途ご紹介予定です)。
なお、今回使っているサンプルファイルは以下のようなものです。
- カラムは「No」「Data」の2つ
- ファイル名は「test_?.csv」(?は数字1文字)
- ファイル数は3つ
ユニオンとは?
まず、「ユニオン」という聞き慣れない言葉が出てきているかと思いますが、データベースがわかる方であれば馴染み深い言葉だと思います。そもそも「ユニオン」とはどのようなものかを解説します。
簡単に言うと「同じフォーマットの複数のデータテーブルを縦に結合する」のがユニオンとなります。
具体的なイメージとしては、以下のような図の通りとなり、例えば3つのファイルがあった時に、項目名を省いてデータのみ連結するイメージです。
Tableau Desktopのユニオン機能
Tableau Desktopのユニオン機能は、データソース追加時の機能です。
オプションとしては以下の2つとなります。
- 追加したいファイルやテーブルを個別にドラッグ&ドロップして実行
- ワイルドカードユニオンという機能を使い、条件指定で実行
ワイルドカードユニオンであれば、条件にあったファイルをすべて取り込む形となりますので、新しいファイルが追加されてもデータソースの更新をすれば自動的に読み込まれます。
以下、1と2の方法について説明します。
1.追加したいファイルやテーブルを個別にドラッグ&ドロップして実行
まず、1つファイルを読み込みます。CSVファイルの場合は同じフォルダにあるファイルがリストアップされます(Excelの場合は読み込んだファイルにあるシート、DBの場合はテーブルがリストアップされます)。
リストアップされているファイルやテーブルなどを、最初に追加したファイル名の付近にドラッグすると、「表をユニオンへドラッグ」とオレンジ色の枠が表示されますので、そこでドロップすると、ユニオンが作成されます。
この場合、あくまで手動での追加となるので、将来追加したいファイルなどが増えてもまた手動で追加する必要があります。
読み込み結果としては以下のような形となります(文字化けしていたのでプロパティから修正しています)。
2.ワイルドカードユニオンという機能を使い、条件指定で実行
次に、ワイルドカードユニオンを説明します。操作としては、上の項目1で実施した作業のうちユニオンの作成まで行います。
その後、ファイル名を右クリックし、メニューから「ユニオンの編集」を選択します。
初期状態では「固有(手動)」となっていると思いますが、「ワイルドカード(自動)」をクリックすると設定が「ワイルドカードユニオン」の設定になります。ここでは、「一致パターン」の指定と「検索範囲」(サブフォルダもしくは親フォルダまでの拡大が可能です)の指定が可能です。
ワイルドカードの初期設定では「一致パターン」は空白ですので、読み込んだファイルと同じフォルダにあるファイルはすべて読み込みます。
「ワイルドカード(自動)」の設定にしておけば、同じフォルダに新たにファイルを追加した状態であれば該当のワークブックを開くと自動的に読み込まれます(が、場合によっては更新されないケースがあるように見受けられるので、データソースタブからデータソースの更新ボタンを押したほうが確実です)。
なお、Excelファイルの場合は、以下のように「シート」「ワークブック」の設定の2つが設定可能です。
ワークブックの設定を空白もしくは一致パターンを指定しておけば、同じフォルダにあるワークブックを複数読み込みが可能です(手動設定ですと複数のワークブックをユニオンすることはできませんが、ワイルドカードユニオンであれば可能です)。
Tableau Prepのユニオン機能について
Tableau Prepではユニオンの機能として2種類存在しています。ファイル読み込み時のワイルドカードユニオンと、複数テーブル結合のユニオンの2つとなります。
- ファイル読み込み時のワイルドカードユニオン
- 複数テーブル結合のユニオン
1.ファイル読み込み時のワイルドカードユニオン
実はほぼTableau Desktopと同じやり方になります。
ファイルを追加後、「複数ファイル」をクリックし、「ワイルドカードユニオン」に設定を切り替えると、複数ファイルの読み込みが可能です。Tableau Desktopとは異なり検索範囲を「親フォルダ」までは拡張できないようです(サブフォルダを検索範囲に含めることは可能です)。
こちらは、ワークフローを実行時にファイルを読みに行くという特性上、フォルダにファイルを追加しておきさえすれば、ワークフロー実行の際に自動的に条件にあわせて読み取りを行います(あとは、コマンドライン起動とタスクスケジューラを使えば毎日自動的に更新するようなことも可能です)。
2.複数テーブル結合のユニオン
Tableau Prepの複数テーブル結合のユニオンは今までの話とは大きく異なります。いわゆるデータ処理の1つのステップとなります。
まず、複数のファイルをPrepに読み込みます。
その後、下にあるデータ(test_2)を上にあるデータにドラッグしていくと、「ユニオン」「結合」と表示されますので、「ユニオン」がオレンジ色にハイライトされた状態でドロップしてください。
すると、ユニオンが完了します。
このケースのユニオンは、異なるデータソースや異なるフォルダにあるようなファイルを結合する時に使う方法となります。
まとめ
Tableau DesktopとTableau Prepについて、同じ形式のファイルを複数読み込む方法(ユニオン)について説明しました。
複数ファイルの読み込みは、表計算ソフトですと、コピー&ペーストでがんばるか、マクロを使わないとできないことですが、Tableauであれば簡単に読み込むことができます。
また、ワイルドカードユニオンなど使えば自動化もできますので、うまく活用すれば業務を効率的に進めることが可能です。
※Tableau Desktop 2018.3およびTableau Prep 2018.3にて検証