「ExcelファイルにフィルターをかけながらExcelを分割しているが時間がかかるし苦痛だ…。」といった悩みを持つ人に向けて、UiPathで解決する方法を解説しています。

この記事では

・フィルターをかけてExcelを分割する方法
・1本の本格的なワークフローの作り方

がわかります。

動作条件
■動作条件
Excelがインストールされている必要があります。

■以下の環境で検証しています。
OS:Windows10
UiPath Studio:バージョン2022.4.3 Community License
(クラシックデザインエクスペリエンス)

それでは、頑張ってワークフローを作成しましょう!

僕の信頼性
こさい
こさい

完全自動化研究所の小佐井です

1) IT歴25年超。開発から業務改善まで幅広く経験してきました
2) 複数の企業においてRPAのコンサルティングを行っています
3) RPA関連の書籍を5冊出版しています

  1. オープンソースで作る!RPAシステム開発入門
  2. 実務者のための失敗しないRPAシナリオ設計入門
  3. UiPath業務自動化最強レシピ
  4. WinActor業務自動化最強レシピ
  5. Power Automate for desktop業務自動化最強レシピ

業務イメージ

[SalesDetailData.xlsx]は商品番号(ItemNo)ごとの売上明細表に担当者コード、担当者名、顧客名が付いています。この[SalesDetailData.xlsx]を担当者別に個別のファイルに分割するオートメーションが本記事のターゲットです(図1)。

図1:[SalesDetailData.xlsx]を分割する

作成準備

ワークフローを作成する前の準備を行ってください。

STEP1

UiPath Studioを起動し、新たにプロジェクトを作成する。

STEP2

作成したプロジェクトフォルダーの中に、サンプルファイル[SalesDetailData.xlsx]をコピーする。サンプルファイルは下のボタンをクリックするとダウンロードできます。

“SalesDetailData.xlsx” をダウンロード SalesDetailData.xlsx – 30 回のダウンロード – 45 KB

これで準備は完了です。

作成手順

それでは、ワークフローを作成してください。まずは全体の枠を作ってください。

全体の枠を作る

STEP1

Main.xamlを開く。

クラシック デザイン エクスペリエンスで解説しています

この記事はクラシック デザイン エクスペリエンスで解説しています。この記事を参考にしてワークフローを作成する場合は、以下の記事を読んでUiPath Studioをクラシック デザイン エクスペリエンスに変更してください。

STEP2

[フローチャート(Flowchart)]アクティビティを追加し、名前を「Main」に変更する。

STEP3

[Main]フローチャートをダブルクリックして展開し、[Main]フローチャート上に以下の3つのアクティビティを追加し、順番に流れ線で結ぶ(図2)。

[Excel アプリケーションスコープ]アクティビティを追加し、 表示名を「売上明細Excelを読み込む」にする。

[シーケンス]アクティビティを追加し、表示名を「データ加工」にする。

[シーケンス]アクティビティを追加し、表示名を「担当者別Excel書き出し」にする。

図2を参考に[Start]→[売上明細Excelを読み込む]→[データ加工]→[担当者別Excel書き出し]を流れ線で結ぶ。

図2:[Main]フローチャート

売上明細Excelを読み込む

[SalesDetailData.xlsx]を読み込み、データテーブル[SalesDetailData]に出力するワークフローを作成します。

STEP1

[売上明細Excelを読み込む]をダブルクリックし、アクティビティを展開する。[Browse for File](フォルダー型のアイコン)をクリックして、[SalesDetailData.xlsx]を選択する([ブック パス]プロパティに直接入力してもよい。この場合「“(ダブルクォーテーション)」でパスをくくるのを忘れずに)(図3❶)。

STEP2

[売上明細Excelを読み込む]のプロパティ[可視]のチェックを外す。

STEP3

[実行]の中に[範囲を読み込み]アクティビティを追加する(図3❷)。

図3:[売上明細Excelを読み込む]のワークフロー

STEP4

[範囲を読み込み]アクティビティの[データテーブル]プロパティの入力ボックスにカーソルをあてた状態でCtrl+Kキーを押し、[変数を設定]に「SalesDetailData」と入力し、Enterキーを押す。データテーブル[SalesDetailData]が作成される(図4)。

図4:[範囲を読み込み]アクティビティのプロパティ

STEP5

[変数]パネルを開き、[SalesDetailData]のスコープを[Main]に変更する。

データ加工

データテーブル[SalesDetailData]から担当者コードのユニーク(一意)なリストを作り出すワークフローを作成します。

STEP1

Mainのフローチャートに戻り、[データ加工]をダブルクリックし展開する。

STEP2

[データテーブルをフィルター]アクティビティを追加する(図5)。

STEP3

[フィルターを設定]をクリックする(図5)。

図5:[データテーブルをフィルター]アクティビティ

[フィルターウィザード]画面が表示されます。

STEP4

[入力データテーブル]にデータテーブル[SalesDetailData]を設定する(図6)。

STEP5

[出力データテーブル]の入力ボックスにカーソルをあてた状態でCtrl+Kキーを押し、[変数を設定]に「StaffCDData」と入力し、Enterキーを押す(図6)。

