Alteryxの週一のTipsの公開を始めたいと思います。
1回目は、データ入力ツールにおける、複数ファイルの読み込みについてです。
ローカルの複数のファイルを大量に読み込まないといけないケースというのはよくあると思います。この場合、スキーマ(フィールド名、データ型)が同じであれば非常に簡単に読み込みを行うことができますが、異なる場合は対処法が変わります。
同じスキーマを持つファイルの場合
データ入力ツールにて、ファイル名の指定で「*(ワイルドカード)」を使うだけです。
例えば、あるフォルダに以下のようなファイルがあるとします。
- Book1.xlsx
- Book2.xlsx
この場合は、データ入力ツールでのファイル名の指定を「Book1.xlsx」から「Book*.xlsx」にするだけです。つまり、変化する部分を「*(アスタリクス)」に変更することでいわゆるワイルドカード指定で複数ファイルの指定が可能です。
注意点1:Excelファイルの場合
なお、Excelファイルの場合は、シート名は固定での指定となるため、単一の同一のシート名のみがこの手法で一括読み込み可能です(同一ブック内の異なるシートを一括で読み込みたい場合は異なる手法になります)。
注意点2:CSVファイルの場合、フィールドの入れ替わりに注意
CSVファイルはすべてテキスト型でデータを読み込むため、CSVファイルにとってのスキーマは、フィールド数のみとなります。そのため、フィールドが入れ替わっている場合はそのまま読み込んでしまいます。
これを「*」で読み込むと以下のようになります。
このようなファイルがある場合は、異なるスキーマとして読み込む必要があります。
なお、最近のバージョンではしっかり警告を出してくれるようになっていますので、しっかり結果ウィンドウを見ましょう。
なお、Excelファイル(xlsx)でも同様の動きをしますのでご注意ください(yxdbなどは厳密にフィールド名が異なっていれば異なるスキーマとして読み込みはスキップされます)。※2023/7/15追記
注意点3:空間ファイルの場合
空間ファイル(Shape等)の場合、地図の測地系が異なるファイルも異なるスキーマのファイルとみなす必要があります(平面直角座標系が異なるファイルを同じスキーマとして読み込むと、緯度経度がおかしくなります)。
サンプルワークフローダウンロード
※2023/7/15追加
次回
2回目は、複数ファイル読み込みの後編の予定です。
コメント