Free Trial

ナレッジベース

エキスパートから学ぶ。

異なるスキーマを持つファイルや複数のタブがあるエクセルファイルの読み込み方法

Community_Admin
Alteryx
Alteryx
Created

Alteryxの長所の1つは、複数ファイルを簡単に読み込みんで1つのデータセットに自動的に組み込む能力を備えていることです。これは、異なるスキーマを持つファイルや複数のタブがあるエクセルファイルを使用している際には少し難しくなります。複数のタブのある複数のエクセルファイルを追加する場合、また各タブ内でのスキーマに違いがある場合、タスクがぐんと難しくなってしまいます。

 

タブのスキーマが同じであれば、こちらの記事を参照してください。

 

タブのスキーマが異なる(もしくは異なるかもしれない)場合(シートによってフィールド名が変わる)にタスクを行うには、ネストバッチマクロを使用します。添付の11.0のワークフロー例でこのプロセスを見ていただけます。

 main workflow.png

 

上の図で示されているメインのワークフローでは、ディレクトリツール入力によって、ディレクトリ内のすべてのXLSXファイルのファイルパスが呼び出されます(注:このサンプル内のツールをあなたのマシン上のディレクトリにリダイレクトする必要があるかもしれません)。

 Macro1.png

 

手品のようなことのほとんどは上の図のマクロで発生します。このマクロはフルパスフィールドで働いてメインのデータ入力ツールを更新し、ディレクトリ入力のリストの最初のファイルを読み込みます。最初のファイル内のシート名のリストを読み込むように設定されていますが、同時にデータ入力ツールからフルパスを出力されるようにも設定されています。エクセルファイル用のフルファイルパスを受け入れるために、フォーミュラ内には求めるシート名を含む新しいフィールドが形成されます。この最終的なファイルパスは、2つ目のマクロにコントロールパラメーターとしてパスされます。

 

Macro2.png

2つ目のマクロは大変シンプルです。最初のマクロから受け取ったファイルパスでデータ入力ツールを更新、ファイルを読み取って最初のマクロに返します。ディレクトリ入力ツールから受け取った各ファイル内の各シートごとに一度ずつこの動作を繰り返します。

 

各バッチマクロは、各バッチが完了するまでデータを維持し、すべてのデータを1つの大型データセットとして構成します。

 

注:サンプルは11.0で作成されましたーそれ以前のバージョンでは開きません。

添付