計算列が廃止予定になってしまうので、その代わりとなる計算式列(数式列)について詳しく調査した。
計算式列(数式列)


※「計算列」と「計算式列」がややこしいので、以降は「計算式列」を「数式列」と書きます。
使用可能な演算子
まず、数式列ではこれらの演算子が使用可能。
- +:加算
- -:減算
- *:乗算
- /:除算
- %:百分率
- in:文字列検索(大文字小文字を無視)
- exactin:文字列検索(大文字小文字を考慮)
- &:文字列結合
使用可能なデータ型
続いて数式列で使用可能なデータ型はこちら。
- テキスト
- 10進数
- 選択肢
- 日付と時刻

使用可能な関数
数式列で使用可能な関数の代表例はこの辺り。
- 制御:If, Switch
- 変換:Text, Value
- 切上切捨:Round, RoundUp, RoundDown
- 日時:Now, UTCNow, UTCToday
- 日時計算:DateAdd, DateDiff
関数によってはPower Appsのキャンバスと若干仕様が違うものがあるので、以下解説。
Now()とUTCNow()の違い
数式列において、Now()は[ユーザー ローカル]の日時値、UTCNow()は[タイムゾーン非依存]の日時値として、別種類の日時データと扱われる。

TextとValueは整数でのみ使用可能
2024年2月時点ではText関数とValue関数は整数値に対してのみ使用できるらしく、小数点あり数値や日時には使用できない。
Microsoft公式より

Text関数の制限
またPower Appsのキャンバスで使う時とは違い、Text関数は第二引数(書式指定)が必須となっている。


詳しい調査
これまでの基本的な数式列の使い方に加えて、細かな動作や操作も調べてみた。
他の列の値を参照
自分の列を参照して計算結果を出したいときは、列名を入力すればOK。

親レコードの値を参照
親レコードの値を参照する場合は、親テーブルの名前を入力すればアクセスできる。
※親テーブルの名前が「Parent」のような予約語だったり、半角スペースを使っている場合は「”」で囲う。

親の参照はどこまでいけるか?
親テーブルの参照が可能なので、どこまで親テーブルを遡って参照できるかが気になるところ。
- GrandParnt
- Parent
- Child
- GrandChild


Nowはいつ時点のNowか?



数式列を使用した「並べ替え」は可能か?
昔からある計算列の並べ替えには一部制限があったので、それに対し数式列ではどこまで並べ替えできるか?を色々試してみた。
まとめ
数式列は、計算列に比べてかなり高機能になった印象。
特に遠い親テーブルへの参照ができるようになったこと、並べ替えに(調べた限りでは)制限がなくなったことが個人的にはとてもありがたい。


コメント