MENU

for Ideal Design

RPA

WinActor:シナリオ作成はアイデア次第!一つの業務について5パターンのシナリオを作ってみた(後編)

RPA WinActor 業務改善 生産性向上 ビジネスデザイン データでビジネスをもっと面白く エンジニア

一つの業務の自動化について複数のアプローチ方法を考えてみる回の後編です。前編はこちら👇からお読みください。

WinActor:シナリオ作成はアイデア次第!一つの業務について5パターンのシナリオを作ってみた(前編)

自動化手段を考えるための業務概要についておさらいしておきましょう。

◆業務概要◆

 X株式会社では、顧客から受けた注文内容のデータを「注文一覧表.xlsx」にまとめているが、【商品コード】だけは別のエクセル(商品マスタ.xlsx)から参照している。
注文一覧表にある商品名に対応する【商品コード】を「商品マスタ.xlsx」から参照して、「注文一覧表.xlsx」を完成させるシナリオを作成したい。

◆使用するファイル◆

業務に使用するファイルは2つあります。
・注文一覧表.xlsx

画像
その日の受注データをまとめたファイル

・商品マスタ.xlsx

画像
商品一覧ファイル

◆完成イメージ◆

画像
完成した受注データをまとめたファイル

◆前提条件◆

・注文の数は日によって異なる(注文一覧表の行数は変動する)。
・商品マスタに登録されている商品の種類は増減あり。
・注文一覧表の「商品名」と商品マスタの「商品名」は一致する。
・「商品マスタに該当商品がない場合」は今回は考えなくてよい。

前回は、「検索」を軸に2パターンをご紹介しました。
続いては「フィルタをかける」です。

パターン3:フィルタをかける

 手動でこの業務を実行することを考えたとき、「フィルタをかける」方法を思い付いた方も多いのではないでしょうか。データの行数が多いときなどはフィルタをかけたら一発で見たい情報だけを絞り込むことができて便利な機能ですよね。
ではWinActorで「フィルタをかける」方法をやってみましょう!

WinActorにもフィルタ関連のノードがいくつか用意されていますので、その時々で合うものを使います。フィルタを設定するだけのもの、フィルタを設定し絞り込みまでするもの、複数のワードで絞り込みができるもの、絞り込みをしたときに表示されるデータ数を同時に取得できるもの、など様々あります。
今回は「フィルタ条件設定」を使います。
※ライブラリ ▸ 18_Excel関連 ▸ 10_フィルタ操作 ▸ Excel操作(フィルタ条件設定)

「フィルタ条件設定」ノードは、フィルタをかけて設定した文字列で絞り込みをおこない、該当する行だけを表示させます

画像

フィルタで絞り込みをしたら、A1セルから一つ下にカーソルを移動させたセルが商品コードになりますので値を取得し、注文一覧表へ転記します。

〇シナリオ概要

①「注文一覧表.xlsx」から【商品名】を取得
②「商品マスタ.xlsx」フィルタを設定し【商品名】で絞り込み
③A1セルにカーソルを移動
④一つ下にカーソルを移動
⑤アクティブセルの値を取得(⇒商品コード)
⑥「注文一覧表.xlsx」のC列に設定
※「注文一覧表.xlsx」のデータの数だけ①~⑥を繰り返す

〇フローチャート図

画像

⭐POINT 「フィルタ条件設定」ノードの特徴
・該当なしの場合は何も表示されない(エラーは起こらない)
・部分一致で設定したい場合は「絞り込みキー」の設定で対応
例:”チョコ”を含む で絞り込みするとき ⇒ *チョコ* と設定
“チョコ”以外 で絞り込みするとき ⇒ <>チョコ と設定

商品マスタの行数が多いときは「検索」だと一定時間実行にかかることがあります。フィルタでしたら行数に関わらず、実行時間に大きな差はなく進めることができそうです。

但し、ノード数が少し増えてしまう(今回は大した差ではありませんが)ことは少し気になる方はいらっしゃるかもしれません。

パターン4:関数(マスタに設定)

 せっかくExcel上での作業ですから、Excelの機能を存分に活用するやり方もみていきましょう。Excelには便利な機能がたくさんあります。その中でも「関数」は普段使わない方からしたらとっつきにくいかもしれませんが、一度使い方を覚えてしまえばとても便利なので、ぜひチャレンジしてみてください。

関数を使うパターンも2パターンご提案します。
まずは、商品マスタに予め関数を設定しておく、というやり方です。
今回に限らずですが業務の自動化において、WinActorでなんでもやるのではなくフォーマットの方に最初から関数なり書式を設定しておけばWinActorでの開発の手間や時間を短縮できるということはよくありますので、開発に入る前にぜひ一度ご検討いただければと思います。

今回は下準備として「商品マスタ.xlsx」のE1セルにXLOOKUP関数を設定しておきました。D1に商品名を入力するとB列で該当するものを検索してA列の値を返すというものです。

