Power Automate DesktopでExcelを自動集計化

# はじめに
Power Automate Desktopで複数のExcelを自動集計してみました。

# 使ったサービス
[Power Automate Desktop](https://powerautomate.microsoft.com/ja-jp/robotic-process-automation/)
Excel

# 出来上がり
こんな感じになります。
<iframe width="560" height="315" src="https://www.youtube.com/embed/esMVt08ra2U" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Excelへの反映状況はこちらを参照願います。
<iframe width="560" height="315" src="https://www.youtube.com/embed/b7Ov4H1plL0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

【全体の構成】動画の文字内容です。
Power Automate Desktopにて、複数のフォーマットが同じExcelファイルを
集計用のシートに集約して、別シートにフォーマットと関数を準備する事で、
必要な形に自動集計しています。

自動処理のフローは次の通りです。
1)集計用のExcelを起動、データを書き込むシートをアクティブに設定
2)集計元のフォルダから、全ての集計元Excelを取得<今回は3ファイル>
3)次の処理を全ての集計元Excelに対して繰り返し実施
　①Excelからデータを読み取り
　②Excelからデータをコピー
　③集計用のExcelに書き込み
4) 集計用のExcelに上書きして保存

# 作り方
Power Automate Desktopで、左の赤枠にあるアクションを真ん中のペインのMainにドラッグ&ドロップして、次のフローを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/33255102-5506-a55d-261d-9eaf5d36c6a1.png)

1.集計表を自動で開く
アクション『Excel』より「Excelの起動」をドラッグ&ドロップして、ドキュメントパスでファイルを設定します。この操作でExcellnstanceというデータが生成されます。
クリックすると%Excellnstance%となっており、%で囲まれた文字は変更できます。
以下、データは%で括って記載すると共に、名前を変更している前提でお読みください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/dc80b7bb-57ce-3e03-b684-34f188e58ac8.png)

2.集計表でデータをコピペするシートを指定
アクション『Excel』より「アクティブなExcelワークシートの設定」をドラッグ&ドロップしてシートを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/7ca96fc9-41f5-218c-814a-1f1544ce0041.png)

3.集計するフォルダを指定
アクション『フォルダー』より「フォルダー内のファイルを取得」をドラッグ&ドロップして、フォルダーを設定します。
この時、ファイルフィルターを「*.xlsx」と設定する事で、フォルダー内の全てのExcelを取得できるようにします。
この操作で、%tenpoFiles%というデータが生成されます。(名前は変更しています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/5a8d7fc1-e14d-70a2-bcd1-4bed7a0aff57.png)

4.繰り返し処理の設定
アクション『ループ』より「For each」をドラッグ&ドロップして、繰り返すデータを指定します。{x}を押して前の工程で生成された%tenpoFiles%を指定します。
この操作で、%CurrentItem%というデータが生成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/bfd8a2f7-ace7-17b6-07e0-c875fbd8c45e.png)

5.(繰り返し処理)集計するExcelの起動
「For each」と「End」の間に繰り返し処理するアクションを入れます。
アクション『Excel』より「Excelの起動」をドラッグ&ドロップして、繰り返すデータを指定します。
この操作で、%tenpoExcelInstance2%というデータが生成されます。(名前は変更しています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/587687b1-1ff7-c7c9-bc7f-c5be98b8886f.png)

6.(繰り返し処理)データの読み込み
アクション『Excel』より「Excelワークシートから読み取る」をドラッグ&ドロップして、Excelインスタンスで%tenpoExcelInstance2%を選択し、セル範囲の値を選択して、列と行で読み込むデータの範囲を指定します。
この操作で、%TenpoExcelData%というデータが生成されます。(名前は変更しています)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/ae3e6517-5056-f29b-ed69-8b9498e62009.png)

7.(繰り返し処理)変数の設定
変数%Row%は、ペインの右側にある変数にて、変数名をRow、データの種類を数値、規定値を1として作成します。
アクション『変数』より「変数を大きくする」を選択して、変数名を%Row%とし、書き込むデータ行が2行なので、大きくする数値を2と設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/e37ec100-f226-b6bf-77c1-846b380ce050.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/74c8d148-bf3d-0a83-cee2-51cfc01b19b3.png)

8.(繰り返し処理)集計表への書き込み
アクション『Excel』より「Excelワークシートへの書き込む」をドラッグ&ドロップして、Excelインスタンスで%ExcelInstance%を選択し、書き込む値を%TenpoExcelData%、書き込みモードを指定したセル上とし、列と行を指定します。その際、行を%Row%とすることで変数となり、処理順に書き込まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/514d616b-dbe6-01e1-d1ce-5037679a50bf.png)

9.集計表の保存
アクション『Excel』より「Excelの保存」をドラッグ&ドロップして、Excelインスタンスで%ExcelInstance%を選択し、保存モードはドキュメントを保存として上書き保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/4b71b5c3-b6ad-b1e1-9131-269231d2c4cd.png)

10.データの集計
データを書き込んだシートとは別に、関数を設定したシートを集計表に組み込んでおくことで、データを自動で集計しています。
<iframe width="560" height="315" src="https://www.youtube.com/embed/G-aQhgfMKL8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

(参考)集計元データ
<iframe width="560" height="315" src="https://www.youtube.com/embed/vP2DiBisJ2s" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>


# 終わりに
Qiita記事を書いて作成手順を整理する事で、不要なアクションに気が付き修正する事ができました。当初は、「データの読み込み」の後に、「データのコピー」を入れていましたが、生成されたデータが使用されていない事に気が付く事ができました(^^♪
動画の修正は面倒でしたが(ノД`)・゜・。
また、Power Automate Desktopのフローに関数を入れて、直接集計できるようにしたかったのですが、勉強不足で構築できませんでしたので、継続してトライ&エラーしてみます(^_-)-☆

# 参考にさせて頂いた記事
[Power Automate Desktop「現在日時取得のやり方」ロボ研Askeyのパワーオートメイトデスクトップ 100本ノック](https://www.youtube.com/watch?v=pGxM2sKG9GI&list=PLBWb0Qnp4_9JVECiZtEgMZgRiQ_m4CDHZ)
全部見れてませんが、16球目「EXCEL操作　行を変数で指定する」は大変参考になりました。ありがとうございました<(_ _)>