Power Automate Desktop(PAD)で、重複行を削除する方法について解説します。
はじめに:PADでデータテーブルの重複行を削除するアクションはない
はじめに、PADでデータテーブルの重複行を削除するアクションはありません。
リストには「リストから重複する項目を削除」というアクションがあり、これを活用しようかとも思ったのですが、2次元配列だと全ての列を見る必要があります。For eachループで1行目の1列、2列…と見ていく方法もできなくはないと思いますが、めんどくさそうなのでPAD内で重複削除するのは諦めます。
PADではなく、いったんExcelにデータテーブルの内容を展開して、Excelの機能を使って重複行を削除したいと思います。
データテーブルをExcelに転記する
データテーブルの内容をExcelに転記します。
Excelの起動
データテーブルをExcelに転記
Excelシートにデータテーブルの値が転記されます。
重複データの削除
Excelの機能を使って重複データの削除を行います。PADからExcelを操作する場合、キー送信のアクションを使って行います。
ウインドウをExcelにフォーカスする
キーの送信アクションを使う際に、Excelが最前面にきていないと失敗することがあるので以下アクションを追加します。
データが存在する範囲を全選択する
まず、データが入っている範囲を全選択します。
{Control}{Home}
{Control}{A}
の順に設定します。
重複データを削除する
Alt → A →M の順番でショートカットキーを操作します。ここまでで、フローを実行すると「重複の削除」メニューが表示されたかと思います。
この画面は、ご自身の扱っている表によって列数が異なると思いますので、「OK」を押せるようになるまでの回数分「キーの送信」アクションでTabを送信します。
最後に「重複が削除されました」とダイアログが出るので、それも閉じるために上記のようなキー送信を行います。
ここまででフローを実行すると、重複していたデータが削除されたことが確認できました。
重複削除したデータをPADに戻す
※Excelの表を扱っている場合、この作業は不要です
PADにデータテーブル形式で重複削除したデータを戻したい場合、ExcelデータをPAD側で読み込む必要があります。
「取得」には、「ワークシートに含まれる使用可能なすべての値」を指定します。新しいデータテーブル変数 ExcelData には、重複削除後のデータが格納されます。
これで、データテーブルの重複削除が完了しました。
フロー全体
フロー全体は以下のようになります。
注意点
本フローを実行する際の注意点です。
キーの送信が反応しない場合
キーの送信がうまくいかない場合、キー操作がはやすぎる場合があります。その場合は、アクションの前後に適宜「Wait」アクションを追加してください。
キーの送信が意図した通りに動かない場合
環境によってはショートカットキーが異なるかもしれませんので、その場合はAltキーを押してガイドを確認してみてください。
すると、上記のようにショートカットキーのガイドが表示されますので、それに従って送信するキーを設定してください。
まとめ
今回は、Power Automate Desktop(PAD)で、重複行を削除する方法について解説しました。
データテーブル(2次元配列)の場合、PADで重複削除をするよりも、いったんExcelに展開してから重複削除するほうが楽だと思います。フロー全体を見れば分かるように、ほとんどが「キーの送信」にて行っています。リストのアクションのように、データテーブルにも重複削除のアクションが追加されたら便利ですよね。。。
当ブログでは、Power Automate、Power Automate Desktopに関する記事を他にも投稿しています。もし、「このようなことが知りたい」「こんなフローの作り方が知りたい」等ございましたら、問い合わせやコメントからお気軽にご連絡ください。
参考:Power Automate ファイルの名前を変更する
コメント