エクセル関数の便利帳 [エクセル関数の便利な使い方を事例を交えてご紹介します] エクセル関数の便利帳 [エクセル関数の便利な使い方を事例を交えてご紹介します]

最近見た
ページ

case
26

AND関数/OR関数で条件を分けてみよう

論理2023年4月25日
対応バージョン
  • 365
  • web
  • 2021
  • 2019
  • 2016
  • 2013
  • Web App
  • 2011
  • 2010
  • 2007
  • Starter
WEEKDAY関数の使い方を説明しているイメージ

エクセルなら「AND関数」や「OR関数」をIF関数と組み合わせるだけで複雑な条件判断ができるようになります。

AND関数やOR関数で複数の条件をつないでみよう

エクセルでは、AND(アンド)関数とOR(オア)関数をIF関数の中に使い、複雑な条件式を作ることができます。

例えば、「英単語で80点以上」の人なら合格、そうでなければ不合格という二者択一の式はIF関数だけで簡単に作成できますが、「英単語で80点以上」さらに(または)「読解で80点以上」だったら合格、そうでなければ不合格というような複数の条件が入る式の場合、AND関数やOR関数で条件を組み合わせればわかりやすい式が作成できます。

ここでは、AND関数、OR関数の基本的な書式と機能について紹介します。

AND関数・OR関数の書式

AND関数は次のように、複数の論理式を追加することができます。

=AND(論理式1,論理式2,論理式3,……)

また、OR関数は次のように入力します。

=OR(論理式1,論理式2,論理式3,……)

AND関数とIF関数の組み合わせは、IF関数の論理式の部分にAND関数を配置し、次のように入力します。

=IF(AND(論理式1,論理式2),論理式が正しい場合,論理式が正しくない場合)

AND関数は、すべての条件が満たされているかを調べる関数です。また、OR関数はいずれかの条件が満たされているかを調べる関数です。 AND関数とOR関数は、[関数の挿入]ボタンをクリックして[関数の分類]で[論理]を選択すると、関数が簡単に入力できます。 また、関数ライブラリからも選択できます。

今回の例では、C列とD列に試験の点数が入力されています。それぞれの値が80点以上の場合「進級」、そうでなければ空白が表示されるようにIF関数と共に次のように入力してみましょう。

セルE4をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

1IF関数とAND関数を入力する、セルE4をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

[関数の分類]で「論理」を選択し、[関数名]で「IF」を選択して、[OK]ボタンをクリックしている画面イメージ

2[関数の分類]で「論理」を選択し、[関数名]で「IF」を選択して、[OK]ボタンをクリックします。

[論理式]に「AND(C4>=80,D4>=80)」、[真の場合]に「"進級"」、[偽の場合]に「""」を入力し、[OK]ボタンをクリックしている画面イメージ

3[論理式]に「AND(C4>=80,D4>=80)」、[真の場合]に「"進級"」、[偽の場合]に「""」を入力し、[OK]ボタンをクリックします。

式を下にコピーした画面イメージ

4式を下にコピーします。単語と読解の両科目の点数が80点以上の人に「進級」と表示されました。

ステップアップ:OR関数で1つの条件が満たされる結果を求めるには

AND関数では、論理式の値をすべて満たすものを見つけることができますが、複数条件の中から「1つだけでも満たすもの」を見つけたい場合は「OR関数」を利用します。IF関数と共に利用すれば、AND関数同様複雑な条件を分かりやすく設定できます。

=IF(OR(論理式1,論理式2),論理式が正しい場合,論理式が正しくない場合)

次の例では、点数によって習熟度を確認したいので、「いずれかの科目の値が70点未満」の場合は「要サポート」という表示をします。

実際に入力してみます。

セルE4をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

1IF関数とOR関数を入力する、セルE4をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

[関数の分類]で「論理」を選択し、[関数名]で「IF」を選択して、[OK]ボタンをクリックしている画面イメージ

2[関数の分類]で「論理」を選択し、[関数名]で「IF」を選択して、[OK]ボタンをクリックします。

[論理式]に「OR(C4<70,D4<70)」、[真の場合]に「"要サポート"」、[偽の場合]に「""」を入力し、[OK]ボタンをクリックしている画面イメージ

3[論理式]に「OR(C4<70,D4<70)」、[真の場合]に「"要サポート"」、[偽の場合]に「""」を入力し、[OK]ボタンをクリックします。

