船井デジタル道場

Digital Dojo

【CONTAINS関数】チェックボックスの値をキーにして、自動計算の処理を分岐させよう!

公開日:2023年10月21日
さっこ

こんにちは!さっこです!

船井総合研究所で、kintone(船井ファストシステム)のオンボーディングのお仕事をしています!

このデジタル道場では、「kintoneって本当に誰でも簡単に使えて楽しい!」とkintone愛を深めていただけるような記事を発信していきます。他の記事も探して読んでみてくださいね!

kintoneでは、IF関数を使えるようになると、様々な条件に応じて自動計算の処理を分岐させられるようになるので、入力作業がぐっと楽になりますよね。

そんな中で、IF関数を使えるようになったからこそ、こんなお声をいただくことがあります。

疑問

IFの動作条件にしたい値が、チェックボックスで作られています…!

ラジオボタンのようには関数を組めないようです。

チェックボックスは、IF関数に使えないのでしょうか?

ご安心ください!

たしかにチェックボックスの値はIF関数でそのまま使うことはできないのですが、CONTAINS関数と組み合わせれば使えます!

本記事では、耳慣れないCONTAINS関数の解説と、活用事例をご紹介します。

CONTAINS関数とは

CONTAINS関数とは、指定したフィールドが、指定した文字列と完全一致しているかどうかを判定する関数です。

下記画像内のテーブルを確認してみましょう。

「CONTAINS関数」フィールドに、以下の数式を組み込みました。

CONTAINS(会員区分,”会員”)

この場合、「CONTAINS関数」フィールドでは、「会員区分」フィールドの選択肢が「会員」と完全一致するかどうかを判定します。

●「会員区分」フィールドの選択肢「会員」に✓が入っているとき:正(=true)。

●「会員区分」フィールドの選択肢が「会員」以外に✓が入っているとき:偽(=false)。

会員」の選択肢にチェックが入っているかどうかを調べてくれているのが、CONTAINS関数です。

CONTAINS関数の構文

さっそくCONTAINS関数の構文を確認しましょう。

CONTAINS(フィールドコード,"検索文字列")

CONTAINS関数を今回のようにテーブル内に設置する場合は、同じテーブル内にある「チェックボックス」「複数選択」を検索対象として計算式に組み込むことができます。

●フィールドコード:検索したいチェックボックスや複数選択のフィールドコードを指定します。

●検索文字列:チェックボックスや複数選択が持っている選択肢を指定します(完全一致する必要があるので、必ず選択肢の全文を指定します)

つまり、会員区分というフィールドで、「会員」という選択肢にチェックがついているかどうか調べる関数は、このように書きます。

CONTAINS(会員区分,"会員")

意外にも簡単な関数ですね!

検索して正・偽の判断をしたうえで、正(会員)ならば割引の計算をする、というようなこともできますか?


さっこ

IF関数と組み合わせればできますよ!

CONTAINS関数は、IF関数とセットで使うイメージが強いですね。

IF関数×CONTAINS関数

軽くIF関数の復習をしておきましょう。

IF関数の構造は、こんな感じですよね。

もし、〇〇という条件が成立していたら、△△という処理をする。成立していなかったら、□□という処理をする。

さっこ

CONTAINS関数は、探し物をしてくれる関数。

1番最初の条件式にピッタリですよね。

IF関数×CONTAINS関数は以下の通りです。

IF(CONTAINS(会員区分,"会員"),△△,□□)

なるほど。

●「会員区分」:確認したいチェックボックスや複数選択のフィールド名に変える

●「”会員”」:探したい選択肢の名称に変える

というわけですね。

さっこ

そうです!参考までに、会員ならば会員割引(3割引)をする場合のテーブルの画像と関数を掲載しますね。

IF(CONTAINS(会員区分,"会員"),合計金額*0.3,"")

さっこ

CONTAINS関数を含む計算式を同じテーブル内に設定する場合、使えるフィールドには制限があります。

●同じテーブル内のチェックボックス

●同じテーブル内の複数選択

上記2つのフィールドなら、テーブル内に設置するCONTAINS関数の計算式の中で使用することができますよ。

