【論理式・論理値】その実体は?論理値の計算、関数への応用方法を解説!

機能を深掘る

初心者にとってはよくわからない存在、論理式と論理値。

等号・不等号を使い、2つの値を比較するのが論理式。

その論理式に対してのコンピュータの返答が論理値です。

論理値には、TRUE・FALSEの 2つの種類しかありません。

エクセルで論理式がもっとも活用されるのはIF関数でしょう。

しかしIF関数以外にも多くの場面で論理値の概念を利用することができます。

論理式・論理値を理解すると、一段レベルアップした数式が組めます。

論理式・論理値とは?

論理式

等号 ( = )、不等号 ( < > ) を使って、二つの値を比較する式が論理式です。

記号  意味論理式の例 例の意味
=等しいA=BAはBと等しい
>より大きい A>BAはBより大きい
<より小さいA<BAはBより小さい
>=以上A>=B AはB以上
<=以下A<=BAはB以下
<>等しくないA<>BAとBは等しくない 

論理値

論理式に対してコンピュータは

  • 正しい (英語でTRUE)
  • 正しくない (英語でFALSE)

のどちらかの判定をします。

この「TRUE」「FALSE」の2つを論理値と言います。

天使と悪魔が葛藤するイラスト

数式内で論理式をあつかう

「式」という名の通り、論理式は数式内で扱うことが可能です。

通常の数式は、セルに計算結果が表示されます。

おなじように、論理式でセルに表示されるのは論理値です。

通常の数式の結果に数値、論理式の結果に論理値が表示されている

論理値は中央揃えで表示されます。

中央揃えで表示される論理値

エクセルでの論理式・論理値の使用

IF関数

