キンコミ kintone user community

みんなの投稿

2021/07/29 22:25

演算子と関数の一覧について

上記のように関数の計算式で組み合わせできるもの、出来ないものについて調べています。学習のコツなど共有出来れば幸いです。

1件のコメント (新着順)

久原念流さん

「学習のコツ」についてですか。やっぱり実際にテストアプリをつくって検証するのが一番だと思います。

一例として、チェックボックスとラジオボタンでCONTAINS関数を利用した場合とそうでない場合で検証する手順を考えてみました。添付画像をご参照ください。



チェックボックス
CONTAINS関数を利用しないでIF文で条件分岐しようとすると、

「配列型の値に対して適切な関数が利用されていません。配列型の値やその利用方法についてはヘルプを確認してください。」

のメッセージが出てアプリの保存ができません。

エラーをヘルプで確認してみましょう。

計算式で表示されるエラー
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/autocalc_error.html

要約すると「配列型のフィールド」はCONTAINS関数を利用する必要がある旨の記載があります。ですので、CONTAINS関数利用しないでチェック項目に応じた条件処理を作成しようとするとエラーになります。

配列とは、複数の要素(値)の集合を格納・管理するのに用いられるデータ構造の事をいいます。CONTAINS関数は配列型用の関数であるというところがポイントです。



ラジオボタン
CONTAINS関数の利用をした場合でもアプリの保存は可能ですが値は#VALUEになります。

[CONTAINS関数]チェックボックス、複数選択の計算
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/multichoice_contains.html

第1引数にはチェックボックスや複数選択のフィールドコードを指定します。
とあります。ラジオボタンはそれに該当しません。

#VALUEとはなにか。

計算式で表示されるエラー
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/autocalc_error.html
計算する値の型や演算子が適切ではない場合に表示されます。
とあります。

計算式で参照する値のデータ型
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/calculation_type.html
フィールドのデータ型:ラジオボタンは文字列型
とあります。

計算結果のデータ型:CONTAINS
第1引数は配列文字列型、第2引数は文字列型です。計算結果は論理型です。

要するにラジオボタンのフィールドのデータ型が文字列型であるのに対して、CONTAINS関数の第1引数は配列文字列型の為、型がちがうので#VALUEになると考えられます。



またフィールドの性質から、「関数の計算式で組み合わせできるもの、出来ないものについて」考えてみることもできると思います。そもそも文字列型と配列文字列型とはなんなのでしょう。

CONTAINSは日本語で「含む」です。

チェックボックスは、複数選択が可能なフィールドに対して、ラジオボタンは一択のフィールドです。

ですから、「含む」の意味であるCONTAINSは配列文字列型のチェックボックスに利用され、逆に選択結果が一択となる文字列型のラジオボタンでは利用されないという理解の仕方も可能です。

kintoneの仕様やエラーにはそうであるなんらかの理由があると考えてよいです。

「学習のコツ」としては、単にエラーになる・ならないの組み合わせを覚えるというよりは、エラーになる理由やその仕様になっている理由を考えてみるのもよいかもしれませんね。

参考になれば嬉しいです。