【できるUiPath】は注目のRPAサービス「UiPath」を使って、RPAのワークフローを作るための基本操作から、実際に業務をRPA化する実践テクニックまでを解説する連載です。
過去の記事一覧【できるUiPathまとめ】
範囲内で検索、フィルターウィザード
Excelから特定のデータだけを抽出するには
Excelでさまざまなデータを管理しているときは、その中から特定のデータだけを取り出したいことがあります。データを抽出する方法を見てみましょう。
検索とフィルタリングを使おう
Excelから特定のデータを探す方法はいくつかあります。必要なデータがあるセルを知りたいときは[範囲内で検索]を、特定の値が含まれる行だけを抽出したいときは[データテーブルをフィルタリング]を使いましょう。
[範囲内で検索]
指定した値をExcel上で検索し、そのセル(D9など)を返します。
[データテーブルをフィルタリング]
Excelから読み込んだデータテーブルを一定の条件でフィルタリングします。値が含まれる/含まれない場合、一定の値以上/以下の場合などを指定できます。
HINTExcelで加工しておくのも1つの手
よく使うデータやいろいろなワークフローで使う可能性があるデータは、UiPath Studio側で探したり、フィルタリングするのではなく、Excel側で用意しておく方が効率的なうえ、処理の高速化も期待できます。
Excelの関数などを使って別のワークシートにデータを抽出してからそのワークシートを読み込みましょう。
HINT取得したセル番号を使ってほかの処理をする
[範囲内で検索]で取得できるのは、指定した値が入力されているセル番号(D9のような形式)です。このため、このセルの値を使って、さらに別の処理をします。
例えば、請求書ファイルから「合計金額」の右側にある金額を取り出したいなら、[セルを読み込む]で取得したセル番号をずらして指定することで、値を取得します。
HINTこのレッスンで使う変数
このレッスンでは、次の変数を使います。ワークフロー内で登場する変数の用途を確認しておきましょう。
targetCell
型:GenericValue
用途:検索したセル番号を格納する
範囲を検索する
特定のデータがExcel上のどのセルにあるかを調べてみましょう。
例えば、請求書など、文書形式のファイルから合計金額などの特定のデータを取り出したいときに便利です。
1検索対象のファイルと、検索する数値を指定する
2[範囲内で検索]を追加する
3見つかったセル番号を表示する
HINT直接検索する値を指定してもいい
ここでは、検索したい値をいったん変数に格納してから、[範囲内で検索]で検索していますが、[範囲内で検索]に直接検索したい値を指定しても構いません。
「valFind」の代わりに「"11640"」や「"宿泊費"」などと指定することもできます。
HINT該当する値が複数あるときは
[範囲内で検索]では、Excel上に見つかった最初のセルを返します。このため、指定した値を含むセルがExcel上に複数あったとしても、最初に見つけたセル番号しか返しません。
複数候補があるとききは、フィルタリングを使った方が効率的です。
データテーブルをフィルタリング
「仮払いデータのみ」や「特定の金額以上」など、条件を指定してデータを抽出したいときは[データテーブルをフィルタリング]でデータを抽出します。
1[Excelアプリケーションスコープ]を追加する
2データを読み込む
3条件が合ったときの処理を追加する
4[フィルターウィザード]で入出力のテーブルを指定する
HINT[テーブルをフィルター]も使える
5フィルターを設定する
HINT列を数字で指定するときは
ここでは、手順5で列を「2」と番号で指定しています。番号は0から数えられるので、列A→0、列B→1、列C→2となります。もちろん、「"種別"」と見出しを指定することもできます。
6別シートに抽出結果を書き込む
HINTExcel関連のアクティビティを確認しよう
UiPath Studioには、Excelを操作するためのさまざまなアクティビティが搭載されていますが、バージョンアップのタイミングで新機能が次々に追加されています。バージョン2018.3で追加された機能は次の通りです。
アクティビティ名 | 詳細 |
---|---|
テーブルを作成 | Excelの指定範囲をテーブルとして定義する |
行の挿入・削除 | 行を追加/削除ができる |
列の挿入・削除 | 列を追加/削除ができる |
VBAの呼び出し | ExcelのVBAを呼び出す |
範囲内で検索 | 特定の値を持つセル番号を調べる |
ワークブックのシートを取得 | インデックスで指定したシート名を取得する |
ワークブックの全シートを取得 | Excelにあるすべてのシート名を取得する |
重複行を削除 | 範囲内で重複する行を削除する |
範囲を削除 | 指定範囲を削除する |
範囲をコピー・貼り付け | 指定範囲をコピーし、別の場所に貼り付ける |
ピボットテーブルを更新 | 指定したピボットテーブルを更新する |
ピボットテーブルを作成 | 指定したテーブルからピボットテーブルを作成する |
選択範囲を取得 | Excel上で選択した範囲を取得する |
シートをコピー | シートをコピーする |
PointExcelデータを高い自由度で扱える
Excelのデータは、[範囲を読み込む]でまとめて読み込んでしまうのが簡単です。しかし、データが大量にあると、扱いが煩雑になるうえ、処理時の負荷も高くなります。[範囲内で検索]や[データテーブルをフィルタリング]を使って、必要なデータだけを選んで活用しましょう。
UiPath Studioでは、このようにExcelを扱うためのアクティビティが豊富にあるため、データをさまざまな形で活用できます。
提供:UiPath