PowerAppsのAddColumns関数は使いづらい?テーブル操作に便利な活用術を解説

「コレクションに新しい列を追加したいけど、どの関数を使えばいいの?」

「既存データに計算結果を加えたいけど、元のデータは変更したくない…」

PowerAppsでコーディングを進めているとこういう場面もありますよね。

AddColumns関数を使えば、元のデータソースを変更することなく、新しい列を追加し、動的にデータを拡張できます。

例えば、売上データに「税込価格」を追加したり、従業員リストに「フルネーム」を生成したりと、さまざまな場面で活用可能です。

この記事では、AddColumns関数の基本構文から応用例までを詳しく解説します。

また、Filter・Sort・GroupByなどの関数と組み合わせた高度なデータ処理方法も解説しています。

PowerAppsでのデータ操作をスムーズに行いたい方は、ぜひ最後までチェックしてみてくださいね。

PowerAppsをもっと効率的に学びたいと考えている方には、Udemyのオンライン講座がおすすめです。
初心者向けのコースが充実しており、動画で実践的に学べるため、独学よりもスムーズにスキルを習得できます。
特に、PowerAppsの基本操作や関数の使い方を体系的に学びたい方に最適です。

この記事を書いた人
  • 一部上場企業に勤める会社員
  • ITエンジニア未経験
  • 2024年7月から社内DX担当に異動
  • 同時期にPowerPlatformを始める
  • 効率的に学ぶためにブログスタート
ちょびです!
目次

AddColumns関数の基本構文と使用方法

Power Appsでデータを操作するとき、コレクションなどの既存テーブルに新しい列を追加し、各レコードに対して計算や加工を行いたい場合があります。

AddColumns関数は、元のデータソースを変更せずに、新たな列を持つテーブルを生成するために使用されます。

基本構文

AddColumns関数の基本的な構文は以下の通りです。

AddColumns(テーブル, 列名1, 数式1 [, 列名2, 数式2, ...])
  • テーブル:操作対象のテーブルを指定します。
  • 列名:追加する列の名前を文字列で指定します。
  • 数式:各レコードに対して評価される数式を指定します。

この構文により、指定したテーブルに新しい列を追加し、その列の値を数式で定義できます。

テーブルへの新しい列の追加方法

AddColumns関数を使用して、既存のテーブルに新しい列を追加する具体的な方法を見てみましょう。

例えば、商品リストに「税込価格」という列を追加する場合、以下のように記述します。

AddColumns(商品リスト, "税込価格", 販売価格 * 1.1)

このコードでは、「商品リスト」の各レコードに対して「販売価格」に10%の税を加算した「税込価格」列を追加しています。

元の「商品リスト」は変更されず、新たな列が追加されたテーブルが返されます。

既存の列を基にした新しい列の作成

既存の列の値を基にして新しい列を作成することも可能です。

例えば、従業員の労働時間を管理するテーブルにおいて、「開始時間」と「終了時間」の差から「労働時間」を計算して追加する場合、以下のように記述します。

AddColumns(労働記録, "労働時間", DateDiff(開始時間, 終了時間, Minutes))

上記のコードでは、「労働記録」テーブルに「労働時間」列を追加し、「開始時間」と「終了時間」の差を分単位で計算しています。これにより、各従業員の労働時間を簡単に把握できます。

AddColumns関数を活用することで、データの柔軟な操作や表示が可能となり、アプリケーションの機能性を高められます。

AddColumns関数と他の関数の組み合わせ

PowerAppsのAddColumns関数は、単体での使用だけでなく、他の関数と組み合わせれば、より高度なデータ処理が可能になります。

  • Filter関数と連携させてデータを絞り込む
  • Sort関数でデータを並べ替えて整理する
  • GroupBy関数を組み合わせてデータを集計する

ここでは、Filter関数・Sort関数・GroupBy関数と連携させて、データの絞り込み、並べ替え、集計を行う方法を解説します。

Filter関数と連携させてデータを絞り込む

Filter関数は、特定の条件に合うデータのみを抽出するために使用します。

Filter関数とAddColumnsを組み合わせれば絞り込んだデータに新しい列を追加できます。

例えば、「販売価格が5000円以上の商品リスト」に「税込価格(10%)」を追加する場合、以下のように記述します。

AddColumns(
    Filter(商品リスト, 販売価格 >= 5000),
    "税込価格",
    販売価格 * 1.1
)

このコードの動作は以下のようになります。

  1. Filter関数で「販売価格が5000円以上の商品」を抽出する
  2. AddColumns関数で「税込価格」列を追加する