画像
関数を設定するセルは普段使わないセルならどこでもOK

⭐POINT XLOOKUP関数について
VLOOKUP関数はなじみのある方も多いと思いますが、VLOOKUP関数を使うためには検索する値が左端にないといけないという条件があり、今回扱うデータは検索する値(商品名)が右側にあるため、VLOOKUPではなくXLOOKUPを使っています。XLOOKUP関数は検索値の並びに関わらず使えて便利ですが、最近追加された新しい関数なので、お使いのExcelのバージョンによっては対応していない場合もあります。その場合はINDEX関数とMATCH関数を組み合わせたものを使ってみてください。

画像
▲INDEXとMATCHを組み合わせたものを使う場合の図
VLOOKUP関数では対応できないデータ形式で、
XLOOKUP関数対応のExcelでない場合はこういった方法も。

「注文一覧表.xlsx」から取得した【商品名】をD1セルに設定するとE1セルに該当の【商品コード】が表示されるので、その値を取得して「注文一覧表.xlsx」へ設定していくという工程になります。

画像

ではシナリオに起こしていきます。

〇シナリオ概要

①「注文一覧表.xlsx」から【商品名】を取得
②「商品マスタ.xlsx」のD1セルに【商品名】を設定
③「商品マスタ.xlsx」のE1セルから値を取得(⇒商品コード)
④「注文一覧表.xlsx」のC列に設定
※「注文一覧表.xlsx」のデータの数だけ①~④を繰り返す

〇フローチャート図

画像

今回、関数の中で設定している検索範囲は実際にデータの入っている24行目までとしていますが、実際の現場では商品マスタの数は増えたり減ったり一定ではないと思いますので、多めに100としておく等で対応は可能です。

⭐POINT Excelへ予め設定をしておく
同じシートに関数を設定することに支障があるなら、別シートや別ブックへ設定しておく、といった方法もあります。
その他、ピボットテーブルや条件付き書式など予めフォーマットに設定をしておくことでシナリオ作成がとてもシンプルになる例は多いです。

パターン5:関数(注文一覧表に設定)

 今回ご紹介する5パターンの中で一番ノード数を少なくして作ることができるのがこのパターンです。
先ほどと同じXLOOKUP関数を使いますが、商品マスタではなく「注文一覧表.xlsx」へシナリオの中で設定していきます。この方法であれば、たとえ注文一覧表のデータ数が100行あっても、実行時間をかけることなく商品コードを設定できるので、データ数が多いときはおすすめです。

注文一覧表のC5セルにXLOOKUP関数を設定し、データの入っている一番下の行までオートフィルをします。それだけで問題ない場合もありますが、今回は更にC列をコピーして値貼り付けをしておくようにしました。

画像


📔 オートフィル
Excelで隣接したセルに連続データを自動入力する機能です。

画像

〇シナリオ概要

①「注文一覧表.xlsx」のC5セルにXLOOKUP関数を設定
②「注文一覧表.xlsx」の最終行を取得
③C列で最終行までオートフィルを設定
④C列をコピーして値貼り付け

〇フローチャート図

画像

⭐POINT 「Excel開く(前面化)」について
パターン5の場合は、関数を設定するファイル(注文一覧表.xlsx)と参照先のファイル(商品マスタ.xlsx)が異なりますので、関数を設定する前に参照ファイルを開くという工程をあえて入れています。

さいごに

 前編・後編通して全5パターンご紹介しました。実はもっとあるかもしれませんね。今回はノード数も作成時間もどれもそこまで差はないのでどの作り方をしても問題はなさそうですが、使い分けを考えるとしたら以下のような感じでしょうか。

商品マスタのデータ数が多い場合はパターン1・2で扱った検索のやり方だと検索するのに時間がかかる可能性があるので、3~5のどれかにするかもしれません。また、注文一覧表のデータ数が多い場合は、1行ずつ転記していく方法だとその分時間がかかるので5の関数の方法でやろう、という考え方もありそうです。

ただ、例えば今回の工程に加えて「商品マスタに該当の商品がなかった場合は、注文一覧表の該当セルに色を付ける」といった工程がある場合は、1行ずつ実行していく方がシナリオとしてはシンプルな形で作れるかもしれませんので一概に5が一番!とも言い切れませんね。また関数が苦手な方が作成されるときは多少実行に時間がかかってもご自身にとってわかりやすい方法で作る方がいい場合もあるでしょう。

今回は業務例に合わせて検索、フィルタ、関数を使うパターンを考えましたが、他の業務においてもやり方が複数考えられることもあると思います。
そのように作成のアイデア(引き出し)を複数持っておくことによって、一つの手段で行き詰ったときも方向転換が楽になります。
皆様もぜひいろいろなやり方を考えてみてください!

最後までお読みいただきありがとうございました。
次回もお楽しみに!