見出し画像

IF関数 間違いが分からない

すでにkintone界隈のこの時期の風物詩となったのではないでしょうか?
きったんさん作成の
「すごくない」kintone Advent Calendar 2023
12月22日を担当します、すうこです。
きったんさん、今年もありがとうございます。

皆さんの投稿、すごいです!
連日知識と元気をもらっています。ありがとうございます。


ここ何年も間違え続けていたIF関数についておさらいをします。
知っていることばかりかもしれませんが、お付き合いくださいませ。



IF関数が使えるようになったのはいつから?

この記事を書くにあたり調べてみた所、💛2020年1月12日から提供開始されたそうです。案外最近のことなんですね。
私が本格的にkintoneを使い始めた2018年よりも後です。

アップデート情報でなく、ニュースリリースにも載っています。

このアップデート以前は、IF関数が使えれば叶えられそうな要望に応えられなかったことを記憶しています。
(私が他の方法を考えられなかっただけかもしれない説もあり)


IIF病

私はkintoneとAccessで関数を使います。
Accessをよく使う方、IIF病にかかっていませんか?
私は重症の自覚ありです。
kintone使っている方に聞きたいので、ポストしたらポチッと答えてもらえたら嬉しいです。

AccessではIIFと書き、「偽の場合」をIIFで延々と続けることができます。例えばこんな感じ。

IIf([コード] ="10000","☆",IIf([コード] = "19999" ,"☆",IIf([コード]="10023" ,"♪",IIf([コード] = "20000","★",IIf([コード] = "29999" ,"★★",IIf([コード] = "40000","●","×"))))))

これだけ長いと、途中からどこのことを書いてるのか分からなくなったり、”閉じカッコ何個連続つけるのか問題”も発生します。

このようなIIF関数を使ってしまいエラー発生

「あーまたやん」ひとりごとを言いながらやり直し。

IIF関数との違いがある関数

馴染みがありませんでした。

AND/OR/NOT関数

AND関数を例にあげますと、
2つの項目が両方とも80点以上の場合に「合格」を表示する計算式。

kintoneの計算式は
IF(AND(テスト点数>=80,内申点数>=80),"合格","再テスト")
Accessの計算式は
IIF((テスト点数>=80) AND (内申点数>=80),"合格","再テスト")

IFと書けてても、ANDの書き方が間違えているからエラー発生

エラー表示が変わりましたね。
何が間違ってるのか分かっていません。

CONTAINS関数を知らんかったよ

IF関数を使っても盛大にエラーを出してからやっとヘルプを見ました。
検索条件は[チェックボックス IF]としました。
(なぜエラーが出たのか予測できましたよね?)
検索結果の先頭に出た、CONTAINS関数の記事に目を通してみると…

CONTAINS関数は、指定したフィールドの中で、指定した文字列と完全一致するものがあれば真を返し、そうでない場合は偽を返します。
(略)
●チェックボックスフィールドや複数選択フィールドで、指定した項目が選択されているかを判定する
💛●テーブル内のフィールドの値について、指定した文字列と完全一致する値を含む行があるかを判定する

また、判定した結果をIF関数と組み合わせて利用できます。

kintoneヘルプ CONTAINS関数の説明

CONTAINS?未知の関数でした。
使用例を読んでみると、複数選択系フィールドを用いたIF関数においてとてもできる子だと分かりました。詳しくはこちら↓を参照ください。


例えば、
チェック「済」にチェックが付いている場合に「完了」を表示、
チェックが付いていない場合に「要チェック」と表示する計算式。

kintoneの計算式なら
IF(CONTAINS(チェック, "済"),"完了","要チェック")

💛Accessにもチェックボックス的なものはあるのですが、kintoneのそれとは別物で、□か☑になっています。そのため、kintoneのIFと比較できるものはありません。
(注:私が知っている範囲)


先ほど登場したAND関数と一緒に使うと、こうなります。

IF(AND(CONTAINS(メニュー,"蒙古タンメン中本5辛"),注文数=1),"★★★",1)
蒙古タンメン中本5辛を1つでも注文すれば★★★です。
(近隣に店舗ができてほしい)

12/18に念願の蒙古タンメン中本に行けました!
辛うまっっ!

11月の神アップデート

IF関数に慣れなければ!と思っていたところ、11月の神アップデートで
アプリ設定の計算式入力欄にて「関数」や「フィールドコード」の入力を補助する機能が追加されました。


IIF病の完治!?
この神アップデートでは、入力した文字に応じて関数やフィールドコードの候補が出てきてくれます。
IF関数を書きたいときは、iと入力するだけで関数の候補が表示されます。
そしてフィールドコードを選択すれば関数の出来上がりです。

CONTAINSも表示されるのはiが含まれているからでしょうか?

しかし、単純に出てきた候補から選択だけしてIIF病完治!で締めるのはどうなんでしょうか。
複数のツールを使っていると、IF関数やIIF関数のように似てても表現のしかたが異なる場合があります。
それぞれのツールの内容や違いを理解して使えるといいですね。
12/9のkintone Café JAPANでエン・ジャパンの高橋さんのお話を聞き、羨ましいと思ったのと同時に、そう感じました。
メモ代わりにポストしていました。

kintoneでは間違えていてもアプリ保存時に教えてくれますが、Accessでは実行して初めて間違いに気付きます。
💛これもツールの違いですね。


まとまってないまとめ

入力補助機能が追加されましたが、複数ツールを使う身としては、kintoneのことを理解しながら上手に付き合っていきたいです。

こうしておさらいしているうちに、IF関数がかなり理解でき、自分が間違い続けていた理由にも気付くことができました。
(再認識/新たな認識には💛してます)

そういう意味でも、きったんさん今年もありがとうございました!
そして、今年交流していただいたすべてのkintone界隈の皆様に感謝します。

この記事が気に入ったらサポートをしてみませんか?