エクセルで論理式といえば、まっ先に思い出すのは IF関数でしょう。

 IF(論理式, [値が真の場合], [値が偽の場合]

第1引数の論理式が TRUEなら第2引数が、

FALSEなら第3引数が戻り値として返されます。

各種ダイアログ

ダイアログなどで論理式が使われることもあります。

「条件付き書式」の「数式を使用して、書式設定するセルを決定」

条件付き書式のダイアログで、数式部分に論理式を入力する画像
論理式で条件付き書式を設定した結果

「データの入力規則」の「ユーザー設定」

入力規則のダイアログに論理式を入力した画像
入力制限外の数値を入力して、エラーメッセージが表示された画像

論理値の計算

コンピュータは計算機なので、「論理」も値として計算するしかありません。

しかもすべてのデータを、最終的には1と0という2進法のデータとして扱います。

「TRUE」「FALSE」という論理値も、実はそれぞれ1,0という数値として計算できます。

TRUE は 1
FALSE は 0 として計算できる

IF関数の引数

IF関数の引数を例にして、論理値の計算を検証してみましょう。

B2セルに IF関数が入力してあります。

b2セルにif関数が入力された画像

第1引数「A1=10」が TRUEなら「〇」、FALSEなら「×」が表示されます。

では、第1引数に直接「TRUE」と入力したらどうなるでしょう。

「TRUE」の場合の「〇」しか表示されない IF関数になります。

if関数の第1引数に「true」と入力した画像

第1引数が「FALSE」なら

「FALSE」の場合の「×」しか表示されません。

if関数の第1引数に「false」と入力した画像

「TRUE」は1、「FALSE」は0として計算される、と前述しました。

1は TRUEと入力したのと同じになります。

if関数の第1引数に「1」と入力した画像

「3-2」のように数式にしても同じです。

if関数の第1引数に「3-2」と入力した画像

IFS関数 (Excel 2016以降) では、複数の論理式を設定できます。

最後の論理式の部分に入力されるのは「TRUE」です。

ifs関数の最後の論理式に「true」と入力されている画像

IFS関数は左側の論理式から順に判定されていきます。

そのため、最後の「TRUE」は “それ以外すべての場合” という意味になります。

論理演算

論理値は1,0という数値に変換して計算できると説明しました。

つまり、2つの論理値を数式のように計算することもできます。

これが「論理演算」です。

「論理演算」のなかでも、エクセルでよく使う「論理積」と「論理和」について説明します。

論理積

2つの論理値のかけ算の組み合わせを考えてみましょう。(積とはかけ算の答えのことです)

論理値 X 論理値数字に変換計算結果結果を論理値に再変換
TRUE X TRUE1 X 11TRUE
TRUE X FALSE1 X 00FALSE
FALSE X TRUE0 X 10FALSE
FALSE X FALSE0 X 00FALSE

「2つの論理値をかけ算」すると、

  • 2つとも「TRUE」のとき、結果も「TRUE」
  • それ以外すべて、結果は「FALSE」

となります。

使用例

「A列の数字が 10以上」かつ、「B列の文字が “A”」のときだけ「〇」、それ以外は「×」を表示したい。

IF関数の論理式に、2つの論理式のかけ算を入力します。

if関数の第1引数に、2つの論理式のかけ算を入力した画像

このように2つの論理式のかけ算は、「[○○は△△]かつ[□□は××]の場合は…」という1つの論理式になります。

これは AND関数とまったく同じはたらきです。

if関数の第1引数に、and関数を入力した画像

どちらを使ってもいいですが、* での入力もよく使われるので「意味」が分かるようにしておきましょう。

論理和

2つの論理値のたし算の組み合わせを考えてみましょう。(和とはたし算の答えのことです)

論理値 + 論理値数字に変換計算結果結果を論理値に再変換
TRUE + TRUE1 + 12TRUE
TRUE + FALSE1 + 01TRUE
FALSE + TRUE0 + 11TRUE
FALSE + FALSE0 + 00FALSE

「TRUE + TRUE」の「計算結果」2を「TRUE」としていますが、
実は0以外の数値はすべて「TRUE」と認識されます。
逆に「TRUE」を計算式に用いるときは1と認識されます。

if関数の第1引数に、0以外の数値を入力した画像

「2つの論理値をたし算」した結果は、

  • 2つとも「FALSE」のとき、結果も「FALSE」
  • それ以外すべて、結果は「TRUE」

これは言葉でいうと、「[○○は△△]または[□□は××]の場合は…」という意味です。

使用例

「A列の数字が 10以上」または、「B列の文字が “A”」のときは「〇」、それ以外は「×」を表示したい。

if関数の第1引数に、2つの論理式の足し算を入力した画像

これは OR関数と同じはたらきです。

if関数の第1引数に、or関数を入力した画像

その他の応用

「TRUE」を1、「FALSE」を0として計算すれば、さまざまな数式に応用できます。

あるテーマパークの入園料の計算表です。

  • 基本料金は \8,000
  • 年齢が15才以下の場合、「子供割引」としてマイナス \3,000
  • 来園日が土、日以外なら「平日割引」としてマイナス \1,500

とします。

あるテーマパークの料金表の画像

A2セルの「来園日」、B2セルの「年齢」に応じて、C2セルに料金を表示する数式を入力。

「来園日」「年齢」に応じた「料金」を数式で入力した画像

論理式「B2<=15」は年齢が15才以下かを判断する論理式です。

論理式「WEEKDAY(A2,2)<6」で来園日が平日かどうかを判断します。

「WEEKDAY(A2,2)」は A2セルのシリアル値を、「月曜日は1~日曜日は7」という数値で返す関数です。

この例の場合、論理式1は「TRUE」論理式2は「FALSE」になります。(2024/6/1は土曜日のため)

C2セルには、論理式1を1、論理式2を0として計算した料金が表示されます。

SUM関数と論理値

「TRUE」は1、「FALSE」は0として計算できる、といいました。

しかし SUM関数の引数に論理値を入れるときは注意が必要です。

SUM関数の引数に論理値を入れると、0として計算されます。

ただし、いったん数値で演算した論理値は、数値として計算されます。

まとめ

ポイントは

TRUE は 1
FALSE は 0 として計算できる

の部分です。

これさえ理解すれば、論理値を数式内で活用することもできます。

また、

  • ( 論理式1 ) * ( 論理式2 ) は、 ( ~ ) かつ ( ~ )
  • ( 論理式1 ) + ( 論理式2 ) は、 ( ~ ) または ( ~ )

という表記は慣れておきましょう。

そうしないと、この数式をみたときに理解不能になります。

タイトルとURLをコピーしました