[AND、OR、NOT関数]条件の組み合わせ
IF関数の条件式を書きやすくするための関数として、AND、OR、NOTの関数を利用できます。
AND、OR、NOT関数の使いかた
AND(条件式1,条件式2, ...) すべての条件式が真のとき真を返す。それ以外のときは偽を返す。 |
OR(条件式1,条件式2, ...) いずれかの条件式が真のとき真を返す。すべて条件式が偽のときは偽を返す。 |
NOT(条件式) 条件式が偽のとき真を返す。条件式が真のとき偽を返す。 |
条件式では以下の演算子が利用できます。
=, !=, <>, <, >, <=, >=
- 数値型のフィールド(数値フィールドなど)を比較する場合は、すべての演算子が利用できます。
- 文字列型のフィールド(文字列(1行)フィールドなど)を比較する場合は、=, !=, <>のみが利用できます。
数値型/文字列型など、フィールドの型の詳細については、計算式で参照する値のデータ型を参照してください。また、比較演算子の詳細については、演算子と関数の一覧の「=, !=, <>, <, >, <=, >=」を参照してください。
計算式の例
計算フィールドや文字列(1行)フィールドに利用できる計算式の例をご紹介します。
条件式に指定している文字は、フィールドコードです。
また、IF関数はネスト(入れ子)が可能です。長い計算式は折り返し表示したり、改行して見やすく表示したりできます。
計算式:IF(AND(学科>=80,実技>=80),"合格","再テスト") 「学科」と「実技」の結果が両方80点以上であれば「合格」、そうでなければ「再テスト」と表示されます。 文字列は""(ダブルクォーテーション)で囲んで指定します。 結果が文字列のため、文字列(1行)フィールドに計算式を入力します。 |
計算式:IF(OR(学科>=80,実技>=80),"合格","再テスト") 「学科」または「実技」の点数のどちらかひとつでも80点以上であれば「合格」、それ以外は「再テスト」と表示されます。 文字列は""(ダブルクォーテーション)で囲んで指定します。 結果が文字列のため、文字列(1行)フィールドに計算式を入力します。 |
計算式:IF(NOT(学科+実技>=160),"再テスト","合格") 「学科」と「実技」の合計点数が「160点以上ではない(NOT)」場合に、「再テスト」が表示されます。 文字列は""(ダブルクォーテーション)で囲んで指定します。 結果が文字列のため、文字列(1行)フィールドに計算式を入力します。 |
ここからは、上記3つの計算式の設定方法を、検定試験結果アプリを例に説明します。
AND関数の設定例
「学科」と「実技」の点数が両方とも80点以上のときに「合格」、それ以外は「再テスト」を表示させたい場合、AND関数を利用します。
完成イメージ:
-
レコード一覧画面の右上にあるアプリ設定ボタン
をクリックし、「フォーム」タブを選択します。
-
画面左側のパーツ一覧から数値フィールドを2つ配置します。
-
フィールドの設定画面でフィールド名とフィールドコードを「学科」に変更します。
もう1つの数値フィールドはフィールド名とフィールドコードを「実技」に変更します。 -
結果を表示するためのフィールドを配置します。
今回は結果を文字列で表示するため、文字列(1行)フィールドを配置します。 -
文字列(1行)フィールドの設定画面を開いて、フィールド名とフィールドコードを「結果」に変更します。
-
「自動計算する」にチェックを入れ、「学科と実技の結果が両方80点以上であれば合格、そうでなければ再テスト」と表示される計算式を入力します。
- 計算式:IF(AND(学科>=80,実技>=80),"合格","再テスト")
- 計算式:IF(AND(学科>=80,実技>=80),"合格","再テスト")
-
文字列(1行)の設定画面の[保存]をクリックします。
-
画面左上の[フォームを保存]をクリックして、画面右上の[アプリを更新]をクリックします。
2つとも「80点以上」を満たす場合に「合格」が表示されるようになりました。
1つは「80点未満」の場合、「再テスト」が表示されます。
OR関数の設定例
「学科」または「実技」の点数のどちらかひとつでも80点以上であれば「合格」、それ以外は「再テスト」を表示させたい場合、OR関数を利用します。
- 計算式:IF(OR(学科>=80,実技>=80),"合格","再テスト")
「学科」または「実技」のどちらかひとつでも「80点以上」であれば、「合格」が表示されます。
NOT関数の設定例
NOT関数は、条件を満たさないかどうかを判定できます。
今回は、「学科」と「実技」の合計点数が「160点以上ではない(NOT)」場合に、「再テスト」を表示させます。
- 計算式:IF(NOT(学科+実技>=160),"再テスト","合格")
合計点数が160点に満たない場合、「再テスト」が表示されます。
計算結果を数値型で表示したい場合の設定例
AND、OR、NOT関数を使う際、表示する結果が数値や日付などの数値型になる場合は、計算フィールドを使用して計算します。
ここでは例として、社員名簿アプリで、在籍している社員に、在籍フラグとして数値の「1」が表示されるように設定する方法を説明します。
完成イメージ:
フォームの設定画面に、日付フィールド2つ、計算フィールド1つを配置します。
日付フィールドのフィールド名は「入社」「退職」にします。
計算フィールドに「入社日が未入力でない、かつ退職日が空白ならば『1』を表示、そうでなければ『0』を表示する」という計算式を設定します。
フィールドが未入力かどうかを条件にする場合は、「フィールドコード = ""」と指定します。
- 計算式:IF(AND(入社<>"",退職=""),1,0)
入社年月日が入力済みで退職年月日が空白のユーザーは、在籍フラグ「1」が表示されます。
演算子や関数は演算子と関数の一覧のページを参照してください。