以前、下記の投稿をした者です。
こちらの応用で、毎月データを貰ってデータベースを下に行を増やす形で更新していきたいのですが、
フォーマットが可変的なデータに対し、
当月 or 先月以前を認識して フィールド変換しつつ読み込むフィールド範囲を自動的に変えるワークフローを作りたいです。
◆データの列イメージ
最初の20列目まではいつも固定ですが、21列以降から
当月, 当月+1, 当月+2, 当月+3 ... 当月 +5か月先までの数値がセル結合されて入っています。
これが月が変わると、同じ列位置で別の月の数値が入っているデータを毎月貰うことになっていて、
例えば 1月のデータを貰うと 21列目から 1月… 6月まで、
2月のデータを貰うと 21列目から 2月… 7月まで、入っています。
今月 (6月)のデータについては 当月 (6月)~+5か月先 (11月)までのデータを取得したいのですが、
先月以前 (5月以前) のデータについては 各当月だけのデータを取得したいです。
◆最終的なアウトプットイメージ
最終的には、フィールド変換したのち、Transpose & CrossTabで 月と数値種類を縦持ちでデータベースを作りたいです。
詰まっているのは、
・filenameを生かして当月なら 全ての列を読み込む・先月以前なら21列目 そこらの当月分だけを読み込むようにする、
・列位置を月に応じて変える
の分岐の作成です。
何か良い方法があれば、教えていただけないでしょうか。。
どうぞよろしくお願いします。
@emimieux_al さん
各月のファイルは別々という前提となりますが、いわゆるスキーマ(カラム名等)が異なるファイルを読み込む場合は、バッチマクロでの処理が簡単かつ確実かつ楽ちんです。
1ファイル対応分を作り、バッチマクロ化すれば、あとはDesignerがよしなにやってくれます。
一気に複数ファイルをとりあえず読み込んで、、、ということをすると、おそらく相当複雑なWFかつ動的にやるのもかなり難しいのではないかと思います。
アップロード頂いたWFは1ファイル分としてはほぼ完成形でしたので、コントロールパラメータツール、アクションツール、マクロ出力を加えたくらいです。
このマクロをコントロールするのは、こちらのWFです。
フォルダ読み込みツールで指定したフォルダの拡張子「xlsx」のファイルのみファイルパスを取得。
マクロにパスを渡します。
このバッチマクロ内では、1ファイルずつ処理が行われますので、例えば3ファイル読み込めば、3ファイル分の処理した結果が取得できます。
ご確認ください。
なかなか最初はバッチマクロが理解しにくいところがあるので、ご不明点あれば何なりとご質問ください。
(サンプルファイルとしてyxzpに同梱されている1ファイルと、おまけで2ファイルアップロードしておきます)