PowerQuery【14】PowerQueryでRPA用データを作る
PowerQueryへのリンク
PowerQuery全体:PowerQuery【01】PowerQuery(パワークエリー)で出来ること
PowerQueryの手順:PowerQuery【02】PowerQuery(パワークエリー)の動かし方
RPA処理の基礎データを作る
PowerQueryを使い始めて3ヶ月経ちましたが、
「PowerQueryでPowerQueryのデータを作る」というのを結構な頻度で使っています。
そもそもRPA用の基礎データとは何か。
RPAは、処理の全てを、以下いずれかに落とし込む必要があります。
①ロボットそのものの構築(例えばUiPathのやWinActorのシナリオ作成)
②ロボットを実行するための「データリスト」
特に②については、Excel等で作ることが多いのですが、「処理1件」に対応して「1行ずつ」全件データを作る必要があるのです。
例えば人への依頼だったら、「 『A~D』までの範囲それぞれで、『01~03』の処理をお願い」と言えば
「A~Dについて、01~03まで 4×3=計12件の処理をする」と理解して、適宜処理してくれますが、
ロボットへの依頼では、『A01、A02、A03、B01、…D03』と処理すべき行を全て用意する必要があるのです。
全件データを作るというのは結構めんどくさくて、従来はAccessで作っていた※のですが、
いったん作ると何度も使い回せる点も含めてPowerQueryは便利です。
※Accessで作るとき:敢えて結合線を付けずに、テーブルを二つ並べると、総当たりでデータが出来る。
実際に作っている事例をお見せします。
1.RPA用の全件データを作る
(1)ニーズ
以下のような事例です。3名×6ヶ月、計18回の処理をすべく、RPA処理用のデータを作る必要があります。
(2)2つのテーブルの準備とクエリ読み込み
①年月テーブルと氏名テーブルをそれぞれ作成する。
②結合させるためのダミー列を追加する。
PowerQueryで対応できるように、それぞれにダミー用のKey列を追加して、
同じ数値(例えば「1」)を入力しておきます。
(数値でなくても、文字でも同じ値であれば大丈夫です。)
③二つのテーブルをクエリ変換する。
テーブル範囲を選択して、データタブ/テーブルまたは範囲から
/PowerQueryエディタが起動するので、クエリ名等を修正
/閉じて読み込む
(3)マージ(結合)
IDのクエリのどこかにカーソルを合わせて、
クエリ/結合
マージ画面が表示されたら、ダミー用のKey列を「キー(Key)」に選択して、
「完全外部(両方の行すべて)」で結合させる。
(4)2つめのテーブルを展開
結合テーブルの展開ボタンをクリックして、年・月を展開する。
(5)2つのテーブルが展開され、必要な行数が表示されたのを確認
(6)RPA用に列を移動
この場合は「年」「月」列を先頭に移動
(7)RPA用にソート(行の並び替え)を行う
ソートしたい順にクリックすると、「ソートアイコン」の左隣に、ソートの優先順位が表示される。
↓クリックすると拡大します。
(8)出来上がり
このデータをRPAの処理用のExcelに貼り付ける
2.横のマトリックス表を縦にする
これもRPAの事例です。
以下は権限を設定するRPAを動かす前の処理ですが、
入力シート(マトリックス表)を作り、まず人の手で「誰に何の権限をつけるか」を、フラグ立てします。
この入力シートを、縦型の「RPA入力用シート」に変換します。(列のピボット解除を使います。)
詳しい手順は、PowerQuery【10】Pivotテーブルを縦展開する をご参照ください。