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回も複数ファイル読み込みです。
コメント