【Power Automate】データテーブル内で検索または置換するアクションについて

デスクトップ版Power Automate(以降PAD)にてあるデータテーブルから値を集計して合計する際に「データテーブル内で検索または置換する」アクションが便利だったため本コラムにて紹介します。

■「データテーブル内で検索または置換する」アクション

以下のテストデータで「合計」の金額を集計したい場合を考えます。

図1:テストデータ(データテーブル型)

基本的にFor EachアクションとIFアクションを組み合わせて繰り返し処理をさせることで実現が可能です。

図2:For EachアクションとIFアクションでの実装例

図2の実装だとデータテーブル内のデータを先頭から順にすべてIFアクションの条件処理が実行されてしまうためデータ数が多くなるほどパフォーマンスの低下が想定されます。「データテーブル内で検索または置換する」アクションを使用することで回避することが可能です。

図3:「データテーブル内で検索または置換する」アクションでの実装例
図4:「データテーブル内で検索または置換する」アクション設定例

<動作>
データテーブル内で検索条件に該当するデータの行インデックスと列インデックスを取得する

<設定例>
データテーブル:%ExcelData%
検索モード:検索
すべての一致:有効(有効にすることでデータテーブル内の検索条件に一致するすべての行インデックスと列インデックスを取得できます)
検索するテキスト:合計
セルの内容が完全に一致する:有効(有効にすることで「検索するテキスト」に設定した文字列と完全に一致するもののみを対象とできます)
検索条件:列の場合
列のインデックスまたは名前:数量

図5:「データテーブル内で検索または置換する」アクションにて取得される情報

「データテーブル内で検索または置換する」アクションにて作成される変数はデータテーブル型でRow列とColumn列で構成されます。図1のテストデータ内の「数量」列の「合計」という文字列が存在する行インデックスと列インデックスが取得されていることがわかります。図3のように%DataTableMatches%変数をForEachアクションで繰り返し処理することにより実装が可能です。図2の処理とは異なり%ExcelData%内を先頭から最後まで処理されることがないためフローのパフォーマンスを向上させることができます。

フロー作成する中でデータテーブル型を扱う場面は多くあるかと思われます。データテーブル専用のアクションが数多く用意されていますので本コラムを参考に活用いただきパフォーマンスの良いフロー作成を目指していただけたらと思います。

cropped-logo-1.png

技術とノウハウでデジタルシフトをサポート
中小企業の頼れるパートナー

執筆者: 村瀬 俊昭(株式会社クロスディーズ システム技術統括エンジニア)

前職では社内システムの運用、サーバーの監視、システム運用業務の構築、システム開発業務といった業務に幅広く携わる。2021年より株式会社佐々木総研にてロボットの設計・開発、社内SEとして従事している。釣りが趣味で、大のビール好き。