【できるUiPath】は注目のRPAサービス「UiPath」を使って、RPAのワークフローを作るための基本操作から、実際に業務をRPA化する実践テクニックまでを解説する連載です。
過去の記事一覧【できるUiPathまとめ】

レッスン34範囲内で検索、フィルターウィザード

Excelから特定のデータだけを抽出するには

Excelでさまざまなデータを管理しているときは、その中から特定のデータだけを取り出したいことがあります。データを抽出する方法を見てみましょう。

検索とフィルタリングを使おう

Excelから特定のデータを探す方法はいくつかあります。必要なデータがあるセルを知りたいときは[範囲内で検索]を、特定の値が含まれる行だけを抽出したいときは[データテーブルをフィルタリング]を使いましょう。

[範囲内で検索]

指定した値をExcel上で検索し、そのセル(D9など)を返します。

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

[データテーブルをフィルタリング]

Excelから読み込んだデータテーブルを一定の条件でフィルタリングします。値が含まれる/含まれない場合、一定の値以上/以下の場合などを指定できます。

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

HINTExcelで加工しておくのも1つの手

よく使うデータやいろいろなワークフローで使う可能性があるデータは、UiPath Studio側で探したり、フィルタリングするのではなく、Excel側で用意しておく方が効率的なうえ、処理の高速化も期待できます。

Excelの関数などを使って別のワークシートにデータを抽出してからそのワークシートを読み込みましょう。

HINT取得したセル番号を使ってほかの処理をする

[範囲内で検索]で取得できるのは、指定した値が入力されているセル番号(D9のような形式)です。このため、このセルの値を使って、さらに別の処理をします。

例えば、請求書ファイルから「合計金額」の右側にある金額を取り出したいなら、[セルを読み込む]で取得したセル番号をずらして指定することで、値を取得します。

HINTこのレッスンで使う変数

このレッスンでは、次の変数を使います。ワークフロー内で登場する変数の用途を確認しておきましょう。

targetCell

型:GenericValue
用途:検索したセル番号を格納する

範囲を検索する

特定のデータがExcel上のどのセルにあるかを調べてみましょう。

例えば、請求書など、文書形式のファイルから合計金額などの特定のデータを取り出したいときに便利です。

1検索対象のファイルと、検索する数値を指定する

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

2[範囲内で検索]を追加する

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

3見つかったセル番号を表示する

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

HINT実行結果はどのように表示される?

手順3で[実行]をクリックすると、メッセージボックスにセル番号が表示されます。確認が終わったら、[OK]をクリックしてメッセージボックスを閉じましょう。

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

HINT直接検索する値を指定してもいい

ここでは、検索したい値をいったん変数に格納してから、[範囲内で検索]で検索していますが、[範囲内で検索]に直接検索したい値を指定しても構いません。

「valFind」の代わりに「"11640"」や「"宿泊費"」などと指定することもできます。

HINT該当する値が複数あるときは

[範囲内で検索]では、Excel上に見つかった最初のセルを返します。このため、指定した値を含むセルがExcel上に複数あったとしても、最初に見つけたセル番号しか返しません。

複数候補があるとききは、フィルタリングを使った方が効率的です。

データテーブルをフィルタリング

「仮払いデータのみ」や「特定の金額以上」など、条件を指定してデータを抽出したいときは[データテーブルをフィルタリング]でデータを抽出します。

1[Excelアプリケーションスコープ]を追加する

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

2データを読み込む

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

3条件が合ったときの処理を追加する

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

4[フィルターウィザード]で入出力のテーブルを指定する

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

HINT[テーブルをフィルター]も使える

UiPath Studioには、Excel上のテーブルを直接操作できる[テーブルをフィルター]というアクティビティも用意されています。あらかじめExcel上でデータをテーブルとして定義しておく必要がありますが、この機能を使うことで、Excel上で直接、特定のデータを抽出することができます。

なお、[テーブルをフィルター]では、条件を[プロパティ]パネルの[フィルターオプション]で指定しますが、「{"交通費"}」のように「{}」で囲んだ配列として値を指定する必要があります。

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

5フィルターを設定する

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

HINT列を数字で指定するときは

ここでは、手順5で列を「2」と番号で指定しています。番号は0から数えられるので、列A→0、列B→1、列C→2となります。もちろん、「"種別"」と見出しを指定することもできます。

6別シートに抽出結果を書き込む

Excelから特定のデータだけを抽出するには(範囲内で検索、フィルターウィザード) - できるUiPath

HINTExcel関連のアクティビティを確認しよう

UiPath Studioには、Excelを操作するためのさまざまなアクティビティが搭載されていますが、バージョンアップのタイミングで新機能が次々に追加されています。バージョン2018.3で追加された機能は次の通りです。

アクティビティ名 詳細
テーブルを作成 Excelの指定範囲をテーブルとして定義する
行の挿入・削除 行を追加/削除ができる
列の挿入・削除 列を追加/削除ができる
VBAの呼び出し ExcelのVBAを呼び出す
範囲内で検索 特定の値を持つセル番号を調べる
ワークブックのシートを取得 インデックスで指定したシート名を取得する
ワークブックの全シートを取得 Excelにあるすべてのシート名を取得する
重複行を削除 範囲内で重複する行を削除する
範囲を削除 指定範囲を削除する
範囲をコピー・貼り付け 指定範囲をコピーし、別の場所に貼り付ける
ピボットテーブルを更新 指定したピボットテーブルを更新する
ピボットテーブルを作成 指定したテーブルからピボットテーブルを作成する
選択範囲を取得 Excel上で選択した範囲を取得する
シートをコピー シートをコピーする

PointExcelデータを高い自由度で扱える

Excelのデータは、[範囲を読み込む]でまとめて読み込んでしまうのが簡単です。しかし、データが大量にあると、扱いが煩雑になるうえ、処理時の負荷も高くなります。[範囲内で検索]や[データテーブルをフィルタリング]を使って、必要なデータだけを選んで活用しましょう。

UiPath Studioでは、このようにExcelを扱うためのアクティビティが豊富にあるため、データをさまざまな形で活用できます。

提供:UiPath

関連まとめ記事