式を下にコピーしている画面イメージ

4式を下にコピーします。単語または読解の点数が70点未満の人に「要サポート」と表示されました。

AND関数とOR関数は、IF関数の論理式と組み合わせて複数の条件分岐をわかりやすい式にできる関数です。条件のどちらも満たしたい場合はAND関数を、条件のどちらかを満たしたい場合はOR関数と、それぞれの特長を利用して使い分けをしてください。

ステップアップ2:条件付き書式を使って土日祝日に色をつけてみよう!

WEEKDAY関数でご紹介した条件付き書式を使って土曜日と日曜日で色分けする方法とOR関数を組み合わせて、土日祝日の色分けすることができます。

ます、カレンダーと祝日の一覧を用意します。

(補足)
祝日の一覧は内閣府の国民の祝日についてからcsv形式でダウンロードすることができます。
URLは以下となります。
https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv

カレンダーのエクセルファイルと祝日一覧のcsvファイルを開いている画面イメージ

1カレンダーのエクセルファイルとダウンロードした祝日の一覧のcsvファイルを開いておきます。

書式ルールを設定rしてる画面イメージ

2ダウンロードしたcsvファイルをカレンダーのあるExcelファイルに移動します。
移動する祝日一覧のcsvファイルのシート名を右クリックし、「移動またはコピー」を選択します。
※ここではダウンロードしたままのシート名「syukujitsu」になっています。

ブック名を選択している画面イメージ

3「syukujitsu」シートを移動するブック名を選択します。
※現在開いているファイルの一覧が表示されていると思います。

「syukujitsu」シートが移動された画面イメージ

4「syukujitsu」シートが移動されました。

カレンダーのA列とB列を選択している画面イメージ

5A列とB列の土曜日、日曜日、祝日に色を付けたいと思います。

「カレンダー」シートに移動し、日付の入力されているA4からB34を選択します。 次に「ホーム」タブの[スタイル]の[条件付き書式]から[新しい書式]をクリックします。

(補足) B列にはA列と同じデータを入力し、WEEKDAY関数でご紹介したセルの書式設定で、 表示形式をユーザー定義の種類で「aaa」と指定し、曜日のみ表示させています。

書式ルールを設定してる画面イメージ

6ルールの種類を [数式を使用して、書式を設定するセルを決定] を選択し、ルールの内容に「=OR(WEEKDAY(A4,2)>=6,COUNTIF(syukujitsu!$A:$A,A4)=1)」と入力したら、[書式]をクリックします。

(補足) OR関数に入れる論理式は WEEKDAY関数の土曜日が「6」、日曜日が「7」になる「種類2」を使って、「WEEKDAY(A4,2)>=6」 と COUNTIF関数を使って、「syukujitsu」シートに同じ日付があるか調べます。祝日であれば1が返されるので 「COUNTIF(syukujitsu!$A:$A,A4)=1」としています。

色を選択している画面イメージ

7セルの書式設定の「塗りつぶし」タブを選択し、色を選択し「OK」をクリックします。

プレビューに表示されている状態が設定後の書式の画面イメージ

8プレビューに表示されている状態が設定後の書式です。
設定できたことを確認し、「OK」をクリックします。

土日祝日に色を付けることができた画面イメージ

9土日祝日に色を付けることができました。

(補足)土曜日と、日曜・祝日と色を分けたい場合は、二つの条件付き書式を設定します。

土曜日のルールの内容に
   「=WEEKDAY($A4)=7」
日曜日と祝日のルールの内容に
   「=OR(WEEKDAY($A4)=1,COUNTIF(syukujitsu!$A:$A,A4)=1)」
と入力したら、[書式]をクリックします。それぞれ設定したい色を選択し「OK」をクリックします。

ホーム」タブの[スタイル]の[条件付き書式]から[ルールの管理]を開いている画面イメージ

土日祝日でご紹介しましたが、会社の休みなどを反映させたいときは、祝日一覧に追加するか、別途、会社の休みなどをリスト化し、祝日と同じように条件を追加します。

参考例:
会社の休みを「holiday」シートのA列にリスト化しているとします。
=OR(WEEKDAY(A4,2)>=6,COUNTIF(syukujitsu!$A:$A,A4)=1,COUNTIF(holiday!$A:$A,A4)=1)

※頂いた内容についての返信は行っておりません。個人情報の記載はしないようお願いいたします。

おすすめ
ページ

ページTOP