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

まずはじめに
- AppSheetでよく使うYes/Noを返す関数を知りたい人
- AppSheetがYes/Noを求めている入力箇所が分かる
- 関数の返り値がYes/Noである代表的な関数が分かる
今回の記事では、AppSheetにおけるYes
/No
(真偽値:TRUE
/FALSE
)を返す関数に焦点を当てて解説していきます。
これらの関数は、入力されているデータそのものを返すのではなく、「条件に該当するか(Yes
/TRUE
)」または「該当しないか(No
/FALSE
)」を判断し、その結果を返すのが特徴です。
AppSheetでYes
/No
タイプの判別関数を使う具体的な方法は、大きく以下の3パターンでほとんど全てに対応できます。
- 等号や不等号を用いて左辺と右辺を判定する
- 対象のカラムに値が入力されているか(空白かどうか)を判定する
- 検索値と検索ワードを関数の引数に渡して判定する
これらの関数は使い方も比較的シンプルで癖がないものが多いため、何度も使っているうちに自然と身についていくはずです。
それでは、さっそく勉強していきましょう!
Yes/No関数を使う主な場面

まず最初に、AppSheetでYes
/No
(TRUE
/FALSE
)の返り値が求められるのはどのような場面なのかを把握しておきましょう。
代表的な入力箇所をいくつかピックアップしました。
一つ目は、各カラムの設定にあるShow?(表示するか?)という項目です。

これはAppSheetに対して「このカラムをアプリの画面で表示させますか?」と問いかけ、その表示させる条件を指定できる設定です。
「表示させる条件」を問われているため、「〇〇という条件を満たすか満たさないか」、つまりYes
/No
で答えられる関数(TRUE
/FALSE
を返す関数)を入力する必要があります。
例えば、特定のユーザーにだけ表示させたり、ある値が入力された場合にだけ表示させたりする際に活用します。
二つ目は、各カラムの設定にあるValid If(有効な場合)です。

これはAppSheetに対して「このカラムに入力される値を制限しますか?」と問いかける設定だと考えてください。
ここでは入力値の制限を設けることができるため、例えば、あらかじめ登録してある値との整合性を問わせることが可能です。
入力される値が特定の条件に合致するかどうかをYes
/No
で判断させる条件式、あるいは、入力可能な値のリストを指定することも可能です。これにより、データの正確性を保ち、誤入力を防ぐことができます。
三つ目は、AppSheetのアクション(ボタンやイベント)の設定にあるOnly if this condition is true(この条件が真の場合のみ)です。

これはAppSheetに対して「テーブルの行(列情報)がどんな状態の時に、このアクションを実行可能にしますか?」と問いかける設定です。
「どんな状態の時」と訊かれているため、例えば「〇〇という状態の時」のように、Yes
/No
で答えられる条件式を入力する必要があります。
これにより、特定の条件が満たされた場合にのみアクションボタンが表示されたり、実行可能になったりするよう制御できます。例えば、ステータスが「完了」の場合のみ「アーカイブ」アクションを表示するといった使い方が可能です。
上で紹介した箇所は代表的な入力箇所ですが、AppSheetには他にもYes
/No
の返り値が求められる場面がたくさんあります。
最も大切なのは、「今から関数を入力する箇所が、どういった返り値を求めているのか?」を常に考えることです。

上の画像のように、AppSheetのエディター画面では、関数を入力する際に求められている返り値のタイプが示されます。
ここで求められているのがYes
/No
(TRUE
/FALSE
)であることを判別し、適切な判別関数を見定めて入力するようにしましょう。
等号・不等号での判定

最もシンプルにYes
/No
の値を返す方法として、等号(=
)や不等号(<
, >
, <=
, >=
)を使った比較があります。
記号 | 使用例 | 返り値 |
---|---|---|
= | [カラム] = A | [カラム]の値がAの時 → TRUE [カラム]の値がAではない時 → FALSE |
<> | [カラム] < > A | [カラム]の値がAの時 → FALSE [カラム]の値がAではない時 → TRUE |
> | [カラム] > 100 | [カラム]の値が100より大きい時 → TRUE [カラム]の値が100以下の時 → FALSE |
>= | [カラム] > = 100 | [カラム]の値が100以上の時 → TRUE [カラム]の値が100より小さい時 → FALSE |
< | [カラム] < 100 | [カラム]の値が100より小さい時 → TRUE [カラム]の値が100以上の時 → FALSE |
<= | [カラム] < = 100 | [カラム]の値が100以下の時 → TRUE [カラム]の値が100より大きい時 → FALSE |
これらの記号を使った比較式は、確実にYes
/No
(TRUE
/FALSE
)を返してくれるため、条件を設定する際にはまず最初に検討すべき基本的な方法です。
関数の勉強を始めるとつい難しく考えがちですが、こういった基本的な判定方法が非常に重要になります。
覚えた関数を無理にでも使いたくなる…というのは「あるある」ですが、シンプルに解決できる場合は、迷わず等号や不等号を活用しましょう!
具体例:
[数量] = 10
(数量が10と等しいか?)[日付] < TODAY()
(日付が今日より前か?)[金額] >= 1000
(金額が1000以上か?)
AND()関数
AND()
関数は、複数の条件式を同時に評価し、それらすべてがTRUE
の場合にのみTRUE
を返す関数です。
AND({condition1}, {condition2}, {condition3}, ..., {condition n})

