件名のとおりのことをするにはどういったワークフローが適しているのでしょうか。
【目標】
作成される元ファイル(CSV)をとあるフィールド(例としてカテゴリフィールド)で分けて出力したファイルに
それぞれ集計を行ってエクセルファイルにする。
この作業は毎月発生し、カテゴリフィールドの値の種類数は毎月違うので
(なのでカテゴリ別に出力されるファイル数も毎月違う)、
できるだけ、このフローを自動化したい。
当初は
1)元ファイルからカテゴリ別にファイルを出力
2)1)で出力したファイルにバッチマクロ内で集計を行い、バッチマクロ内で出力する。
と2つのワークフローに分けるのが最適だと考えいたのですが、
alteryx 的には
1)と2)を同じバッチマクロで実行するのが普通なのでしょうか?
それともバッチマクロなど使わずにスタンダードマクロやそのほかのツールで可能な処理なのでしょうか。
アドバイスいただけると幸いです。
解決済! 解決策の投稿を見る。
すでにワークフローができていて(しかも、それが結構複雑)ということであれば、バッチマクロ化する方が楽だと思います(バッチマクロを理解している前提ですが)。
内容にもよりますが、たいていの集計処理についてはWFの構築次第で同じ処理をさせて出力というのはバッチマクロでなくてもできるかと思います(それぞれのツールのグループ化オプションなどを利用)。ですので、Stepとして1で分割保存、2で処理とされてますが、通常のWFで1,2を一気通貫で処理することも可能です。
※最初に記載の通り単ファイル分の処理を複数ファイル分の処理に変更するのはなかなか骨が折れるかと思います
※各ファイルのスキーマが異なる場合はバッチマクロ一択かな、と思います
メモリ効率はバッチマクロの方が良いかと思います(一度に読み込むデータ量が減るため)
書いていて思ったのですが、バッチマクロ推奨している感じになりましたね・・・。
ちなみに、保存の際のデータ出力ツールの「フィールドからファイル/テーブル名を取得する」オプションはご存知でしょうか?
これを使えば一気にグルーピングして保存が可能ですので、これを使うことでわざわざバッチマクロ化しなくても一気に複数ファイルへの出力が可能です。
早速の返信ありがとうございます。
集計処理のためのワークフローはできていまして、
それを一つ一つのファイルに手動でワークフローを実行すれば、集計処理はできるのですが、さすがに100ファイルを同じワークフローとはいえ、100クリックするのは避けたい、と思ってバッチファイルがいいのではないかと思った次第です。
※最初に記載の通り単ファイル分の処理を複数ファイル分の処理に変更するのはなかなか骨が折れるかと思います
→やはりそうなのですね、、、
※各ファイルのスキーマが異なる場合はバッチマクロ一択かな、と思います
→スキーマ(データ構造のこといいでしょうか)はすべて同じです。
保存の際のデータ出力ツールの「フィールドからファイル/テーブル名を取得する」オプションは使っているのですが、出力はクロス集計表の形にするため、元データフィールドがなくなってしまうので、どうやってフィールドにファイル名をもたせるか、と考えているところです
返信ありがとうございます。
提示していただいたイメージです。
マクロを使わない方法もあるんですね。
たしかに、このようにカテゴリフィールドを集計時に残しておけば、分けられますね。
勉強になりました!ありがとうございます。