【UiPath】Advent of UiPath 2020 #8（2つのシートからデータ集計）

この記事は、UiPath Forum で行われている [**Advent of UiPath 2020**](https://forum.uipath.com/t/advent-of-uipath-2020/273299) の [Advent Challenge #8](https://forum.uipath.com/t/advent-challenge-8/278185) の紹介記事です。

:christmas_tree: 過去の投稿

- [Advent of UiPath 2020 #1（APIからデータを取得）](https://qiita.com/miya_g/items/4021ba90aab84984cb3c)
- [Advent of UiPath 2020 #2（正規表現で文字列を抽出）](https://qiita.com/miya_g/items/087a9d5d29145ae3e33e)
- [Advent of UiPath 2020 #3（ファイルをダウンロードしてメール送信）](https://qiita.com/miya_g/items/b774ef61150330ba0ee0)
- [Advent of UiPath 2020 #4（画像をbase64デコードしてOCRで画像認識）](https://qiita.com/miya_g/items/489e81d876ba504986f2)
- [Advent of UiPath 2020 #5（2つのエクセルを比較、重複行マージ）](https://qiita.com/miya_g/items/2a67e274a5edae65c25e)
- [Advent of UiPath 2020 #6（多重ループ）](https://qiita.com/miya_g/items/77b229f8665f57e6f20e)
- [Advent of UiPath 2020 #7（データテーブルの操作）](https://qiita.com/miya_g/items/e73d0ac7f04eca1b8598)


# “Advent of UiPath 2020” とは何か？

- 英語版のフォーラムで投稿されています。
- RPA challenge です（＝お題を出て、みんなでRPA化してみる）
- 誰でも回答できます（フォーラムのアカウントがあれば）
- 3日おきに出題され、計8回（xmasイブまで）あります
- 回答して上位に選ばれれば、フォーラム上でスターがもらえます。
- フォーラムのスタッフが開催しているっぽいです。

# チャレンジ8：2つのシートからデータ集計

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154139/3e259bd1-6ef1-2fcc-0fae-a242f364eee6.png)

サンタ）メールで送られた来たタスクの実行状態を整理したい
ルドルフ）要件を整理して提示してください

（絵文字ばっかりでよくわからない・・・）

### 初心者向けチャレンジ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154139/5512e103-0821-b3de-29dd-974d120043d7.png)

DataAdvent＃8.xlsxに「タスク」シート「実行」データが記載されているので、以下の内容をチェックして下さい

1）未定義のタスク
「実行」シートに記載あり ＆ 「タスク」シートに記載あり：定義済タスク
「実行」シートに記載あり ＆ 「タスク」シートに記載なし：未定義タスク
2）開始済のタスク
「実行」シートに記載あり ＆ 「タスク」シートに記載あり：開始済タスク
　上記以外：未開始タスク
3）正しい地域コードを持つタスク
「実行」シートに記載あり ＆ 「タスク」シートの地域と合っている：妥当な地域タスク
「実行」シートに記載あり ＆ 「タスク」シートの地域と合ってない：妥当ではないい地域タスク
「上記以外」：当ではないい地域タスク


### 上級者向けチャレンジ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154139/8897a44a-0a47-d358-ee17-bca386a6a83a.png)

初級者向けチャレンジに加え、下記をチェック

4）すべての地域で実行済のタスク
「実行」シートの記載のデータを集計し「タスク」シートで記載の全地域で実行済み：全地域で実行済み
上記以外：全地域では実行されてない

# 感想

今回のお題は「2つのシートからデータ集計」でした。

相関する2つのシートをもとに、集計結果を導き出します。
SQLで言えば、条件（case when）と集計（group by）をあわせてデータ集計する感じです。

UiPathで実現するなら

・標準アクティビティでエクセルデータをデータテーブルにする
・ループを回しながら地味に集計する or Linqで集計する

等になると思いますが、
回答者の中には、SQLテーブルにデータを投入して、SQLクエリで集計している人もいました。

気持ちはわかりますが、ちょっと大袈裟（テーブル用意できる環境だとは限らない）な気もします。

やっぱり、ここはLINQ式で集計じゃないでしょうか。
そういう意味で、一番スマートな回答は下記でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154139/76c14daa-7876-9e01-f70d-882a377811a9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154139/b3371cd5-9876-b0ea-a7c1-b3c0da92acf0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154139/556aec34-d590-59b1-4540-27330388a37f.png)

ヨウイチさん、凄い。他の人も驚いてました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/154139/9f0c2da4-f5a4-21be-a48f-d2e994646bb4.png)

# 終わりに

以上で、Advent of UiPath 2020　は終わりでした。

振り返ると

- [Advent of UiPath 2020 #1（APIからデータを取得）](https://qiita.com/miya_g/items/4021ba90aab84984cb3c)
- [Advent of UiPath 2020 #2（正規表現で文字列を抽出）](https://qiita.com/miya_g/items/087a9d5d29145ae3e33e)
- [Advent of UiPath 2020 #3（ファイルをダウンロードしてメール送信）](https://qiita.com/miya_g/items/b774ef61150330ba0ee0)
- [Advent of UiPath 2020 #4（画像をbase64デコードしてOCRで画像認識）](https://qiita.com/miya_g/items/489e81d876ba504986f2)
- [Advent of UiPath 2020 #5（2つのエクセルを比較、重複行マージ）](https://qiita.com/miya_g/items/2a67e274a5edae65c25e)
- [Advent of UiPath 2020 #6（多重ループ）](https://qiita.com/miya_g/items/77b229f8665f57e6f20e)
- [Advent of UiPath 2020 #7（データテーブルの操作）](https://qiita.com/miya_g/items/e73d0ac7f04eca1b8598)
- [Advent of UiPath 2020 #8（2つのシートからデータ集計）](https://qiita.com/miya_g/items/cfa77c92f31a135dd6a4)

というお題でしたが、どれもRPAの案件でありそうなものばかりでした。

知識の再確認、実現方法の引き出しを増やすネタとして、こういうチャレンジは良いなと思います。また来年あれば、紹介したいと思います。