WeeklyAlteryxTips#2 複数ファイル読み込み2

Alteryx

2回目は、1回目のデータ入力ツールにおける、複数ファイルの読み込みの続きです。

前回スキーマが同じファイルの読み込みを行いましたが、今回も同じスキーマのファイルの読み込みについてお話したいと思います。

一部ファイルを除外して同じスキーマのファイルを一気に複数読み込む

スキーマが同じでも、何かしら条件をつけて読み込むファイルを除外したい、ということがあるかと思います。例えばファイルのおしりに「_old」がついていないファイルのみ読み込みたい、といった場合です。

このような場合は、ディレクトリツールで一度ファイルパスの情報を読み込み、フィルターツールなどで不要なファイルパスを除外してから動的入力ツールを使っていきます。

つまり、以下のようなワークフローになります。

動的入力ツールの設定は以下のようになります(ExcelやAccessファイルの場合はこの設定ではできません)。

「データ入力ソーステンプレート」は必須の設定で、ここで読み込むテンプレートとなるファイルを指定します。このファイルとスキーマが異なるファイルはスキップされ読み込まれません。

「データソースのリストを読み取る」オプションでは、「フィールド」はファイルパスを格納しているフィールドになります。ディレクトリツールを使っていれば「フルパス」が該当します。その場合、「アクション」は「ファイルパス全体を変更する」に設定しましょう。

注意点:Excelファイルの場合

Excelファイルの場合、動的入力ツール内でファイルパスを指定する際にシート名も一緒に指定する必要があります。

例えば、

C:\MyDoc\AYX\WeeklyBlog\001_複数ファイル\Book1.xlsx

では駄目で、以下のようにお尻にシート名を付加する必要があります。

C:\MyDoc\AYX\WeeklyBlog\001_複数ファイル\Book1.xlsx|||Sheet1

これを行えば、あとはCSVファイルと同じように設定することが可能です。

ワークフローとしては以下のようになります。

フォーミュラツールの設定は以下のようになります。

FileAddPaths([Directory], [FileName]+"|||Sheet1")

なお、フィルターツールでファイルを取り除いていますが、このあたりは自由にロジックを組むことができますので、フィルターツールに囚われずロジックを組んでみてください(例えば、除外ファイルリストを結合ツールで結合してリストで省くと言ったことも可能です)。Alteryxは決まった設定じゃないとできない、ということはなく、柔軟にワークフローを組むことで様々なことができることが特徴です。

サンプルワークフロー

次回

第3回も複数ファイル読み込みです。

コメント

タイトルとURLをコピーしました