データテーブル[StaffCDData]が作成されます。

STEP6

[出力列]タブを選択し(図6❸)、入力ボックスに「”担当者コード”」と入力する(図6)。

これにより、データテーブル[StaffCDData]にはデータテーブル[SalesDetailData]の担当者コードのみが格納された状態となります。

STEP7

[OK]をクリックする(図6)。

図6:[フィルターウィザード]画面

[フィルターウィザード]画面が閉じられます。

STEP8

[変数]パネルを開き、[StaffCDData]のスコープを[Main]に変更する。

STEP9

[重複行を削除]アクティビティを[データテーブルをフィルター]アクティビティの後に追加する。

※)[重複行を削除]アクティビティは2つ存在します。[アクティビティ]パネルの[使用可能]→[プログラミング]→[データテーブル]の方を選択してください。

表示名を「担当者コード重複行を削除」に変更する。

プロパティ[入力/データテーブル]にデータテーブル[StaffCDData]を設定する。

プロパティ[出力/データテーブル]にもデータテーブル[StaffCDData]を設定する。

[データ加工]のワークフローが完成しました(図7)。

図7:完成した[データ加工]のワークフロー

担当者別Excel書き出し

担当者コードでデータテーブル[SalesDetailData]を絞り込み、絞り込んだデータをExcelファイルに書き込むワークフローを作成します。

STEP1

[Main]フローチャートに戻り、[担当者Excel書き出し]をダブルクリックし展開する。

STEP2

[繰り返し(データテーブルの各行)]アクティビティを追加する。

表示名を「StaffCDData繰り返し(データテーブルの各行)」に変更する(図8❶)。

プロパティ[データテーブル](アクティビティ上では[次のコレクション内の各要素])にデータテーブル[StaffCDData]を設定する(図8❷)。

[繰り返し]を[staffid]に変更する(図8❸)。

図8:[StaffCDData繰り返し(データテーブルの各行)]の設定

STEP3

[StaffCDData繰り返し(データテーブルの各行)]の[本文]に[データテーブルをフィルター]アクティビティを追加する。

[フィルターウィザード]をクリックし、[フィルターウィザード]画面を表示する。

[フィルターウィザード]画面の[入力データテーブル]にデータテーブル[SalesDetailData]を設定する(図9❶)。

[フィルター処理するデータテーブル]にカーソルをあてた状態で[Ctrl]+[K]キーを押し、[変数を設定]に「StaffSalesData」と入力し、[Enter]キーを押す。

データテーブル[StaffSalesData]が作成されます(図9❷)。

[行フィルターモード]に[保持]と[削除]を選択するラジオボタンがあるので[保持]を選択する(図9❸)。

[フィルターウィザード]画面の[フィルター行]タブを選択し、[列]に「”担当者コード”」と入力する(図9❹)。[操作]に「=」を選択し(図9❺)、[値]に「staffid.Item(“担当者コード”)」と入力する(図9❻)。

[OK]をクリックする(図9❼)。

図9:[フィルターウィザード]画面

[フィルターウィザード]画面が閉じます。

これにより、データテーブル[SalesDetailData]が1人の担当者に絞り込まれ、データテーブル[StaffSalesData]に格納されます。

STEP4

[データテーブルをフィルター]アクティビティの後に[Excel アプリケーションスコープ]アクティビティを追加し(図10❶)、プロパティ[ブックのパス]に「“StaffSales_”+ staffid.Item(“担当者コード”).ToString +”.xlsx”」と入力する(図10❷)。

STEP5

[Excel アプリケーションスコープ]アクティビティの[実行]の中に[範囲に書き込み]アクティビティを追加し、プロパティ[データテーブル]にデータテーブル[StaffSalesData]を設定する(図10❸)。

※)[範囲に書き込み]アクティビティは2つあります。[アクティビティ]パネルの[使用可能]→[アプリの連携]→[Excel]の方を選択してください。

図10:[Excelアプリケーションスコープ]アクティビティの設定

こさい
こさい
お疲れ様です!これで完成です。

使用する変数

ワークフロー内で使用する変数は表1の通りです。

表1:使用する変数

名前 変数の型 スコープ 既定値
SalesDetailData DataTable Main
StaffCDData DataTable Main
StaffSalesData DataTable 本文

実行してみよう

それでは、ワークフローを実行してください。数秒でワークフローは終了します。

実行すると図11のように、担当者コードが付いたファイルがプロジェクトフォルダーに作成されます。ファイルの中を見ると、担当者別に絞り込まれていることが確認できます。

図11:実行後のExcelファイル

めーたん
めーたん
ファイルを分割する事務作業が無くなるわ!

分割元のデータを取ってくるところや
分割したファイルをメール送信するところ等も
自動化すれば、さらに楽になるね!
こさい
こさい

さらにUiPathに詳しくなるには

まとめてUiPathの知識を身に付けたい方は、ぜひ書籍をお読みください。

人気記事ランキング(UiPath)

1 2 3 4 5 6 7 8 9 10