本記事はノーコードアプリ開発について全く知らなかった管理人が独学で勉強し、ここ大事!と感じた部分を記事にまとめています。
本ブログでは新UI画面で内容をまとめています。
新旧画面への切り替えは、下図を参考に該当アイコンをクリックしてください(^^)

まずはじめに
- AppSheetで入力されたデータによって条件分岐をしたい人
- IF()関数とIFS()関数を成立させる引数の渡し方が分かる
- 入力データで分岐条件を持たせて返り値をコントロールすることが出来る
今回は、AppSheetでアプリを開発する上で非常に役立つ条件分岐を行う「Conditional関数」について深掘りしていきます。

「Conditional」とは文字通り「条件付きの」という意味。
つまり、特定の条件に基づいて異なる処理を行いたい場合に使う関数だと理解してください。
上図のようなシナリオを実現したい場合、AppSheetにおいては主にIF()関数とIFS()関数を知っておけば、まず問題ありません。
AppSheetには他にも条件分岐の関数が存在しますが、この2つをマスターすれば、ほとんどのケースでスムーズに対応できるようになります。
この記事では、IF()関数とIFS()関数の使い方から応用までを網羅し、皆さんのAppSheet学習の強力な教材となるよう仕上げました。
ぜひ最後までお読みいただき、条件分岐のスキルを完璧に習得してください(^^)
それでは勉強していきましょう!
Conditional関数とは?

まずは、Conditional関数の定義から確認していきましょう。
Conditional関数とは、ある条件式を提示し、その条件を満たす(TRUE
)か満たさない(FALSE
)かによって、返す値や実行する処理を分岐させる関数のことを指します。
皆さんがアプリを使う立場だとして、ユーザーのデータ入力を補助してくれるようなアプリって、とても使いやすいと感じるのではないでしょうか?
まさに、「こんな時にこうしたいな」という小さな「条件分岐」の願いを叶えてくれるのが、このConditional関数です。
AppSheetでConditional関数をよく設定する箇所は、主に次の2つです。
一つ目は、各カラムの設定にあるValid If(有効な場合)です。

これはAppSheetに対して「このカラムに入力される値を制限しますか?」と問いかける設定だと考えてください。
例えば、ユーザーの権限レベルに応じて、入力できる選択肢のリストを動的に変更するといったユースケースで活躍します。
これにより、データの正確性を保ちながら、アプリのセキュリティや利便性を向上させることができます。
二つ目は、各カラムの設定にあるInitial Value(初期値)です。

これはAppSheetに対して「このカラムにデフォルトで値を入力しますか?」と問いかける設定だと思ってください。
この項目に条件分岐を持たせることで、非常に効果的な入力補助が可能になります。
例えば、別のカラムに入力された値を条件として、自動的に適切な値を初期値として設定するといった使い方ができます。
これにより、ユーザーの入力の手間を省き、アプリの使いやすさを大きく向上させることが可能です。
それでは、いよいよその条件分岐を実装するための関数について、詳しく勉強していきましょう!
IF()関数
IF()関数は、最も基本的な条件分岐を行う関数です。
シンプルな条件に基づいて、二つの異なる結果のうちどちらかを返すことができます。
IF(condition, then-expression, else-expression)

condition
(第一引数): ここに分岐の条件となる式を指定します。この条件式は、評価結果がTRUE
かFALSE
になる必要があります。then-expression
(第二引数):condition
(第一引数)で指定した条件がTRUE
(満たされた)だった場合に返す値、または実行する指示を指定します。else-expression
(第三引数):condition
(第一引数)で指定した条件がFALSE
(満たされなかった)だった場合に返す値、または実行する指示を指定します。
このように、IF()関数には必ず3つの引数を渡してあげる必要があると覚えておきましょう。
私が試しにIF()関数に値を送った時の返り値を以下の表にまとめました。
関数の入力値 | 返り値 |
---|---|
IF(TRUE条件,”Yes”,”No”) | Yes |
IF(FALSE条件,”Yes”,”No”) | No |
IF(IN(USEREMAIL(),ユーザー[email]),LIST(社員),LIST()) ※条件式をInitial Valueに入力した場合 | emailが登録されている→社員が初期値で入力される emailが登録されていない→空欄 |
IF(IN(USEREMAIL(),ユーザー[email]),LIST(A,B),LIST()) ※条件式をValid ifに入力した場合 | emailが登録されている→AかBの選択 emailが登録されていない→カラムが表示されない |
同じIF()関数でも、入力する箇所(例えばValid ifとInitial Valueなど)によってアプリ内での挙動が変わるため、事前に必ず意図した動作をするかチェックするようにしましょう!
【重要】IF()関数の強力な応用:ネスト構造
IF()関数の最もパワフルな機能の一つとして、第三引数にさらにもう一度IF()関数を入力することが可能です。
これにより、まるで入れ子(ネスト)のように構造を持たせて、複数の条件分岐を行うことができます。
そして、最後のIF()関数の第三引数には、それまでのすべての条件分岐に当てはまらなかった場合の「それ以外(Else)」の値を指定できることも、この関数の大きな強みとなります。
これにより、複雑なロジックも段階的に記述し、より柔軟な条件設定が可能になります。

IF()関数の実用例を別の記事でまとめています
在庫管理アプリを参考にIF()関数について学べます(^^)
【実践向け!】AppSheetで作る在庫管理アプリの作成手順
IFS()関数
IFS()関数は、複数の条件式を順番に評価し、最初にTRUEとなった条件に対応する値を返す関数です。
IF()関数が2択の条件分岐だったのに対し、IFS()関数は3つ以上の多分岐処理に適しています。
IFS(is-true?, then-do-this[, is-true?, then-do-this]...)

is-true?
(第一引数、第三引数、以降奇数番目の引数): ここに条件式を指定します。then-do-this
(第二引数、第四引数、以降偶数番目の引数): 直前のis-true?
で指定した条件がTRUE
(満たされた)だった場合に返す値、または実行する指示を指定します。
IFS()関数の考え方:
- 第一引数に分岐条件を提示
- 第二引数にその分岐条件が満たされた時の指示
- 第三引数に次の分岐条件を提示
- 第四引数にその分岐条件が満たされた時の指示
- (以降、同じパターンで条件と指示を繰り返す)
IF()関数と異なり、IFS()関数は「条件式がTRUEの時の指示」しか直接的に指定できません。
つまり、「この条件の時はこれ!」「こっちの条件の時はこれ!」というように、ひたすら条件と結果のペアを繋げていくイメージです。

IFS()関数の実用例をまとめています
データを入力するときに制限をかける方法について学べます(^^)
【簡単設定!】入力制限を設定する方法
外部URLを使ってimageカラムを生成する方法について学べます(^^)
【効果あり】カラム値を強調させる方法
まとめ
今回は、AppSheetでアプリに高度なロジックを組み込むためのConditional関数(条件分岐)について解説しました。
「条件分岐」と聞くと、複雑で難解なものを想像するかもしれませんが、AppSheetでは、主にIF()関数とIFS()関数の2つの関数を使いこなせれば、ほとんどの条件分岐に対応できます。
これらの関数の基本さえしっかり押さえられれば、ユーザーの入力補助をスマートに行ったり、データに基づいて表示内容を切り替えたりと、複雑なアプリの作成が可能になります。
ぜひ今回の内容を参考に、AppSheetでのアプリ開発の幅を広げてみてください!
記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。
わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!
勉強お疲れさまでした(^^)