こんにちは。
リーデックス小川です。
今回は、プリザンターの計算式で利用できる関数機能について記事にしていきます。スクリプトを利用せずに、数値の計算や数値以外の項目の計算や処理について、管理画面の計算式から設定することができます。EXCELで関数を利用していた方であれば、比較的簡単にプリザンターの関数を利用することができます。
計算式について
計算式は通常、簡単な四則演算を設定することができます。しかし、対象や数式で利用する項目は数値型のみが対象です。日付の計算や文字列の連結などについては、スクリプトやサーバスクリプトで実装する必要があり、Javascriptの習得が必要でした。
しかし、計算式で関数を利用することで、Javascriptを使わずにEXCELの「関数」と同じような処理が可能になります。ちなみにプリザンターの「スクリプト」(や「サーバスクリプト」)がEXCELだと「マクロ」のイメージです。
関数機能の使い方
追加された関数機能についてですが、計算式の詳細設定より、研鑽方法「拡張機能」を選択します。
すると、対象に数値だけではなく、分類、日付などの対象を選択できることができるようになり、計算式で関数を利用することができるようになります。
使用できる関数について
2023/12/17時点の使用できる関数をご紹介いたします。
日付/時刻
No | 関数名 | 説明 |
---|---|---|
1 | $DATE | 日付を生成します。 |
2 | $DATEDIF | 2つの日付の間の日数、月数、または年数を計算します。 |
3 | $DAY | 日付の日数を取得します。 |
4 | $DAYS | 2つの日付間の日数を求めます。 |
5 | $HOUR | 日付の時間を取得します。 |
6 | $MINUTE | 日付の分を取得します。 |
7 | $MONTH | 日付の月を取得します。 |
8 | $NOW | 現在の日時を取得します。 |
9 | $SECOND | 日付の秒を取得します。 |
10 | $TODAY | 現在の日付を取得します。 |
11 | $WEEKDAY | 日付に対応する曜日を返します。 |
12 | $YEAR | 日付の年を取得します。 |
( 公式マニュアル「日付/時刻」より引用)
日付に関する関数が用意されています。EXCELと同じような関数がありますので、難しくは無いと思います。日付の計算はスクリプト(やサーバスクリプト)で実装する必要がありましたが、関数で簡単に計算することができるようになりました。以下は関数$NOWの使用例です。
文字列操作
No | 関数名 | 説明 |
---|---|---|
1 | $ASC | 全角文字を半角文字に変換します。 |
2 | $CONCAT | 指定した文字列を結合します。 |
3 | $FIND | 検索文字列を対象の文字列の中で検索し、検索文字列が最初に現れる位置を左端から数えた結果を求めます。検索は大文字小文字は区別されます。 |
4 | $JIS | 半角文字を全角文字に変換します。 |
5 | $LEFT | 文字列の先頭から指定された数の文字を返します。 |
6 | $LEN | 文字列の文字数を返します。 |
7 | $LOWER | 文字列に含まれる英大文字を英小文字に変換します。 |
8 | $MID | 文字列の指定位置から指定された数の文字を返します。 |
9 | $REPLACE | 対象の文字列に対して指定した文字数の文字を別の文字に変換します。 |
10 | $RIGHT | 文字列の末尾から指定された数の文字を返します。 |
11 | $SEARCH | 検索文字列を対象の文字列の中で検索し、検索文字列が最初に現れる位置を左端から数えた結果を求めます。検索は大文字小文字は区別されません。 |
12 | $SUBSTITUTE | 対象の文字列内にある特定の文字列を指定した文字列に変換します。 |
13 | $TRIM | 文字列に含まれる不要なスペースを取り除きます。 |
14 | $UPPER | 文字列に含まれる英小文字を英大文字に変換します。 |
15 | $VALUE | 文字列として入力されている数字を数値に変換します。 |
(公式マニュアル「文字列操作」より引用)
文字列に関する関数です。入力された値を整形することができますので、ゆらぎを減らすことができるようになります。また、文字列連結($CONCAT)や文字列置換($SUBSTITUTE)が使用できますので、文字列の加工がしやすくなりました。以下は関数$CONCATの使用例です。
論理
No | 関数名 | 説明 |
---|---|---|
1 | $AND | 全ての引数がTRUEの場合にTRUEを返します。 |
2 | $IF | 論理式の結果(TRUEかFALSE)に応じて、指定された値を返します。 |
3 | $IFS | 1つ以上の条件が満たされるかどうかを確認し、最初の真条件に対応する値を返します。 |
4 | $NOT | 引数がFALSEの場合はTRUE、TRUEの場合はFALSEを返します。 |
5 | $OR | いずれかの引数がTRUEのとき、TRUEを返します。引数がすべてFALSEである場合は、FALSEを返します。 |
(公式マニュアル「論理」より引用)
条件による分岐を設定できます。スクリプト不要で条件による値の変更ができるので、お手軽度合いを踏まえると、とても便利な関数ですね。以下は関数$IFの使用例です。
なお、条件については表のような一般的な演算子を使用することが可能です。
演算子 | 説明 | trueを返す例 |
---|---|---|
==(等しい) | 左辺と右辺が等しい場合にtrueを返します | 分類A == "中野区" |
!=(等しくない) | 左辺と右辺が等しくない場合にtrueを返します | 分類A != "中野区" |
>(大なり) | 左辺が右辺より大きい場合にtrueを返します | 数値A > 1000 |
>=(以上) | 左辺が右辺以上の場合にtrueを返します | 数値A >= 1000 |
<(小なり) | 左辺が右辺より小さい場合にtrueを返します | 数値A < 1000 |
<=(以下) | 左辺が右辺以以下の場合にtrueを返します | 数値A <= 1000 |
(公式マニュアルより引用)
情報
No | 関数名 | 説明 |
---|---|---|
1 | $ISEVEN | 引数に指定した数値が偶数のときTRUEを返し、奇数のときFALSEを返します。 |
2 | $ISNUMBER | セルの内容が数値の場合にTRUEを返します |
3 | $ISODD | 引数に指定した数値が奇数のときTRUEを返し、偶数のときFALSEを返します |
4 | $ISTEXT | セルの内容が文字列である場合にTRUEを返します |
( 公式マニュアル「情報」より引用)
論理で利用する条件部分で活躍する関数です。数値かどうかの判定は使うケースが多いので便利ですね。以下は、$NUMBERの使用例です。
数学
No | 関数名 | 説明 |
---|---|---|
1 | $MOD | 数値を除算した剰余を返します。 |
2 | $ROUND | 数値を指定した桁数に四捨五入した値を返します。 |
3 | $ROUNDDOWN | 数値を指定した桁数で切り捨てます。 |
4 | $ROUNDUP | 数値を指定した桁数で切り上げます。 |
5 | $TRUNC | 数値の小数部を切り捨てて、整数または指定した桁数に変換します。 |
(公式マニュアル「数学」より引用)
数値計算の関数です。切り捨て、切り上げなどは項目の「数値」でも可能ですが、計算式の途中でも使用することができるようになりました。より精密な計算でもスクリプトを利用せずに計算式が使用できます。以下は関数$ROUNDの使用例です。
統計
No | 関数名 | 説明 |
---|---|---|
1 | $AVERAGE | 引数の平均値を返します。 |
2 | $MAX | 引数の最大値を返します。論理値および文字列は無視されます。 |
3 | $MIN | 引数の最小値を返します。論理値および文字列は無視されます。 |
(公式マニュアル「統計」より引用)
平均値、最大値、最小値が計算式で利用できます。サーバスクリプトでもメソッドとして使用することはできますが、計算式でもおなじことができますのでより簡単、便利になりました。以下は、関数$AVARAGEの使用例です。
関数を使うメリット
次に、関数を使うメリットについて挙げてみたいと思います。
スクリプトやサーバスクリプトなどよりも手軽にカスタマイズできる
これは、先ほどもお伝えしている通りです。簡単な処理であればJavaScriptを利用してカスタマイズする手間がなくなりました。
EXCELで関数を使用したことがあればとっつきやすい
EXCELを利用していた方であれば、プリザンターの関数はEXCELの関数に似ているため、拡張した計算式のルールさえ覚えてしませば、殆どが直感的に使用できます。
バージョンアップなどによる影響を受けにくい(と思われる)
プリザンターは日々バージョンアップしていますが、影響を受けにくいカスタマイズを行うことがコスパの高い運用を実現するために必要です。計算式はスクリプトやサーバスクリプトよりもシンプルに実現でき、関数はプリザンターの機能のためバージョンアップによる影響は受けにくいと思われます。
関数の使い方の注意点
関数を使うときの注意点についてまとめます。
関数の引数として利用できない項目がある
関数により引数として利用できる項目が決まっています。使用できない項目ではうまく動きませんので、うまく動かない場合はマニュアルを参考に使用できない項目では内科を確認してください。
分類や説明などの文字列の値を変換するときにも計算式での設定が必要
直感的には、分類や説明の値の整形や変換などは、エディタの詳細で設定できそうですが、計算式での設定が必要となります。そのため、計算式の量が増え、メンテナンスがしづらくなる可能性があります。(が、それ以上に便利なため使わない手はないでしょう)。
関数を入れ子に(ネスト)して使うと複雑になり分かりづらくなる
EXCELでも同じことが起きますが、関数を入れ子(ネスト)しすぎると数式が複雑になり、修正が難しくなることがあるため、数式(と項目)を分けて実装するなどの工夫が必要になります。あまりにも数式が複雑になる場合は、スクリプトやサーバスクリプトを検討しましょう。
計算式を便利に使う(TIPS)
最後に、計算式をより便利に使う方法についてまとめます。
結果をすぐに反映するには?
編集画面で変更した値をすぐに更新したい場合は、自動ポストバックを利用しましょう。テーブル管理「エディタ」の各項目の詳細設定より自動ポストバックにチェックを設定することで使用することできるようになります。
入力画面や編集画面で、項目の値を修正しフォーカスを移動すると、すぐに結果が反映されます。設定の詳細や詳しい説明については、「自動ポストバック」を確認してください。
カラム名で指定する方法について
計算式では、表示名ではなくカラム名を角括弧()で囲んだ記述が可能です。角括弧で囲んだ記述を行った場合、追加時点で表示名に自動的に変換します。この場合、計算式のカラム名も表示名に自動的に変換されます。
なお、「表示名を使用しない」をチェックを入れると、計算式にカラム名を角括弧()で囲んだカラム名のまま登録されます。
計算方法が「規定」の場合は、カラム名はそのまま記述できましたが、「拡張」の場合はカラム名を角角括弧([])で囲うことが必須ですので注意してください。
エラー出力
「エラーを表示する」にチェックを入れた場合は、システムログにエラー内容が記録されるとともに、新規登録画面や編集画面の画面下に「アプリケーションエラー」のメッセージが表示されます。
エラーの表示内容や詳細についてはマニュアルに詳しい説明がありますので、ぜひご覧いただければと思います。
まとめ
今回は、プリザンターの関数の基礎について、余すところなくお伝えしました。スクリプトやサーバスクリプトを利用せずに、ノーコードの領域で値を修正でき、ノンプログラマーな方でも扱いやすいのではないかと思います。
ただ、複雑な処理が必要な場合は、関数では実現できないカスタマイズもあります。弊社では、スクリプトやスタイルを利用したカスタマイズについてご支援させていただいております。スクリプトについて相談したい、業務を改善のために実現したい機能がある、や、本記事や過去の記事のスクリプトを応用したい、などありましたら、お気軽にお問合せください。
それでは、今回はこの辺で。
最後までご覧いただき、ありがとうございました。