
今回はPwerAppsの関数について見ていきます。
関数なんて誰でも使っているもので意識していないことも多いかもしれますが、そもそも関数とは何なのか、関数の記述についてどういった意味があるのかをエクセル良くも詳しく理解しておかないと、PowerAppsのデータ加工の際に混乱することもありますのでこれを機会にしっかりと理解しておきましょう。
特にPowerAppsはエクセルの関数とは違う概念で動くものもありますので、これを機に理解してみてください。
PowerAppsに必須の知識PowerFX対応の学習本はこちら
PowerApps学習の本命・実際のアプリももらえる学習本
PowerApps学習方法一覧

目次
関数とは
関数の役割は一般的には
何かしらのデータを返してくれる計算式
というように考えてもらって大丈夫です。
また関数は大きく分けて
- 与えるデータがある関数
- 与えるデータがない関数
- 与えたデータや条件を元に加工する関数
があります。
「与えるデータがある関数」と「与えるデータがない関数」はエクセルなんかでもよく使うのでイメージしやすいと思いますが、「与えたデータや条件を元に加工する関数」はPowerApps独特の概念になります。

与えるデータがある関数
エクセルのSUM関数を見てみましょう。
エクセルでは
=SUM(数字1,数字2)
とすることで数字1と数字2の内容が加算された数値が返ってきます。
いい方を変えると、
1.与えたデータ(今回の例で描けば数字1と数字2)を
2.加工(今回の例だと加算)して
3.返す(今回の例でいうと加算された結果)
という作業をしてくれていることになります。。
与えるデータがない関数
次に与えるデータのない関数を見てみましょう。
与えるデータがないのですから、特定の値だけ返すということもあります。例えば
=TODAY()
とすることで今日の日付が返ってきます。
戻り値を使わない関数
ここまではエクセルで使うような関数を紹介しましたがPowerAppsには戻り値があるけど使う必要のない関数というものが存在します。
例えば、コレクションを操作するCollect関数は戻り値として元のコレクションにレコードを追加したコレクションがテーブルとして戻ってきますが、戻り値として受けなくても元のコレクションにレコードを追加してくれます。
つまり、普通の関数は
1.与えたデータを
2.加工して
3.返す
という作業をしてくれていることになりますが、戻り値を使う必要のない関数は
1.与えたデータや条件に基づいて
2.データなどを加工する
というステップになります。
ここでいうデータとはコレクションなどのデータベースであることが多いです。
これらの関数を戻り値として受けることも可能ですが、大抵の場合バグが混入しておりマイクロソフトもあまり帰ってくるデータを使うことを想定していないようなので使わない方が賢明でしょう。
まとめ
このように関数には
- 与えたデータを加工してデータを返す関数
- 与えたデータを関数の内容によって加工して返してくれる
- データを返すだけの関数
- データを与えずにデータを返してくれる
- 与えたデータや条件を元に加工する関数
- データや条件を与えて加工して戻り値は使わない
というようになります。
関数を構成する要素
ではPowerAppsにおける関数を構成する要素はどのようなものがあるでしょうか。
今回は
- SUM(10,20)
- TODAY()
という関数で検証します。
関数を関数たらしめる()
PowerAppsはSUMやTODAYだけでは関数として認識してくれません。SUMやTODAYの後に()があることで初めてパソコンが関数として認識してくれます。
関数の名前
当然ながら関数はたくさんありますが、どの関数を使うかを関数名で指定します。
SUM(10,20)であればSUMが関数名になります。SUMはもらったデータを加算するという関数を指定していることになります。
またTODAY()であればTODAYが関数名になります。TODAYは今日の日付を返すという関数を指定していることになります。
データを渡すパラメータ(別名:引数)
関数に渡すデータのことをパラメータ(もしくは引数)と言います。
SUM(10,20) の例で書くと10と20がパラメータになります。TODAY()の場合はパラメータはありません 。
パラメータにはどのようなデータを求められているかを理解し書き込む必要があります。
SUM関数は与えたデータを加算してくれる関数なわけですから、数字のデータを渡さないといけません。ここで「あ」だとか「a」だとか文字を与えてもエラーになるだけですので気をつけましょう。
結果を返してくれる戻り値
戻り値はこちらで何か記述をするわけではありませんがSUM(10,20)で戻り値と考えることもできます。SUM(10,20)とすることで10と20を加算してくれますがその結果である30はSUM(10,20)によって表現されます。つまり、「SUM(10,20)」は30という数字を表しているということになります。
そのためSUM(1,SUM(10,20))とするなど関数を数字として扱うことも可能となります。
一方でTODAY()であれば戻り値は今日の日付になりますからTODAY()で今日の日付のデータを表しているということになります。
戻り値は関数によって個々に設定されていて、戻り値がどのようなデータの型なのかをしっかりと把握しておかないとエラーの原因になります。SUM関数などわかりやすいものであれば戻り値は数字だなとわかりますが、関数にはいろいろありますのでデータ処理を行うった後の戻り値を把握しておきましょう。