特定の条件を満たすデータだけに対して新しい列を追加できるので、必要な情報を効率的に表示できるでしょう。

Sort関数でデータを並べ替えて整理する

Sort関数は、テーブルのデータを特定の列の値に基づいて昇順または降順に並べ替えるために使用します。

Sort関数とAddColumnsを組み合わせると並べ替えたデータに新しい列を追加できます。

例えば、「商品リスト」を「販売価格」の昇順で並べ、「税込価格」を追加する場合、以下のように記述します。

AddColumns(
    Sort(
        商品リスト,
        販売価格,
        Ascending
    ),
    "税込価格",
    販売価格 * 1.1
)

このコードの動作は以下の通りです。

  1. Sort関数で「販売価格」を昇順に並べ替える
  2. AddColumns関数で「税込価格」列を追加する

この方法を応用すれば「安い順に商品を並べ、税込価格も表示する」ようなリストを簡単に作成できます。

GroupBy関数を組み合わせてデータを集計する

GroupBy関数は、特定の列の値ごとにデータをグループ化し、新しいテーブルを作成するために使用します。

AddColumnsと組み合わせることで、グループ化したデータに対して追加の情報を付加できます。

例えば、「商品リスト」を「カテゴリごと」にグループ化し、各カテゴリごとの「合計販売価格」を追加する場合、以下のように記述します。

AddColumns(
    GroupBy(
        商品リスト,
        "カテゴリ",
        "商品グループ"
    ),
    "合計販売価格",
    Sum(商品グループ, 販売価格)
)

このコードの動作は以下の通りです。

  1. GroupBy関数で「カテゴリごと」に商品をグループ化する
  2. AddColumns関数で各カテゴリの「合計販売価格」列を追加する

この方法を活用すれば「売上集計レポート」や「カテゴリ別の統計データ」などを簡単に作成できます。

AddColumns関数の応用例

AddColumns関数を応用すると、単なる列の追加にとどまらず、データの分析や加工、条件分岐による分類など、さまざまな用途に活用できます。

  • 計算列の追加による売上データの分析
  • 文字列操作によるフルネームの生成
  • 条件付きの列追加によるデータ分類

ここでは、計算列の追加・文字列操作・条件付きの列追加の3つの応用例を紹介します。

計算列の追加による売上データの分析

売上データの分析では、単価と数量から売上額を計算する、割引後の価格を求めるなど、計算列を追加することで可視化を強化できます。

例えば、「売上額(単価×数量)」と「割引率10%を考慮した割引後価格」を追加する場合は、以下のように記述します。

AddColumns(
    売上データ,
    "売上額",
    単価 * 数量,
    "割引後価格",
    単価 * 数量 * 0.9
)

この方法を使うことで、価格や数量の変動を考慮した売上分析が簡単に行えます。

グラフやリストビューでの表示にも適しており、売上トレンドを直感的に把握できます。

文字列操作によるフルネームの生成

データの管理では、姓と名を結合してフルネームを作成することがよくあるケースです。

AddColumns関数と文字列操作を組み合わせることで、動的に新しい列を追加できます。

例えば、従業員データの「姓」と「名」から「フルネーム」を作成する場合、以下のように記述します。

AddColumns(従業員リスト, "フルネーム", 姓 & " " & 名)

この式では、姓と名を半角スペースで結合し、「フルネーム」列を追加しています。

他にも、顧客リストで「会社名」と「担当者名」を結合し、「担当者情報」を作成する場合は、次のようになります。

AddColumns(顧客リスト, "担当者情報", 会社名 & " - " & 担当者名)

このように、データの見やすさや検索性を向上させるために、文字列操作を活用すると便利です。

条件付きの列追加によるデータ分類

条件分岐を適用して、データを分類することも可能です。

例えば、売上データに基づいて「売上カテゴリ」を付与する場合、If関数と組み合わせてAddColumnsを活用します。

AddColumns(
    売上データ,
    "売上カテゴリ",
    If(売上額 >= 100000, "高額", If(売上額 >= 50000, "中額", "低額"))
)

この式では、売上額に応じて以下のように「売上カテゴリ」を設定します。

  • 10万円以上 →「高額」
  • 5万円以上10万円未満 →「中額」
  • 5万円未満 →「低額」

また、顧客の年齢に基づいて「世代分類」を行う場合、次のように記述できます。

AddColumns(
    顧客データ,
    "世代",
    If(年齢 >= 60, "シニア", If(年齢 >= 40, "ミドル", If(年齢 >= 20, "ヤング", "未成年")))
)

