Alteryxで複数のファイルを読み込み、ファイルごとに出力する
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
今回は、
ファイルaから読み込み -> (何らかの処理) -> ファイルAに出力
ファイルbから読み込み -> (上と同じ処理) -> ファイルBに出力
というように、Alteryxで行う処理は同じでもファイルごとに出力したい場合に、1つのワークフローでまとめて実行する方法を考えてみます。
複数のファイルを読み込み、ファイルごとに出力
設定のポイント
ファイルの読み込みにはInput Dataツール(In/Out -> Input Data)を使用します。
Output File Name as Field に File Name Only
を設定することで、読み込んだデータにファイル名のフィールドが付加されます。
また、ファイルの出力にはOutput Dataツール(In/Out -> Output Data)を使用します。
Tale File/Table Name From Field を使用することで、指定したフィールドをファイル名に使用することができます。
この2つのツールの設定を使用して、ファイルごとの出力を試してみます。
読み込むファイルと出力するデータ
「Data」というフォルダを用意し、その中にStore_1.xlsx、Store_2.xlsx、Store_3.xlsxというファイルを用意しました。
各ファイル内のデータは、「ID」「Item」「Sales」列となっており、同じ構造のデータになっています。またExcelファイルのシート名は、各ファイルで同一になっています。
複数のファイルの読み込み
Input Dataツールを使用して、複数のファイルをまとめて読み込むことができます。複数のファイルの読み込みについては、以下のエントリにてご紹介しております。
Input Dataツールを使用して、「Data」フォルダ配下の「Store_?.xlsx」を読み込むように設定します。「?」とすることで、Store_1.xlsx、Store_2.xlsx、Store_3.xlsxをまとめて読み込むことができます。
また、Output File Name as Field に File Name Only
を選択します。
この状態で読み込んだデータは、3つのファイルのデータが1つにまとめて出力されます。また、「FileName」列が作成され、「Store_1」「Store_2」「Store_3」というように、どのファイルから読み込んだデータなのか分かるようになっています。
ファイルごとに出力
出力するデータを準備しました。今回は「%」列を追加しています。
Output Dataツールを使用して、データの出力先を設定します。Write to File or Database には「Results」というフォルダ配下に「Daifuku_.yxdb」を出力するよう設定します。
通常のファイルの出力先の設定のほかに、設定画面の下部にある Take File/Table Name From Field を有効化し、Append Suffix to File/Table Name を選択して、指定したフィールドをファイルに付加します。フィールド名として「FileName」列を選択し、Keep Field in Output の選択を外して「FileName」列をデータから除外して出力するようにします。
この設定により、「FileName」列を使用してグループに分けて、グループごとにファイルにデータを出力します。また、ファイル名は「Daifuku_」のあとに「FileName」列の文字列が付加されます。
ワークフローを実行して結果を確認します。「Results」フォルダを確認すると、「Daifuku_Store_1.yxdb」「Daifuku_Store_2.yxdb」「Daifuku_Store_3.yxdb」というファイルが作成されています。
各ファイルを開いてデータを確認します。「FileName」列ごとにデータが出力されています。
最後に
今回は、データ構造が同じ場合に複数のファイルを読み込みファイルごとに出力する方法をご紹介しました。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。