- 括弧
()
の中に最低2つ以上の条件式をカンマ,
で区切って指定します。 - 括弧内のすべての条件式が
TRUE
(満たされた)の場合にのみTRUE
を返し、一つでもFALSE
(満たされなかった)な条件があればFALSE
を返します。
私が試しにAND()
関数に値を送った時の返り値を以下の表にまとめました。
関数の入力値 | 返り値 |
---|---|
AND(TRUE条件,FALSE条件) | FALSE |
AND(FALSE条件,TRUE条件) | FALSE |
AND(ISNOTBLANK([ステータス]),[ステータス] = “完了”) | [ステータス]が空白ではなく かつその値が”完了”の時 TRUE それ以外のとき FALSE |
AND(LEN([_THIS]) > = 10,CONTAINS([_THIS],”@gmail.com”)) ※[_THIS]は編集(入力している)カラム | 10文字以上かつ”@gmail.com”が 含まれる時 TRUE 含まれない時 FALSE |
使い方のイメージはついたでしょうか?
AND()
関数は、括弧内の条件を「かつ」で繋げる門番のようなイメージです。すべての門番を突破(すべての条件を満たした時)に褒美を貰える(TRUE
を返す)といった感じですね。
関数に送る条件次第で、TRUE
とFALSE
を自在にコントロールできるため、非常に使う機会が多い関数です。
OR()関数
OR()
関数は、複数の条件式を評価し、そのうち一つでもTRUE
であればTRUE
を返す関数です。
OR({condition1}, {condition2}, {condition3}, ..., {condition n})

- 括弧
()
の中に最低2つ以上の条件式をカンマ,
で区切って指定します。 - 括弧内の条件式を一つでも
TRUE
(満たされた)の場合にTRUE
を返し、すべての条件がFALSE
(満たされなかった)の場合にのみFALSE
を返します。
関数の引数の渡し方や基本的な考え方は、AND()
関数と全く同じです。
私が試しにOR()
関数に値を送った時の返り値を以下の表にまとめました。
関数の入力値 | 返り値 |
---|---|
OR(FALSE条件,FALSE条件) | FALSE |
OR(FALSE条件,TRUE条件) | TRUE |
OR([_THIS] < 0,[_THIS] > 2) | [_THIS]カラムの値が0より小さい、または2より大きい時 TRUE [_THIS]カラムの値が0より大きく2より小さい時 FALSE |
OR(AND( (TIMENOW() >= “8:00 AM”),(TIMENOW() < “5:00 PM”)), WEEKDAY(TODAY())=”Saturday”, WEEKDAY(TODAY())=”Sunday”) | 午前8時から午後5時までの間 または土曜日か日曜日の時 TRUE それ以外の時間帯の時 FALSE |
注意点:
OR()
関数は、一つでも条件を満たせばTRUE
を返すため、誰でも満たしてしまうような緩い条件式を設定すると、常にTRUE
が返ってきてしまい、意図しない挙動になる可能性があります。
これは開発者が陥りがちなミスなので、特にこの関数の動作検証は忘れずに行いましょう!
NOT()関数
NOT()
関数は、与えられた条件式の真偽を反転させる関数です。
NOT(logical_expression)

- 括弧
()
の中に条件式を入力します。 - 括弧の中の条件式が
TRUE
(真)の時にFALSE
(偽)を返し、 - 括弧の中の条件式が
FALSE
(偽)の時にTRUE
(真)を返します。
NOT()
関数は、それ単体で使うことはほとんどなく、通常はAND()
関数やOR()
関数、あるいは他の判別関数と組み合わせて使用します。条件式の「~ではない」という否定の条件を表現したいときに非常に便利です。
覚えておくと役に立つことがあるので、ぜひ覚えておきましょう。
ISBLANK()とISNOTBLANK()関数
ISBLANK()
関数とISNOTBLANK()
関数は、どちらもカラムにデータが入力されているかどうかを判定する際に使用します。
使い方は非常に似ているため、一緒にまとめて解説します。

ISBLANK(value)
- 括弧
()
の中にカラム名を指定します。 - 指定したカラムにデータが入力されていない場合(空白の場合)は
TRUE
を返し、データが入力されている場合はFALSE
を返します。
ISNOTBLANK(value)
- 括弧
()
の中にカラム名を指定します。 - 指定したカラムにデータが入力されていない場合(空白の場合)は
FALSE
を返し、データが入力されている場合はTRUE
を返します。
重要なポイント:
ISBLANK()
関数とISNOTBLANK()
関数は、返り値が全く逆になります。
つまり、NOT(ISBLANK([カラム名]))
という式は、ISNOTBLANK([カラム名])
と全く同じ結果を返します。どちらを使うかは好みの問題ですが、用途に合わせて選びましょう。
CONTAINS()関数
CONTAINS()
関数は、特定の文字列の中に、別の特定の文字列が含まれているかどうかを判定する際に使用します。
CONTAINS(haystack, needle)

