【UiPath応用】第6回:データテーブル操作~Excelを使わずに「フィルタ」「VLOOKUP」を高速処理~

こんにちは!UiPath メンターです。

「1万件ある売上データから、東京支店のデータだけを抽出したい」
「商品IDを元に、マスタ表から商品名を引っ張ってきたい(VLOOKUP)」

これらをExcelの機能(オートフィルタや関数)を使ってロボットにやらせることも可能です。
しかし、データ量が増えるとExcelが固まったり、動作が遅くなったりしますよね。

UiPathには、Excelを開かずにメモリ上だけでこれらを処理する専用機能があります。
驚くほど高速で、しかもバックグラウンドで動くため、画面操作のエラーとも無縁です。

1. データを絞り込む:「データ テーブルをフィルター」

まずは、特定の条件に合う行だけを残すフィルタリングです。

手順

  1. まず、元となるデータを [範囲を読み込み] で変数(例:dt_AllData)に格納しておきます。
  2. [データ テーブルをフィルター (Filter Data Table)] アクティビティを配置します。
  3. [フィルター ウィザード (Configure Filter)] ボタンをクリックします。

ウィザードの設定方法

この画面で「何を残して、何を捨てるか」を定義します。

  • 入力データテーブル (Input Data Table): 元のデータ(dt_AllData
  • 出力データテーブル (Output Data Table): 結果を入れる箱(例:dt_TokyoData
    ※元と同じ変数を指定すれば、上書き保存になります。
  • 行のフィルター (Filter Rows):
    • [保持 (Keep)]: 条件に合う行を残す(基本はこちら)。
    • [削除 (Remove)]: 条件に合う行を消す。
    • 条件欄: "支店名" = "東京" のように設定。

これで [OK] を押せば、一瞬で東京支店だけのデータテーブルができあがります!
あとはこれを [範囲に書き込み] でExcelに出力すれば完了です。

2. データを結合する:「データ テーブルを結合」

次は、Excelの「VLOOKUP関数」にあたる操作です。
「売上リスト」にある商品IDを使って、「商品マスタ」から商品名を持ってきたい時に使います。

手順

  1. 「売上リスト(dt_Sales)」と「商品マスタ(dt_Master)」をそれぞれ読み込んでおきます。
  2. [データ テーブルを結合 (Join Data Tables)] アクティビティを配置します。
  3. [結合ウィザード] を開きます。

結合の種類(ここが重要!)

ウィザードの真ん中にある「結合の種類」を選びます。

  • Inner (内部): 両方のテーブルにIDがあるデータだけ残す。(マスタにない商品は消える)
  • Left (左): 売上リスト(左)は全部残し、マスタ(右)があればくっつける。(マスタになければ空欄になる)
    ※VLOOKUPと同じ動きをしたいなら、通常はこれを選びます。
  • Full (完全): どっちかにあれば全部残す。

結合条件

「どの列を使って紐付けるか」を指定します。

  • データテーブル1: "商品ID"
  • 操作: =
  • データテーブル2: "商品コード" (名前が違っていても中身が同じならOK)

これで実行すると、売上リストの横に、対応するマスタの情報が連結された「巨大な横長のテーブル」が生成されます。

3. 必要な列だけ選ぶ:「列の削除」

結合すると、不要な列(例えば両方のテーブルにあった「ID列」が2つ重複するなど)まで含まれてしまいます。
最後にデータを整えましょう。

  • [データ列を削除 (Remove Data Column)]:特定の列を消します。
  • または、最初の [データ テーブルをフィルター] のウィザードにある [出力列 (Output Columns)] タブを使って、「必要な列だけリストアップして保持する」ということも可能です。

今回のまとめ

  • Excel操作よりも、データテーブル操作の方が圧倒的に速い
  • [フィルター] アクティビティで、行の抽出も列の整理もできる。
  • [結合] アクティビティを使えば、VLOOKUPのような紐付け処理が可能。

💡 メンターからのアドバイス:型に注意!

結合(Join)やフィルターをする時、「ID」が片方は数値(101)、もう片方は文字列(”101″)だと、ロボットは「一致しない」と判断してしまいます。
Excelから読み込む時に型を揃えるか、読み込み後に変換する必要があります。データがうまく結合されない時は、まず「型」を疑いましょう。

次回からは第3章「堅牢なロボットを作る」編。
ロボットがエラーで止まってしまった時、そのままフリーズさせるのではなく、「エラーが発生しました」と報告して安全に終了させる技術、「エラーハンドリング(Try Catch)」を学びます。
これを知っていると、夜間の無人実行も怖くありません!

タイトルとURLをコピーしました