はじめに
Power Automate Desktopで複数のExcelを自動集計してみました。
使ったサービス
Power Automate Desktop
Excel
出来上がり
こんな感じになります。
Excelへの反映状況はこちらを参照願います。
【全体の構成】動画の文字内容です。
Power Automate Desktopにて、複数のフォーマットが同じExcelファイルを
集計用のシートに集約して、別シートにフォーマットと関数を準備する事で、
必要な形に自動集計しています。
自動処理のフローは次の通りです。
1)集計用のExcelを起動、データを書き込むシートをアクティブに設定
2)集計元のフォルダから、全ての集計元Excelを取得<今回は3ファイル>
3)次の処理を全ての集計元Excelに対して繰り返し実施
①Excelからデータを読み取り
②Excelからデータをコピー
③集計用のExcelに書き込み
4) 集計用のExcelに上書きして保存
作り方
Power Automate Desktopで、左の赤枠にあるアクションを真ん中のペインのMainにドラッグ&ドロップして、次のフローを作成します。
1.集計表を自動で開く
アクション『Excel』より「Excelの起動」をドラッグ&ドロップして、ドキュメントパスでファイルを設定します。この操作でExcellnstanceというデータが生成されます。
クリックすると%Excellnstance%となっており、%で囲まれた文字は変更できます。
以下、データは%で括って記載すると共に、名前を変更している前提でお読みください。
2.集計表でデータをコピペするシートを指定
アクション『Excel』より「アクティブなExcelワークシートの設定」をドラッグ&ドロップしてシートを設定します。
3.集計するフォルダを指定
アクション『フォルダー』より「フォルダー内のファイルを取得」をドラッグ&ドロップして、フォルダーを設定します。
この時、ファイルフィルターを「*.xlsx」と設定する事で、フォルダー内の全てのExcelを取得できるようにします。
この操作で、%tenpoFiles%というデータが生成されます。(名前は変更しています)
4.繰り返し処理の設定
アクション『ループ』より「For each」をドラッグ&ドロップして、繰り返すデータを指定します。{x}を押して前の工程で生成された%tenpoFiles%を指定します。
この操作で、%CurrentItem%というデータが生成されます。
5.(繰り返し処理)集計するExcelの起動
「For each」と「End」の間に繰り返し処理するアクションを入れます。
アクション『Excel』より「Excelの起動」をドラッグ&ドロップして、繰り返すデータを指定します。
この操作で、%tenpoExcelInstance2%というデータが生成されます。(名前は変更しています)
6.(繰り返し処理)データの読み込み
アクション『Excel』より「Excelワークシートから読み取る」をドラッグ&ドロップして、Excelインスタンスで%tenpoExcelInstance2%を選択し、セル範囲の値を選択して、列と行で読み込むデータの範囲を指定します。
この操作で、%TenpoExcelData%というデータが生成されます。(名前は変更しています)
7.(繰り返し処理)変数の設定
変数%Row%は、ペインの右側にある変数にて、変数名をRow、データの種類を数値、規定値を1として作成します。
アクション『変数』より「変数を大きくする」を選択して、変数名を%Row%とし、書き込むデータ行が2行なので、大きくする数値を2と設定します。
8.(繰り返し処理)集計表への書き込み
アクション『Excel』より「Excelワークシートへの書き込む」をドラッグ&ドロップして、Excelインスタンスで%ExcelInstance%を選択し、書き込む値を%TenpoExcelData%、書き込みモードを指定したセル上とし、列と行を指定します。その際、行を%Row%とすることで変数となり、処理順に書き込まれます。
9.集計表の保存
アクション『Excel』より「Excelの保存」をドラッグ&ドロップして、Excelインスタンスで%ExcelInstance%を選択し、保存モードはドキュメントを保存として上書き保存します。
10.データの集計
データを書き込んだシートとは別に、関数を設定したシートを集計表に組み込んでおくことで、データを自動で集計しています。
(参考)集計元データ
終わりに
Qiita記事を書いて作成手順を整理する事で、不要なアクションに気が付き修正する事ができました。当初は、「データの読み込み」の後に、「データのコピー」を入れていましたが、生成されたデータが使用されていない事に気が付く事ができました(^^♪
動画の修正は面倒でしたが(ノД`)・゜・。
また、Power Automate Desktopのフローに関数を入れて、直接集計できるようにしたかったのですが、勉強不足で構築できませんでしたので、継続してトライ&エラーしてみます(^_-)-☆
参考にさせて頂いた記事
Power Automate Desktop「現在日時取得のやり方」ロボ研Askeyのパワーオートメイトデスクトップ 100本ノック
全部見れてませんが、16球目「EXCEL操作 行を変数で指定する」は大変参考になりました。ありがとうございました<(_ _)>