4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 標準計算式 vs 計算式プラグイン

Last updated at Posted at 2020-02-10

kintone の計算式にもIF関数が追加されましたが、機能や使い方に違いがありますので、整理してみます。

標準計算式と計算式プラグイン比較概要

kintone 標準の計算式は、あまり複雑にならないように配慮しているのに対して、計算式プラグインはいろいろな要望に対応できるように関数の種類も多いです。
用途・方針に合わせて、使い分けてください。

標準計算式 計算式プラグイン
条件分岐 IF関数 IF, IFS, SWITCH関数
IF関数のネスト 〇 IFS, SWITCH推奨
IF関数の書き方 IF(条件式,真の場合,偽の場合) IF(条件式,真の場合[,偽の場合)]
条件式 =, !=, <>, <, >, <=, >= を使った式と論理関数 計算式
比較演算子 =, !=, <>, <, >, <=, >= =, !=, <>, <, >, <=, >=, ==, ===,!==
比較関数 CONTAINS IN, TEST, TESTRE
論理演算子 なし &&, ||
論理関数 AND, OR, NOT BOOL, AND, OR, XOR, NOT
算術演算子 +, -, *, /, ^ +, -, **, /, ^, ***, %
文字列演算子 & &
集計関数 SUM AVE, AVEIF, COUNT, COUNTA, COUNTIF, MAX, MAXIF, MIN, MINIF, SUM, SUMIF, PRODUCT, PRODUCTIF, CONCAT, CONCATIF, FIRST, FIRSTIF, LAST, LASTIF, TARRAY, TARRAYIF, TDS, TDSIF, TR_SUM, MAX_STR, TR_MAX, MIN_STR, TR_MIN, TR_AVE
集計関数の引数に計算式 ×
その他関数 ROUND, ROUNDDOWN, ROUNDUP, DATE_FORMAT, YEN ROUND, ROUNDDOWN, ROUNDUP, DATE_FORMAT, NVL, SUBTABLE, ARRAY, ARRAY_GET, ARRAY_COUNT, DISTINCT, DATE_DIFF, DATE_ADD, DATE_STARTOF, DATE_ENDOF, DURATION, DURATION_AS, DURATION_GET, DURATION_FORMAT, ASC, JIS, HIRAGANA, KATAKANA, FIND, SEARCH, CEIL, FLOOR, TEXTJOIN, REPLACE, REPLACEALL, REPLACERE, SPLIT, JOIN, UPPER, LOWER, LEFT, MID, RIGTH, SLICE, SUBSTR, SUBSTRING, LENGTH, NEWLINE, SEL_CODE, SEL_NAME, LOGIN_NAME, LOGIN_CODE, LOGIN_EMAIL
循環参照 × 〇 計算結果を収束させる前提
設定項目タイプ 計算,文字列(1行) 文字列(1行),数値,文字列(複数行),リッチエディター,チェックボックス,ラジオボタン,ドロップダウン,複数選択,リンク,日付,時刻,日時,ユーザー選択,ルックアップ,組織選択,グループ選択
使用できる項目 数値,計算,日時,日付,時刻,作成日時,更新日時,ルックアップ,文字列(1行),ドロップダウン,ラジオボタン,作成者,更新者 数値,計算,日時,日付,時刻,作成日時,更新日時,ルックアップ,文字列(1行),ドロップダウン,ラジオボタン,作成者,更新者,レコード番号,レコードID,文字列(複数行),リッチエディター,チェックボックス,複数選択,リンク,ユーザー選択,カテゴリー,ステータス,組織選択,グループ選択
計算方法 API JavaScript による解析・実行
CSV読込 ×
REST API ×
アプリ流用時の引継ぎ △ プラグイン設定のダウンロード・アップロードで対応

※2020/2/10 時点

条件分岐処理

条件分岐処理でIF関数を使いますが、複雑な条件の場合は、AND, OR, NOT 関数などを組合せます。
処理が3種類以上ある場合は、IF関数のネスト(階層)で対応しますが、なかなか分かりにくい計算式になりがちです。
計算式プラグインでは、IFS, SWITCH関数で記述すると可読性が上がり、パフォーマンスも改善します。

標準計算式 計算式プラグイン
単純なIF IF(ドロップダウン="A",1,0) IF(ドロップダウン="A",1,0)
IFのネスト IF(ドロップダウン="A",1,
IF(ドロップダウン="B",2,0))
IF(ドロップダウン="A",1,
IF(ドロップダウン="B",2,0))
IFS IFS(
ドロップダウン="A",1,
ドロップダウン="B",2,
0)
SWITCH SWITCH(ドロップダウン,
"A",1,
"B",2,
0)

IF関数の書き方

標準計算式 計算式プラグイン
IF関数の書き方 IF(条件式,真の場合,偽の場合) IF(条件式,真の場合[,偽の場合])

