WinActor:シナリオ作成はアイデア次第!一つの業務について5パターンのシナリオを作ってみた(後編)
RPA WinActor 業務改善 生産性向上 ビジネスデザイン データでビジネスをもっと面白く エンジニア
一つの業務の自動化について複数のアプローチ方法を考えてみる回の後編です。前編はこちら👇からお読みください。
自動化手段を考えるための業務概要についておさらいしておきましょう。
◆業務概要◆
X株式会社では、顧客から受けた注文内容のデータを「注文一覧表.xlsx」にまとめているが、【商品コード】だけは別のエクセル(商品マスタ.xlsx)から参照している。
注文一覧表にある商品名に対応する【商品コード】を「商品マスタ.xlsx」から参照して、「注文一覧表.xlsx」を完成させるシナリオを作成したい。
◆使用するファイル◆
業務に使用するファイルは2つあります。
・注文一覧表.xlsx
・商品マスタ.xlsx
◆完成イメージ◆
◆前提条件◆
・注文の数は日によって異なる(注文一覧表の行数は変動する)。
・商品マスタに登録されている商品の種類は増減あり。
・注文一覧表の「商品名」と商品マスタの「商品名」は一致する。
・「商品マスタに該当商品がない場合」は今回は考えなくてよい。
前回は、「検索」を軸に2パターンをご紹介しました。
続いては「フィルタをかける」です。
パターン3:フィルタをかける
手動でこの業務を実行することを考えたとき、「フィルタをかける」方法を思い付いた方も多いのではないでしょうか。データの行数が多いときなどはフィルタをかけたら一発で見たい情報だけを絞り込むことができて便利な機能ですよね。
ではWinActorで「フィルタをかける」方法をやってみましょう!
WinActorにもフィルタ関連のノードがいくつか用意されていますので、その時々で合うものを使います。フィルタを設定するだけのもの、フィルタを設定し絞り込みまでするもの、複数のワードで絞り込みができるもの、絞り込みをしたときに表示されるデータ数を同時に取得できるもの、など様々あります。
今回は「フィルタ条件設定」を使います。
※ライブラリ ▸ 18_Excel関連 ▸ 10_フィルタ操作 ▸ Excel操作(フィルタ条件設定)
「フィルタ条件設定」ノードは、フィルタをかけて設定した文字列で絞り込みをおこない、該当する行だけを表示させます。
フィルタで絞り込みをしたら、A1セルから一つ下にカーソルを移動させたセルが商品コードになりますので値を取得し、注文一覧表へ転記します。
〇シナリオ概要
①「注文一覧表.xlsx」から【商品名】を取得
②「商品マスタ.xlsx」フィルタを設定し【商品名】で絞り込み
③A1セルにカーソルを移動
④一つ下にカーソルを移動
⑤アクティブセルの値を取得(⇒商品コード)
⑥「注文一覧表.xlsx」のC列に設定
※「注文一覧表.xlsx」のデータの数だけ①~⑥を繰り返す
〇フローチャート図
商品マスタの行数が多いときは「検索」だと一定時間実行にかかることがあります。フィルタでしたら行数に関わらず、実行時間に大きな差はなく進めることができそうです。
但し、ノード数が少し増えてしまう(今回は大した差ではありませんが)ことは少し気になる方はいらっしゃるかもしれません。
パターン4:関数(マスタに設定)
せっかくExcel上での作業ですから、Excelの機能を存分に活用するやり方もみていきましょう。Excelには便利な機能がたくさんあります。その中でも「関数」は普段使わない方からしたらとっつきにくいかもしれませんが、一度使い方を覚えてしまえばとても便利なので、ぜひチャレンジしてみてください。
関数を使うパターンも2パターンご提案します。
まずは、商品マスタに予め関数を設定しておく、というやり方です。
今回に限らずですが業務の自動化において、WinActorでなんでもやるのではなくフォーマットの方に最初から関数なり書式を設定しておけばWinActorでの開発の手間や時間を短縮できるということはよくありますので、開発に入る前にぜひ一度ご検討いただければと思います。
今回は下準備として「商品マスタ.xlsx」のE1セルにXLOOKUP関数を設定しておきました。D1に商品名を入力するとB列で該当するものを検索してA列の値を返すというものです。
「注文一覧表.xlsx」から取得した【商品名】をD1セルに設定するとE1セルに該当の【商品コード】が表示されるので、その値を取得して「注文一覧表.xlsx」へ設定していくという工程になります。
ではシナリオに起こしていきます。
〇シナリオ概要
①「注文一覧表.xlsx」から【商品名】を取得
②「商品マスタ.xlsx」のD1セルに【商品名】を設定
③「商品マスタ.xlsx」のE1セルから値を取得(⇒商品コード)
④「注文一覧表.xlsx」のC列に設定
※「注文一覧表.xlsx」のデータの数だけ①~④を繰り返す
〇フローチャート図
今回、関数の中で設定している検索範囲は実際にデータの入っている24行目までとしていますが、実際の現場では商品マスタの数は増えたり減ったり一定ではないと思いますので、多めに100としておく等で対応は可能です。
パターン5:関数(注文一覧表に設定)
今回ご紹介する5パターンの中で一番ノード数を少なくして作ることができるのがこのパターンです。
先ほどと同じXLOOKUP関数を使いますが、商品マスタではなく「注文一覧表.xlsx」へシナリオの中で設定していきます。この方法であれば、たとえ注文一覧表のデータ数が100行あっても、実行時間をかけることなく商品コードを設定できるので、データ数が多いときはおすすめです。
注文一覧表のC5セルにXLOOKUP関数を設定し、データの入っている一番下の行までオートフィルをします。それだけで問題ない場合もありますが、今回は更にC列をコピーして値貼り付けをしておくようにしました。
📔 オートフィル
Excelで隣接したセルに連続データを自動入力する機能です。
〇シナリオ概要
①「注文一覧表.xlsx」のC5セルにXLOOKUP関数を設定
②「注文一覧表.xlsx」の最終行を取得
③C列で最終行までオートフィルを設定
④C列をコピーして値貼り付け
〇フローチャート図
さいごに
前編・後編通して全5パターンご紹介しました。実はもっとあるかもしれませんね。今回はノード数も作成時間もどれもそこまで差はないのでどの作り方をしても問題はなさそうですが、使い分けを考えるとしたら以下のような感じでしょうか。
商品マスタのデータ数が多い場合はパターン1・2で扱った検索のやり方だと検索するのに時間がかかる可能性があるので、3~5のどれかにするかもしれません。また、注文一覧表のデータ数が多い場合は、1行ずつ転記していく方法だとその分時間がかかるので5の関数の方法でやろう、という考え方もありそうです。
ただ、例えば今回の工程に加えて「商品マスタに該当の商品がなかった場合は、注文一覧表の該当セルに色を付ける」といった工程がある場合は、1行ずつ実行していく方がシナリオとしてはシンプルな形で作れるかもしれませんので一概に5が一番!とも言い切れませんね。また関数が苦手な方が作成されるときは多少実行に時間がかかってもご自身にとってわかりやすい方法で作る方がいい場合もあるでしょう。
今回は業務例に合わせて検索、フィルタ、関数を使うパターンを考えましたが、他の業務においてもやり方が複数考えられることもあると思います。
そのように作成のアイデア(引き出し)を複数持っておくことによって、一つの手段で行き詰ったときも方向転換が楽になります。
皆様もぜひいろいろなやり方を考えてみてください!
最後までお読みいただきありがとうございました。
次回もお楽しみに!