論理式|TRUE (真) あるいは FALSE (偽) のいずれかを評価して計算結果として返す数式
IF関数で入力が必要な引数に「論理式」というのがあります。「論理式」というフレーズはあまり聞き慣れた言葉ではないので、抵抗感がありますが、「論理式」を理解すればするほど、IF関数を使いこなせるようになるので、「論理式」は是非とも押さえておきたいポイントです。
●「論理式」って、一体何ですか?
ひとことで言ってしまえば、論理式とは、TRUE (真) あるいは FALSE (偽) のいずれかを評価して計算結果として返す式のことです。
◆簡単な論理式の例 「=1=1」
ひとつ簡単な例を一つあげると、「=1=1」はどうでしょうか?
「=」が2つもあって、いつもは見かる計算式とは違うので、ちょっと抵抗感ありますよね。
まぁ、気にせず、早速、セルに「=1=1」と入力してみましょう。
すると、セルの計算結果は、「TRUE」と表示されました。
では、この計算式の意味を見ていきたいと思います。
この計算式には「=」が2つあり、ちょっと面喰らってしまいますね。実はこの2つの「=」は同じように見えますが、全くの別物なのです。この違いから説明を始めます。
・最初の「=」
これは、計算式であることを示す「=」です。
エクセルでセルに計算式を入力する時にいつも最初に「=」を入力しますよね。その「=」です。
・二番目の「=」
二番目の「=」は、比較演算子の「=」です。
「1=1」の部分で、「1と1は等しい」ということを計算しています。
最初の「=」と混同してややこしいので、「=(1=1)」と論理式部分をカッコで囲んでしまえば分かり易いですかね。
次に論理式の結果ですが、これは、論理式(上記の例だと、1=1)が成立すれば 真(TRUE)、不成立であれば 偽(FALSE)の論理値のいづれかが返されます。
上記例では、1と1はもちろん等しいので、論理式は成立し、真(TRUE)となり、計算結果として「TRUE」がセルに表示された、というわけです。
ちなみに、「=1=1」のうち、論理式にあたる部分は「1=1」ですので、セルに直接入力するのではなく、エクセルのIF関数に入力するのであれば、「1=1」だけを論理式として入力し、最初の「=」は入力不要です。
◆論理式の例 「A2=”スイカ”」
「=1=1」だと、単純すぎるので、次の例を見てみたいと思います。
これは、セルC2に入力された論理式「A2=”スイカ”」では、セルA2に入力された値が文字列「スイカ」と等しいかどうかを評価して、結果を返します。セルA2の値は「ぶどう」であり、「スイカ」とは異なるため、FALSE(偽)の論理値が表示されています。
セルC3では、論理式「A3=”スイカ”」が入力されており、セルA3に入力された値が文字列「スイカ」と等しいかどうかを評価して、結果を返します。セルA3の値は「スイカ」であり、「スイカ」と等しいため、TRUE(真)の論理値が表示されています。
◆幾つかある論理式のパターン
論理式は幾つかのパターンがあり、下記のいずれかの形をとります。
・”=” や “>” などの比較演算子を用いて値を比較する論理式
・IS関数を使った論理式
・AND関数などによって複数の論理式を組み合わせた式
●「比較演算子」を使った論理式
比較演算子には次の6種類があります。
比較演算子 | 論理式の例 | ||
---|---|---|---|
= (等しい) | A1=1000 | セルA1は 1,000と等しい | |
> (大なり) | A1>1000 | セルA1は 1,000より大きい | |
< (小なり) | A1<1000 | セルA1は 1,000より小さい | |
>= (以上) | A1>=1000 | セルA1は 1,000以上 | |
<= (以下) | A1<=1000 | セルA1は 1,000以下 | |
<> (等しくない) | A1<>1000 | セルA1は 1,000と等しくない |
上記は、数値との比較での例でしたが、文字列で比較する場合は、このようになります。文字列を”"(ダブルクオテーション)で囲む点が数値の比較と異なります。
比較演算子 | 論理式の例 | |
---|---|---|
= (等しい) | A1=”バナナ” | セルA1は 文字列 バナナ と等しい |
<> (等しくない) | A1<>”バナナ” | セルA1は 文字列 バナナ と等しくない |
●IS関数を使った論理式
IS関数はテストの対象として指定した引数をチェックし、チェック結果に対応した理論値「TRUE」か「FALSE」が返されます。
関数の名前の先頭にISとあるために、IS関数と呼ばれています。
IS関数 | 論理式の例 | ||
---|---|---|---|
ISBLANK | 空白セルであれば、TRUE を返します | ISBLANK(A1) | セルA1は 空白セルである |
ISERROR | エラー値 であれば、TRUE を返します ※エラー値:#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 、#NULL! のいずれか |
ISERROR(A1) | セルA1は エラー値 である |
ISERR | #N/Aを除くエラー値 であれば、TRUE を返します | ISERR(A1) | セルA1は #N/Aを除くエラー値 である |
ISNA | エラー値#N/A であれば、TRUE を返します | ISNA(A1) | セルA1は エラー値#N/A である |
ISTEXT | 文字列 であれば、TRUE を返します | ISTEXT(A1) | セルA1は 文字列 である |
ISNONTEXT | 文字列 でなければ、TRUE を返します | ISNONTEXT(A1) | セルA1は 文字列 でない |
ISNUMBER | 数値 であれば、TRUE を返します | ISNUMBER(A1) | セルA1は 数値 である |
ISEVEN | 偶数 であれば、TRUE を返します | ISEVEN(A1) | セルA1は 偶数 である |
ISODD | 奇数 であれば、TRUE を返します | ISODD(A1) | セルA1は 奇数 である |
●複数の論理式を組み合わせた式
AND関数やOR関数を使うことで、複数の論理式を組み合わせた論理式を作成することができます。
論理式の例 | |
---|---|
AND(ISNUMBER(A1),A1>=1000) | セルA1は 数値であり、且つ、1,000以上である |
OR(ISBLANK(A1),A1<>”パンダ”) | セルA1は 空白である、もしくは、文字列”パンダ”と等しくない |
カテゴリー:
関連していそうな記事
トラックバックURL
http://excel.jiten.org/tips/logical_expression/trackback/