よく聞かれる習い始めの方のつまづき
私の記事の中ではあまり難しくありません
PowerAutomateDesktopのVerは2024年6月以降のものにしてください。
例)毎日とあるcsvファイルがメールで送られてくる
その中には1カ月分が毎日更新されて記載されているけれど台帳.xlsxに書き写したい。
そういった時に2つのデータを比較して重複していないデータを調べるのに
ExcelだとVlookUpまたはCountIf関数などを利用して調べていたと思います。
PowerAutomateDesktopだとどうできますか?
こういった質問をよく受けました。
2024年6月のバージョンアップでデータテーブル系アクションが追加となり
その回答の仕方が変わりましたのでこの記事を書きます。
やり方
まずcsvとExcelのデータをそれぞれ読み込みましょう
CSV
Excel
※日付のデータが入っているとき読み取ると自動で時間も追加されてしまうので
セルの内容をテキストとして取得のトグルをオンにしています
ここからが新しいやり方
2つのデータテーブルを結合アクションを使用
アクション内コマンド | 入力内容 |
---|---|
最初のデータテーブル | %CSVTable% |
2つ目のデータテーブル | %ExcelData% |
結合操作 | 完全 |
ルールを結合 | 下記画像を参照 |
※今回はすべての項目が合致するようにしましたがその限りではありません。
結果は下記のとおりで2つのデータテーブルがくっつき、
データが存在する場合は入荷日(2)、商品名(2)…のところに項目が記載されました。
これらが見つけたかった重複データです。
ここでフィルターデータテーブルアクションの追加
今回データを取得したいのは入荷日(2)、商品名(2)…が空欄となっているデータですので
フィルターデータテーブルアクションを使います。
アクション内コマンド | 入力内容 |
---|---|
データテーブル | %JoinedDataTable% |
適用するフィルターの編集 | 下記画像を参照 |
下記画像のように演算子を空白であるを選択してください。
列名はインデックスで指定してみましたが、インデックス指定の場合は1,2,3…ではなく0,1,2,3…と0からのスタートですので注意しましょう。
結果は下記の通りです。これで重複していないデータのみを取り出せました。
最後に
Excelで取得したデータテーブルは
データテーブルアクションで操作できるということ自体を知らない方も多いと思います。
しかしながら今回データテーブル系のアクションが多く追加され
Loopしながら取得することがかなり減りました。
これをきっかけにぜひデータテーブルアクションを利用していくとよいと思います
※ただし大量のデータ操作の場合は
データベースコマンドが固まってしまったりすることがあるので
ご自身の環境で一度試してから使ってみてください。