ExcelファイルにフィルターをかけながらExcelを分割してるけど、時間がかかるし苦痛だな……。
といった悩みを持つ人に向けて、UiPathで解決する方法を解説しています。
この記事では
・1本の本格的なワークフローの作り方
がわかります。
Excelがインストールされている必要があります。
■以下の環境で検証しています。
OS:Windows10
UiPath Studio:バージョン2022.4.3 Community License
(クラシックデザインエクスペリエンス)
それでは、頑張ってワークフローを作成しましょう!
業務イメージ
[SalesDetailData.xlsx]は商品番号(ItemNo)ごとの売上明細表に担当者コード、担当者名、顧客名が付いています。この[SalesDetailData.xlsx]を担当者別に個別のファイルに分割するオートメーションが本記事のターゲットです(図1)。
図1:[SalesDetailData.xlsx]を分割する
ワークフロー作成
作成準備
ワークフローを作成する前の準備を行ってください。
STEP1UiPath Studioを起動し、新たにプロジェクトを作成する。
STEP2作成したプロジェクトフォルダーの中に、サンプルファイル[SalesDetailData.xlsx]をコピーする。サンプルファイルは下のボタンをクリックするとダウンロードできます。
“SalesDetailData.xlsx” をダウンロード SalesDetailData.xlsx – 553 回のダウンロード – 44.53 KBこれで準備は完了です。
作成手順
それでは、ワークフローを作成してください。まずは全体の枠を作ってください。
全体の枠を作る
STEP1Main.xamlを開く。
この記事はクラシック デザイン エクスペリエンスで解説しています。この記事を参考にしてワークフローを作成する場合は、以下の記事を読んでUiPath Studioをクラシック デザイン エクスペリエンスに変更してください。
[フローチャート(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]から担当者コードのユニーク(一意)なリストを作り出すワークフローを作成します。
STEP1Mainのフローチャートに戻り、[データ加工]をダブルクリックし展開する。
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ファイル
分割したファイルをメール送信するところ等も
自動化すれば、さらに楽になるね!
コメント ログインすると書き込めます