haystack
(第一引数): 検索対象となるテキスト(文字列) を指定します。needle
(第二引数):haystack
の中に含まれているかどうかを検索したいワード(文字列) を指定します。
haystack
の中にneedle
がある場合はTRUE
を返し、ない場合はFALSE
を返します。
私が試しにCONTAINS()
関数に値を送った時の返り値を以下の表にまとめました。
関数の入力値 | 返り値 |
---|---|
CONTAINS(“りんごジュース”, “ジュース”) | TRUE |
CONTAINS(“オレンジ”, “ぶどう”) | FALSE |
CONTAINS(“Apple”, “apple”) | TRUE |
CONTAINS([email],”@”) | [email]に@が含まれている場合 TRUE @が含まれない場合 FALSE |
CONTAINS([_THIS],”-“) | [_THIS]に – が含まれている場合 TRUE – が含まれない場合 FALSE |
注意点とポイント:
CONTAINS()
関数は、第一引数にテキスト型の検索値を指定する必要があります。- 王道パターンとして、
[_THIS]
カラムとのセットで覚えておきましょう。 この場合、「今入力しているカラムに〇〇という文字列が含まれているか?」のような使い方をします。 - まとめると、
CONTAINS()
関数は:- 部分一致検索を行います。
- 主に文字列の中に特定の単語やフレーズが含まれているかを確認するために使用されます。
- 大文字と小文字の区別をしない点も注意点として覚えておきましょう(例: “Apple”と”apple”は同じとみなされます)。
IN()関数
IN()
関数は、特定の値が指定されたリストの中に含まれているかどうかを判定する際に使用します。
CONTAINS()
関数と似ていますが、こちらはリスト型のデータを検索対象にできる点が大きな違いです。
IN(needle, haystack)

needle
(第一引数): リストの中に存在するかどうかを検索したいワード(値)を指定します。haystack
(第二引数):needle
が含まれているかどうかを検索するリスト(リスト型データ)を指定します。
haystack
の中にneedle
がある場合はTRUE
を返し、ない場合はFALSE
を返します。
私が試しにIN()
関数に値を送った時の返り値を以下の表にまとめました。
関数の入力値 | 返り値 |
---|---|
IN(“りんご”, {“りんご”, “バナナ”, “みかん”}) | TRUE |
IN(“10”, {20, 30, 40}) | FALSE |
IN(USEREMAIL(),アプリユーザー[email]) | ログインユーザーのメールアドレスが アプリユーザーテーブルの[email]にある場合 TRUE [email]にない場合 FALSE |
注意点とポイント:
IN()
関数は、第二引数にリスト型の検索値を指定する必要があります。- まとめると、
IN()
関数は:- 完全一致検索を行います。
- リストやテーブル内に特定の値が含まれているかを確認するために使用します。
- 検索値(第一引数)がリスト(第二引数)に含まれている場合、
TRUE
を返します。
この関数は、特定のユーザーグループに対する権限付与(例: 特定のユーザーのみが編集できる、特定の部門のメンバーのみがアクセスできるなど)を設定する際によく使う関数なので、ぜひ覚えておきましょう。
まとめ
今回は、AppSheetでアプリの挙動を細かく制御するために不可欠な、Yes
/No
(TRUE
/FALSE
)を返す「判別関数」について解説しました。
Yes
/No
を返す関数は、大きく分けて次の3つのパターンで値を判定すると覚えておくと良いでしょう。
- 等号や不等号を用いて左辺と右辺を比較判定する
- 対象のカラムに値が入力されているか(空白かどうか) を判定する
- 検索値と検索ワードを関数の引数に渡して判定する
アプリ開発において、ユーザーの編集や閲覧といった権限の付与を行う際には、必ずこれらの判別関数が必要になります。
本記事で紹介した関数は、どれも使い方が特別難しいものではありません。何度も関数を実際に書いて試すことで、すぐに使いこなせるようになるはずです。
誰でも最初は初心者です。焦らず、ゆっくりと基本をしっかり身につけていきましょう!
記事内容について何かありましたらページ下にあるコメント欄からコメントをお願いします。
わかりにくかった部分や間違った情報などご指摘いただけると嬉しいです!
勉強お疲れさまでした(^^)

AppSheetで覚えておきたい関数についてまとめています
やりたいことがあっさりと叶う可能性がある関数を知りたい人はこちら(^^)
【永久保存版】AppSheetで覚えておくべきText関数
AppSheetで重要な概念であるリストについて学べます(^^)
【永久保存版】AppSheetで覚えておくべきList関数