計算式プラグインの場合、「偽の場合」を省略でき、省略時は""となります。

IF(ドロップダウン="A",1) ⇒ IF(ドロップダウン="A",1,"")

条件式

標準計算式 計算式プラグイン
条件式 =, !=, <>, <, >, <=, >= を使った式と論理関数 計算式全般

標準計算式が、比較演算子と論理関数で条件式を記述します。
計算式プラグインでは、比較演算子と論理関数の他に計算式全般を記述でき、計算結果を評価します。

  • 計算式プラグインの計算結果評価
計算結果 評価
空文字 false ""
空文字以外の文字列 true " ", "ABC", "0"
数値 0 false 0
数値 0以外 true 1, 10, -1
配列, オブジェクト true ARRAY()

比較演算子

比較演算子は、標準計算式と計算式プラグインで微妙に挙動が異なります。
大まかには、型変換して比較するかどうかです。

標準計算式 計算式プラグイン
比較演算子 =, !=, <>, <, >, <=, >= =, !=, <>, <, >, <=, >=, ==, ===,!==
比較演算子 標準計算式 計算式プラグイン
= 文字列または数値の値が等しければTRUE、等しくなければFALSEを返します。型が異なる比較はFALSEになります。 文字列または数値の値が等しければTRUE、等しくなければFALSEを返します。型が異なる比較は数値に換算できる場合は、数値比較。換算できない場合は、文字列比較
== なし =と同様の結果になります。
=== なし 標準計算式の「=」と同様
!= 「=」の比較結果を反転させたものになります。型が異なる比較はTRUEになります。 「=」の比較結果を反転させたものになります。
!== なし 標準計算式の「!=」と同様
<> !=と同様の結果になります。 !==と同様の結果になります。
< 数値で左の値より小さければTRUE、大きければFALSEを返します。 数値変換できる場合は、数値比較。数値換算できない場合は、文字列比較
<= 数値で左の値以下であればTRUE、以上であればFALSEを返します。 数値変換できる場合は、数値比較。数値換算できない場合は、文字列比較
> 数値で左の値より大きければTRUE、小さければFALSEを返します。 数値変換できる場合は、数値比較。数値換算できない場合は、文字列比較
>= 数値で左の値以上であればTRUE、以下であればFALSEを返します。 数値変換できる場合は、数値比較。数値換算できない場合は、文字列比較
  • 条件式の例
条件式 標準計算式 計算式プラグイン
0=0 true true
0="0" false true
0==="0" - false
"ABC"="ABC" true true
0<10 true true
0<"10" - true
"0"<10 - true
"0"<"10" - true
"ABC"<"ABC" - false
"AB"<"ABC" - true

比較関数

IN, TEST, TESTRE 関数が計算式プラグインで使えます。
IN関数は、標準でも欲しい。

比較関数 標準計算式の例 計算式プラグイン
CONTAINS CONTAINS(チェックボックス,"A") IN(チェックボックス,"A")
IN OR(ドロップダウン="A",
ドロップダウン="B")
IN(ドロップダウン,"A","B")
TEST TEST(会社名,"株式会社","合同会社")
TESTRE TESTRE(会社名,"[株式|合同]会社")

論理演算子・論理関数

論理演算 標準計算式の例 計算式プラグイン
BOOL
論理値変換
BOOL(ドロップダウン)
AND
論理積
AND(ドロップダウン1="A",
ドロップダウン2="B")
AND(ドロップダウン1="A",
ドロップダウン2="B")
&&
論理積
ドロップダウン1="A" &&
ドロップダウン2="B"
OR
論理和
OR(ドロップダウン="A",
ドロップダウン="B")
OR(ドロップダウン="A",
ドロップダウン="B")
||
論理和
ドロップダウン="A"||,
ドロップダウン="B"
NOT
否定
NOT(
OR(ドロップダウン="A",
ドロップダウン="B")
)
NOT(
OR(ドロップダウン="A",
ドロップダウン="B")
)
XOR
排他論理和
XOR(ドロップダウン="A",
ドロップダウン="B")

集計関数

集計関数 標準計算式 計算式プラグイン
SUM SUM(数値) SUM(数値)
条件で集計 SUM(計算)
※計算項目でIF(ドロップダウン="A",数値,0)
SUM(IF(ドロップダウン="A",数値))
条件付き関数 - SUMIF(ドロップダウン="A",数値)
  • 集計関数使用例
2020-02-10_21h06_43.png

参考

kintone ヘルプ 計算式の設定
kintone 計算式プラグイン

あとがき

計算式プラグインは、いろいろ関数を追加していったのでごちゃごちゃしてしまった。
kintone 、Excel、JavaScript の関数が混在している感じ。
一度公開した機能は、もう外せないのでこの状況は変わらないでしょう。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?