エクセル編集① (フィルタ)

エクセル編集

関連記事:エクセル編集① (フィルタ2)

記事一覧:目次

使用:配列、フィルタ、for each row、get row item、build data table、add data row


1.まずは公式でも紹介されているエクセル編集の方法から。データにフィルタをかけて抜き出すというもの。他のやり方は色々ありますが、前述の通りまずは公式紹介の通りに。用意したデータは画像の通り。


2.上記エクセルSheet3のデータを、read rangeでdatatable(名前DT1)に入れる。1行目をヘッダーと認識する為、2枚目画像のOptions、AddHeadersへのチェックは忘れずに。


3.続いて、DT1のデータにフィルタをかけていきたい(行の編集)ので、for each rowを使用する。for eachは順に繰り返していくという処理。


4.bodyの中にGet row item を入れ、各行のデータを取得していく。郵便番号を変数adに、都道府県をad2に、フラグをFLGに入れる。


5.前項目までの処理でDT1のデータを各行ごとに読み込んだので、ifで「フラグ有り」を抽出し、write lineで試しに結果を出力してみる。


6.ちゃんとフラグ有りのデータが取得されている事が確認できる。


7.抽出されている事は確認できたので、次は出力処理へ。add data rowという機能を使って出力していく。


8. add data rowのプロパティは画像の通り。出力したいデータは複数データの集まりとなるので、ArrayRowには「配列」を使って出力したい変数を入れていく。出力したデータは、newDTというデータテーブルの中に入れる。※配列はここで人生初使用なので、説明は出来ません…。


9.続いてsheet3の元データ(DT1)にフィルタをかけたので、write rangeでフィルタ結果(newDT)をsheet4に出力する。add headerにチェックをいれたらrangeはA1、入れないならA2に。※もしA2にする場合は、sheet4に後述11項目のヘッダーを作る。


10.一通り完成したので実行をしてみると、add data rowの所で画像のようなエラーが。


11. エラーはnewDTが無いというもの。項目8でadd data rowを設定した時のプロパティを見直してみると、「各データをnewDTに入れる」と指定しただけで、newDT自体は作ってなかった事が原因。newDTは作り方も何種類かありますが、とりあえずread rangeを使って設定する。

sheet4にタイトルだけの空データを作って、read rangeで読み込み、newDTに格納する。


12.続いて別のnewDTの作り方も紹介。公式で紹介されている、build data tableを使用してnewDTを作成する方法。

data table...をクリックして、表を一つずつ作っていく。


13.格納先のnewDTも完成したので、メインフローを再度実行。sheet4を見てみると、ちゃんとフラグ「済」のものだけが抽出されている。もし新規ファイルとして保存したい場合は、write rangeのエクセル名部分を好きな名前に変更する。

uipathメモ

uipathの操作手順メモです。条件式や変数、VB.NET等の知識はほぼありませんので、分からないなりの操作方法になっています。適切な変数や配列、VB.NET等を使用する事で遥かに工数が減る部分もあると思いますので、その際はご教授頂けますと幸いです。