データテーブルに列を追加する方法|Power Automate Desktop

データテーブルに列を追加するにはどうすればいい?

という疑問に答えて、Power Automate for desktopでデータテーブルに列を追加する方法をサンプルフローを使って解説します。

バージョン2.45(2024年6月)に「列をデータテーブルに挿入する」アクションが追加されたので、当記事で行っているような方式を実装する必要はなくなりました。でも、「技術的な幅を身に付ける」という意味はありますので、それでも良ければお読みください。

結構問い合わせのある内容ですね、これは。具体的な例を挙げながら考えていこうと思います。

下図のようなCSVファイルを読み込んで、データテーブルを作成します。この「SalesDetailData.csv」は675行あるので、[For each]アクションを使ってグリグリ操作するとなると、少し負荷があります。サンプルとしては軽すぎず、重すぎず、というところでしょう(10万件とかになると別次元になるので、この記事では触れません。データベースを使うべきでしょう)。

「SalesDetailData.csv」を使ったフローの概要を下に示します。「SalesDetailData.csv」からデータを取得し、データテーブル[CSVTable]に格納します。データテーブル[CSVTable]の最後の列の後に、[新しい列]という名前の新しい列を追加します。新しい列には値を書き込みます。

下図が列が追加されたデータテーブル[CSVTable]のイメージです。新しい列に「●」というテキストを書き込む条件は、列[SalesAmount]が1,000以下であることです。

Power Automate for desktopにはデータテーブルを操作するアクションが用意されていますが、列を追加するアクションは存在しません。UiPathと比べてデータテーブル関連が充実しているとは言えません。

この場合、3つの選択肢が考えられます。

  1. データテーブルやリストを駆使して何とかする
  2. データテーブル以外のツール(Excel等)を使う
  3. データテーブルをあきらめる

それぞれの方法でフローを作ってみようと思います。どれも正解というわけではないし、他にも方法は考えられるので、参考程度にしてください。もっと良い方法があれば、コメントで教えてくれれば幸いです。

データテーブルやリストを駆使して何とかする

データテーブルやリストを駆使して何とかする方法を考えていきましょう。以下のようなフローが考えられます。

上記フローを解説します。最初にCSVファイルから取得したデータをデータテーブル[CSVTable]に格納します。次に新しいデータテーブル[NewTable]を作成します。データテーブル[NewTable]はデータテーブル[CSVTable]の全フィールド+[新しい列]を持っています。

データテーブル[NewTable]を作成する前提として、データテーブル[CSVTable]が持っている列の数と名前は知らない、ということにします。より汎用的なロジックにできますから。

データテーブル[NewTable]の型が出来上がったら、データテーブル[CSVTable]の件数分ループしながら、データテーブル[NewTable]に列を追加していきます。このループ中に[新しい列]に、値も入れていきます。

新しい列に「●」というテキストを書き込む条件は、列[SalesAmount]が1,000以下であることです。

最後にデータテーブル[NewTable]をデータテーブル[CSVTable]に上書きします。これでデータテーブル[CSVTable]に列が追加されたように見える、というわけです。かなり手間がかかりますね…。

フローを解説

では、上記フロー図をPower Automate for desktopのフローで作った場合を見ていきましょう。

ここから先はPADサポート倶楽部会員になることで閲覧できます(タイトルにFreeと書いてある記事は無料会員登録することで読めます)。会員の方はログインしてください。

コメント ログインすると書き込めます