テーブル×CONTAINS関数(通常フィールド)

指定したフィールドに、指定した文字列と完全一致する文字列があるかどうかを調べてくれるCONTAINS関数。


テーブル内にしか設置できないわけではなく、通常フィールド(テーブルの外のフィールド)として設置することもできます。

そのうえで、指定したテーブル内にCONTAINS関数で指定した文字列と完全一致するものがあるかどうかを調べることが可能です!

さっこ

特定のテーブルの中に異常値がないか、目視で確認しなくても、

CONTAINS関数を使って異常値があることを明示できるんですね。

たとえば、下記の画像なようなことが可能になります。

これは何を調べているのですか?

さっこ

12ヶ月分の月次処理が、「すべて完了になっているかどうか」を調べています!

なるほど。どこにCONTAINS関数を設置したのですか?

さっこ

CONTAINS関数を設置したのは、通常フィールドの「法人税申告業務アラート」フィールドです。

テーブルの「進捗」フィールドの中に、「月次処理未了」という文字が1行でも含まれていれば、「法人税申告業務アラート」フィールドに「早急に12ヶ月分すべての月次処理を完了してください!」という文言が出るようにしています(全ての行が「月次処理完了」であれば、「法人税申告業務アラート」フィールドは空白)

決算日をすぎているのに、まだ残り2か月分の月次処理が完了していないと、決算処理をする時間が短くなってしまいますから・・・!

CONTAINS関数をテーブルの中にあるフィールドに対して使うと、テーブル全体を1つのフィールドとみなして、テーブル行の中に1行でも完全一致する文字列があるかどうかを調べてくれます

今回使用した関数はこちらです!

IF(CONTAINS(進捗,"月次処理未了"),"早急に12ヶ月分すべての月次処理を完了してください!","")

悪くないですが、決算日が来ていないときに月次処理が残っているのは当然だと思います。決算日がすぎているときだけ、このアラートを出せますか?

さっこ

もちろんです!

たとえば下記の関数のように、IF関数を重ねづけしてみてください。

IF(決算日<更新日時, IF(CONTAINS(進捗,"月次処理未了"),"早急に12ヶ月分の月次処理を完了してください!",""),"")

さっこ

通常フィールドにCONTAINS関数を設置する場合、計算式に使えるフィールドに制限があります。

●(通常フィールド)チェックボックス

●(通常フィールド)複数選択

●(テーブル内のフィールド)文字列(1行)

●(テーブル内のフィールド)ラジオボタン

●(テーブル内のフィールド)ドロップダウン

●(テーブル内のフィールド)ルックアップ ※コピー元が文字列型の場合のみ。

上記6パターンのフィールドなら、計算式に使えますよ♪

AND関数×CONTAINS関数

最後に、AND関数と組み合わせて、選択肢全部が選択されているときだけ「OK」を出し、1つでも選択されていない選択肢があれば警告を出す方法をお伝えしますね。

さっこ

「会社の方針として、決算時には必ず下記5項目すべてに対して、実行の余地がないか必ず確認したい」という場合に、未実施事項がすぐにわかるので便利です!

関数はこんな感じです。

IF(AND(CONTAINS(決算対策チェックリスト,”不良在庫処分”),CONTAINS(決算対策チェックリスト,”経営セーフティ共済”),CONTAINS(決算対策チェックリスト,”貸倒損失計上”),CONTAINS(決算対策チェックリスト,”不要な固定資産の処分”),CONTAINS(決算対策チェックリスト,”含み損のある株式の売却・評価損の計上”)),”OK”,”決算対策項目をすべて検討してください!”)

最後に

いかがでしたか?

CONTAINS関数をIF関数やAND関数と組み合わせると、実現できる機能の幅がぐんと広がりましたね!

改めてチェックボックスや複数選択について復習したい方は、下記記事をご覧ください!

さっこ

1人では設定が難しいかも…と思われる方もいらっしゃるかもしれません。
船井ファストシステムをご契約の企業様は、オンラインサポート(チャットもしくはWEBミーティング)にてご相談を受け付けておりますので、ぜひご活用ください!