このような条件付き分類を活用すれば、データのグループ分けやターゲットセグメントの分析が容易になります。

AddColumns関数を使用する際の注意点

AddColumns関数はテーブルに使い勝手の良い列を追加できるので、とても便利ですが気をつけるべきポイントも存在します。

  • データソース自体は変更されないこと
  • 委任の制限とパフォーマンスに影響があること
  • 列名の指定方法にクセがあること

それぞれ解説していきます。

データソース自体は変更されないことの理解

AddColumns関数は、元のデータソースを直接変更しないため、動作の仕組みを理解しておくことが重要です。

この関数は、新しい列を追加した「一時的なテーブル」を作成するだけであり、元のデータソースには影響を与えません。

例えば、以下のコードを実行しても、元の「商品リスト」には「税込価格」列は追加されません。

AddColumns(商品リスト, "税込価格", 販売価格 * 1.1)

このため、元のデータソースに新しい列を恒久的に追加するには、Patch関数やコレクションの更新を組み合わせる必要があります。

もし、新しい列をアプリ内で一時的に使用する場合は問題ありませんが、データの永続化が必要な場合は、コレクションを作るなど適切な手法を選択しましょう。

委任の制限とパフォーマンスへの影響

AddColumns関数は委任できないため、大規模なデータセットを扱う際にはパフォーマンスの低下に注意が必要です。

委任とは、データの処理をデータソース側に委ね、クライアント側で処理負担を軽減する仕組みです。

しかし、AddColumns関数はすべてのデータをローカルに取得した後に処理を実行するため、大量のレコードがある場合には動作が遅くなる可能性があります。

例えば、SharePointリストやSQLデータベースをデータソースとする場合、リストのすべてのデータを取得してから新しい列を追加するため、2000件(デフォルトでは500件)を超えるデータを扱うとパフォーマンスの問題が発生する可能性があります。

パフォーマンスの最適化には、以下の方法を検討してみてください。

  • 事前にFilter関数で対象データを絞り込む
  • コレクションを使用して一時データとして格納する
  • データソース自体に計算用の列を追加する

列名の指定方法と最新バージョンでの変更点

列名の指定方法には注意が必要です。PowerAppsのバージョンによっては、列名の指定方法や挙動が変わることがあります。

従来のPowerAppsでは、新しい列を追加する際に**文字列形式(”列名”)**で指定する方法が一般的でした。

AddColumns(データ, "新しい列", 数式)

しかし、最新バージョンでは列名を直接参照できるケースが増えており、システムの仕様変更によってエラーが発生する可能性があります。

特に、SharePointの列名にスペースが含まれている場合は注意が必要で、”OData_”プレフィックスが追加されることがあります。

例えば、「販売 価格」という列名がある場合、PowerApps内では「’販売 価格’」や「OData_販売_x0020_価格」と表記しないとエラーになる場合があるので注意が必要です。

バージョンアップの影響を受けないようにするために、列名の命名規則を統一し、列名にはスペースを入れないようにしましょう。

また、PowerAppsの公式ドキュメントやリリースノートを確認しながら最新の仕様に対応することが重要です。

AddColumns関数の活用でPowerAppsのデータ操作を強化しよう

AddColumns関数は、PowerAppsでデータを柔軟に扱うための便利な関数です。

元のデータソースを変更せずに新しい列を追加できるため、一時的なデータ加工や可視化に最適です。

さらに、Filter・Sort・GroupByなどの関数と組み合わせることで、データの絞り込み、並べ替え、集計といった高度な処理が可能になります。

PowerAppsでのデータ操作を強化するために、AddColumns関数の活用方法を理解し、適切に実装していきましょう。

PowerAppsはUdemyで学べる!

Udemy
学習スタイルオンライン講座
・動画
・スライド
運営会社株式会社ベネッセコーポレーション
期間購入した講座は無期限で視聴可能
料金1,500円〜29,000円(税込)
サポート年間通してセール多数開催
購入前に無料視聴可能
30日間返金保証 など

Udemyは、オンラインで幅広い分野のスキルを手軽に学べる、世界最大級のオンライン学習プラットフォームです。

PowerAppsだけでなく、PowerAutomateを含むPowerPlatform系以外にも以下のような講座があります。

Udemyで学べるジャンル
  • ビジネス
  • プログラミング
  • デザイン
  • 語学
  • 趣味 など

20万以上のコースから、動画講座で自分のペースで学習できます。

Udemyは不定期ですが頻繁にセールを開催します。
95%以上割引かれて1,500円で購入できる講座もありますよ!

最大95%OFFのセールをチェック! /

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次