PlugBits
PlugBits kintone向けプラグイン&ブラウザ拡張機能
kintone の一覧・入力・設定

kintoneの計算式でIFを使った条件分岐の書き方

kintoneの計算式のIF関数は、条件に応じて出す値を変える条件分岐です。書式は「IF(条件式, 真の場合に返す値, 偽の場合に返す値)」の3つで、IFの中に別のIFを入れる入れ子にすれば条件を何段でも増やせます。

IF関数の書式と、使える演算子

IF関数は「条件式」「真の場合に返す値」「偽の場合に返す値」の3引数で書きます。比較演算子は「=」「!=」(「<>」)「<」「<=」「>」「>=」で、数値型フィールドは全て使えますが、文字列型フィールドは「=」「!=」「<>」だけに絞られます。

公式ヘルプの例は「IF(点数=100,"満点",IF(点数>=80,"合格","不合格"))」です。100なら満点、80以上なら合格、それ以外は不合格という3段の判定です。条件がひとつで演算子の範囲で足りるなら、この書式だけで十分です。

条件を増やしたい時は、IFを入れ子にする

条件を複数重ねたい時は、IFの中に別のIFを入れる入れ子で対応します。公式ヘルプの例も2段の入れ子で、AND・OR・NOT関数と組み合わせれば1つの条件式を複数条件にもできます。

たとえば「IF(種別="不具合",IF(金額>=300000,"最優先","通常"),"後回し")」のように2段で書けます。条件を増やすこと自体は入れ子でできますが、3段・4段と深くなるほど、どの括弧がどのIFに対応するか目で追いにくくなります。

入れ子にした数式が意図通りに動くか、保存前に確かめる

入れ子にしたIFが思った通りに分岐しているかは、テスト用のレコードで確かめられます。公式ヘルプの計算フィールドの説明には、勤務時間を計算する式の例が載っています。

新規レコード画面でIFの条件式に使うフィールドの値を一通り変えて、結果が想定した分岐と合っているか見ていくのが確かめ方です。境界値(金額が30万円ちょうどの時)も試すとズレが見つかりやすくなります。

文字列の条件には、大小比較が使えない

条件式に使うフィールドが文字列(1行)型だと、比較演算子は「=」「!=」「<>」だけで、大小比較は使えません。公式ヘルプに、文字列型は等しい・等しくないの判定に絞られる、と明記されています。

「ランク」のような文字列フィールドで「B以上は〜」という判定はIFの条件式だけで書けず、数値や日付のフィールドに置き換えるか、ランクを数値コードに変換する必要があります。等しい・等しくないの判定だけで足りるなら標準のIFで十分ですが、大小比較や入れ子が増えてきたら、条件を画面上でルールとして並べて組む文字列条件分岐ビルダーのようなプラグインを使う人もいます。

PlugBits — kintone のプラグインと拡張を作っています。