[AND、OR、NOT関数]条件の組み合わせ

記事番号:040496

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関数を利用します。

完成イメージ:
スクリーンショット:完成イメージ

  1. レコード一覧画面の右上にあるアプリ設定ボタン 設定ボタン をクリックし、「フォーム」タブを選択します。
    スクリーンショット:設定ボタン

  2. 画面左側のパーツ一覧から数値フィールドを2つ配置します。 スクリーンショット:フィールドを配置

  3. フィールドの設定画面でフィールド名とフィールドコードを「学科」に変更します。
    もう1つの数値フィールドはフィールド名とフィールドコードを「実技」に変更します。 スクリーンショット:フィールド名とフィールドコード変更

  4. 結果を表示するためのフィールドを配置します。
    今回は結果を文字列で表示するため、文字列(1行)フィールドを配置します。 スクリーンショット:フィールドを配置

  5. 文字列(1行)フィールドの設定画面を開いて、フィールド名とフィールドコードを「結果」に変更します。
    スクリーンショット:フィールド名とフィールドコード変更

  6. 「自動計算する」にチェックを入れ、「学科と実技の結果が両方80点以上であれば合格、そうでなければ再テスト」と表示される計算式を入力します。

    • 計算式:IF(AND(学科>=80,実技>=80),"合格","再テスト") スクリーンショット:計算式の設定
  7. 文字列(1行)の設定画面の[保存]をクリックします。

  8. 画面左上の[フォームを保存]をクリックして、画面右上の[アプリを更新]をクリックします。 スクリーンショット:フォームを更新ボタンとアプリを更新ボタン

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」が表示されます。 スクリーンショット:計算結果

演算子や関数は演算子と関数の一覧のページを参照してください。