MENU

for Ideal Design

RPA

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

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

WinActorの基本的な操作を覚えて、いざ自分の実際の業務を自動化しようとしたときに現れる壁の一つに「手作業でやっていたことをWinActorに置き換える時、どうやったらいいの?」というものがあります。
今回は、一つの業務・作業に対してどうシナリオ構成を作っていくかを考えたときに、アプローチの仕方は複数あるかもしれませんよ!ということをお話したいと思っています。
シナリオ作りに行き詰ってしまう方へぜひアイデア出しの手助けになれば幸いです。

概要

 今回は一つの業務の自動化を例に、5パターンのシナリオを考えました。前編では2つ、後編で3つご紹介します。
まずはどのような業務を自動化するか、下記で確認します。

◆業務概要◆

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

◆使用するファイル◆

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

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

・商品マスタ.xlsx

商品一覧ファイル
商品一覧ファイル

◆完成イメージ◆

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

◆前提条件◆

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

ではこれらを踏まえて、皆さんならどのようにシナリオを作成しますか?
私は大きく分けて「検索」「フィルタ」「関数」を使う方法を考えて、更に使用するノードごとに分けて計5パターンのシナリオを作成しました。
ではそれぞれ詳細につきご説明したいと思います。

パターン1:検索(範囲検索)

 この業務を手動で行う場合を考えてみると、商品名を「商品マスタ.xlsx」から目視で探して商品コードをコピーし、「注文一覧表.xlsx」へ貼り付けする方法を採られる方は多いのではないでしょうか。

マスタの商品数が少なければそれで問題ないかもしれませんが、商品数が3桁、4桁になってきたらどうでしょうか。
目視で探すのは単純に時間がかかりますし、見落としもありそうで、効率的とは言えません。
ではそのような場合はどうするか。私はまず「検索」という方法が思い浮かびました。

WinActorにもExcel上で文字の検索をかけるノードが存在します。
「検索」と付くノードは2つありますので、一つ目【範囲検索】を使うやり方からみていきましょう。
※ライブラリ ▸ 18_Excel関連 ▸ 08_範囲 ▸ Excel操作(範囲検索)

「範囲検索」ノードは、設定範囲内に検索文字列の該当がある場合、該当セルにカーソルが移動するという動き方をするものです。

B列で「食パン」を検索したときの動き方の図
▲B列で「食パン」を検索したときの動き方の図
元のカーソル位置に関わらず、該当セルに移動する

これを使って、「注文一覧表.xlsx」から商品名を取得し、「商品マスタ.xlsx」のB列で検索、該当した行の左隣のセルの値(商品コード)を取得し「注文一覧表.xlsx」へ転記する、というやり方でシナリオを作成することにします。

〇シナリオ概要

①「注文一覧表.xlsx」から【商品名】を取得
②「商品マスタ.xlsx」のB列で【商品名】を検索
③アクティブセルの左隣の値を取得(⇒商品コード)
④「注文一覧表.xlsx」のC列に設定
※「注文一覧表.xlsx」のデータの数だけ①~④を繰り返す

〇フローチャート図

フローチャート図

⭐POINT 「範囲検索」ノードの特徴
・該当ありの場合、該当セルにカーソルが移動する
・該当なしの場合、エラーになる
・部分一致で検索する

該当なしの場合はエラーを起こすノードなので、もし「商品マスタに該当商品の登録がないパターン」を考える必要がある場合は少し注意が必要です。
ではどんどんいきましょう!続いて「検索」の2つ目です。

パターン2:検索(検索一致)

 さきほどと同じ検索をする方法ですが、別のノードを使用する場合を考えます。
18_Excel関連の中で「検索」と付くノードの2つ目「検索一致」です。
※ライブラリ ▸ 18_Excel関連 ▸ Excel操作(検索一致)

「検索一致」ノードは、設定範囲内に検索文字列の該当がある場合、該当セルの行番号と列番号を取得し変数に格納する、という動き方をします。

検索(検索一致)
カーソルの移動はありません

ではこの「検索一致」を使う場合のシナリオのフローを考えてみます。

〇シナリオ概要

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

〇フローチャート図

フローチャート図

パターン1とほとんど変わらないですね。
検索に使うノードと、商品コードを取得するノードが替わっただけでした。
今回の業務の場合はどちらを使っても差はなさそうです。

⭐POINT 「検索一致」ノードの特徴
・該当ありの場合、該当行番号と列番号を変数に格納する
・該当なしの場合、空を取得する(エラーは起こらない)
・完全一致で検索する

「範囲検索」と違い、検索単語が完全一致で該当しないと検索結果に引っかからない点は要注意です。ですがそこをクリアしたら、該当位置を教えてくれるという便利なノードです。

「範囲検索」でも「検索一致」でも今回は難易度としても大きな差はありませんでした。
検索単語の完全一致が難しい場合は「検索一致」が使いづらくなってしまうということはあるでしょう。
(完全一致するように加工を施してから使う、という工程を加えたら可能)

また、どちらもマスタが数千、数万件などの単位になってしまうと検索するのに時間がかかってしまいます。
ではマスタのデータ件数が少なくても多くても影響を受けない方法はないか、を考えてみることにしましょう。

では今回はここまでです。
残り3パターンについては後編でご紹介します。

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