-
Home »
-
エクセル関数一覧表 »
-
Excel関数の目次 »
- 論理関数(AND,OR,NOT,XOR,IFERROR,IFNA)
- 論理関数(AND,OR,NOT,XOR,TRUE,FALSE)の説明をしています。 IFERROR関数はExcel2007で追加された関数です。
XOR関数、IFNA関数はExcel2013で追加された関数です。
AND関数 topへ
アンド
=AND(論理式1,[論理式2],・・・)
すべての引数が TRUE のときに TRUE を返します。条件は最大 255 個まで指定できます。
- 【問題1】
- 国語と算数の両方が60以上であるか否かを判定しなさい。
両方とも60以上であれば「TRUE」、そうでなければ「FALSE」と表示しなさい。
|
B |
C |
D |
E |
2 |
|
国語 |
算数 |
判定 |
3 |
相沢恭子 |
80 |
85 |
TRUE |
4 |
今田浩次 |
60 |
90 |
TRUE |
5 |
上田美香 |
30 |
40 |
FALSE |
6 |
江口恭介 |
70 |
50 |
FALSE |
- 【解答例】
-
|
B |
C |
D |
E |
2 |
|
国語 |
算数 |
判定 |
3 |
相沢恭子 |
80 |
85 |
=AND(C3>=60,D3>=60) |
4 |
今田浩次 |
60 |
90 |
=AND(C4>=60,D4>=60) |
5 |
上田美香 |
30 |
40 |
=AND(C5>=60,D5>=60) |
6 |
江口恭介 |
70 |
50 |
=AND(C6>=60,D6>=60) |
- AND関数の結果例
=AND(TRUE,TRUE) → TRUE
=AND(TRUE,FALSE) → FALSE
=AND(FALSE,TRUE) → FALSE
=AND(FALSE,FALSE) → FALSE
となります。
すべての引数が TRUE の時 TRUE が返されます。
それ以外は FALSE となります。
OR関数 topへ
オア
=OR(論理式1,[論理式2],・・・)
いずれかの引数が TRUE のとき、TRUE を返します。
引数がすべて FALSE である場合は、FALSE を返します。
- 【問題1】
- 国語と算数のどちらかが60以上であるか否かを判定しなさい。
どちらかが60以上であれば「TRUE」、そうでなければ「FALSE」と表示しなさい。
|
B |
C |
D |
E |
2 |
|
国語 |
算数 |
判定 |
3 |
相沢恭子 |
80 |
85 |
TRUE |
4 |
今田浩次 |
60 |
90 |
TRUE |
5 |
上田美香 |
30 |
40 |
FALSE |
6 |
江口恭介 |
70 |
50 |
TRUE |
- 【解答例】
-
|
B |
C |
D |
E |
2 |
|
国語 |
算数 |
判定 |
3 |
相沢恭子 |
80 |
85 |
=OR(C3>=60,D3>=60) |
4 |
今田浩次 |
60 |
90 |
=OR(C4>=60,D4>=60) |
5 |
上田美香 |
30 |
40 |
=OR(C5>=60,D5>=60) |
6 |
江口恭介 |
70 |
50 |
=OR(C6>=60,D6>=60) |
- OR関数の結果例
論理式1 |
論理式2 |
結果 |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
すべての引数が FALSE の時 FALSE が返されます。
それ以外は TRUE が返されます。
NOT関数 topへ
ノット
=NOT(論理式)
引数の論理値 (TRUE または FALSE) を逆にして返します。
- 【問題1】
- 国語と算数の両方が60以上でないか否かを判定しなさい。
両方が60以上でなければ「TRUE」、そうでなければ「FALSE」と表示しなさい。
|
B |
C |
D |
E |
2 |
|
国語 |
算数 |
判定 |
3 |
相沢恭子 |
80 |
85 |
FALSE |
4 |
今田浩次 |
60 |
90 |
FALSE |
5 |
上田美香 |
30 |
40 |
TRUE |
6 |
江口恭介 |
70 |
50 |
FALSE |
- 【解答例】
- 分かりにくい問題文になっていますが、「どちらかが60以上である」の逆を求めることを意図しています。
両方が60以上でなければ「TRUE]となります。
|
B |
C |
D |
E |
2 |
|
国語 |
算数 |
判定 |
3 |
相沢恭子 |
80 |
85 |
=NOT(OR(C3>=60,D3>=60)) |
4 |
今田浩次 |
60 |
90 |
=NOT(OR(C4>=60,D4>=60)) |
5 |
上田美香 |
30 |
40 |
=NOT(OR(C5>=60,D5>=60)) |
6 |
江口恭介 |
70 |
50 |
=NOT(OR(C6>=60,D6>=60)) |
- NOT関数の結果例
=NOT(TRUE) → FALSE
=NOT(FALSE) → TRUE
論理式 |
結果 |
TRUE |
FALSE |
FALSE |
TRUE |
XOR関数 Excel2013で追加された関数です。 topへ
エックスオア
=XOR(論理式1,[論理式2],・・・)
すべての引数の排他的論理和を返します。
- 【問題1】
- 国語か算数のどちらかが60以上でないか否かを判定しなさい。
片方が60以上で、もう片方は60未満になるものは「TRUE」、そうでなければ「FALSE」としなさい。
|
B |
C |
D |
E |
2 |
|
国語 |
算数 |
判定 |
3 |
相沢恭子 |
80 |
85 |
FALSE |
4 |
今田浩次 |
60 |
90 |
FALSE |
5 |
上田美香 |
30 |
40 |
FALSE |
6 |
江口恭介 |
70 |
50 |
TRUE |
- 【解答例】
- ややこしい感じがします・・・例が適切ではないような気もします。
以下のような計算になります。
|
B |
C |
D |
E |
F |
G |
H |
2 |
|
国語 |
算数 |
判定 |
国語の判定 |
算数の判定 |
結果 |
3 |
相沢恭子 |
80 |
85 |
=XOR(C3>=60,D3>=60) |
=XOR(C3>=60) |
=XOR(D3>=60) |
=XOR(F3,G3) |
4 |
今田浩次 |
60 |
90 |
=XOR(C4>=60,D4>=60) |
=XOR(C4>=60) |
=XOR(D4>=60) |
=XOR(F4,G4) |
5 |
上田美香 |
30 |
40 |
=XOR(C5>=60,D5>=60) |
=XOR(C5>=60) |
=XOR(D5>=60) |
=XOR(F5,G5) |
6 |
江口恭介 |
70 |
50 |
=XOR(C6>=60,D6>=60) |
=XOR(C6>=60) |
=XOR(D6>=60) |
=XOR(F6,G6) |
- 片方に「TRUE」があれば「TRUE」となります。
|
B |
C |
D |
E |
F |
G |
H |
2 |
|
国語 |
算数 |
判定 |
国語の判定 |
算数の判定 |
結果 |
3 |
相沢恭子 |
80 |
85 |
FALSE |
TRUE |
TRUE |
FALSE |
4 |
今田浩次 |
60 |
90 |
FALSE |
TRUE |
TRUE |
FALSE |
5 |
上田美香 |
30 |
40 |
FALSE |
FALSE |
FALSE |
FALSE |
6 |
江口恭介 |
70 |
50 |
TRUE |
TRUE |
FALSE |
TRUE |
- XOR関数の結果例1
どちらか一方が「TRUE」であれば「TRUE」そうでなければ「FALSE」となります。
論理式1 |
論理式2 |
結果 |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
- XOR関数の結果例2
TRUEの個数が奇数なら「TRUE」、偶数なら「FALSE」となります。
論理式1 |
論理式2 |
論理式3 |
論理式4 |
論理式5 |
結果 |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
FALSE |
FALSE |
FALSE |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
TRUE |
IFNA関数 topへ
=IFNA(数式,#NAエラーの時返す値)
数式が#NAエラーを返す時に指定した値を返します。
Excel2013で追加された関数です。
- 数式の結果が #N/A エラーの場合は指定した値を返し、それ以外の場合は数式の結果を返します。
- 【問題1】
- C列にはG2:H5の単価表から単価を表引きして数量とを掛け合わせる数式が入っています。
A列の商品名が入力されていないときには#NAエラーとなり、合計=SUM(C2:C4)が計算されません。
C2:C4の数式を修正して、エラーが表示さないようにしなさい。
- 【解答例】
- C2セルの数式を=IFNA(B2*VLOOKUP(A2,$G$2:$H$5,2,FALSE),"") として、C4までコピーします。
- Excel2013より前のバージョンではIFNA関数は使えないので、IF関数とISNA関数を組み合わせて使うことができます。
=IF(ISNA(VLOOKUP(A2,$G$2:$H$5,2,FALSE)),"",B2*VLOOKUP(A2,$G$2:$H$5,2,FALSE))
- Excel2007、Excel2010であればIFERROR関数を使うことができます。
=IFERROR(B2*VLOOKUP(A2,$G$2:$H$5,2,FALSE),"")
TRUE関数 topへ
トゥルー
=TRUE()
論理値TRUEを返します。
FALSE関数 topへ
フォールス
=FALSE()
論理値FALSEを返します。
- 論理値のTRUEは真、FALSEは偽とされており、反対の意味を持ちます。
=NOT(TUE()) や =NOT(FALSE()) を求めると、下図のようにそれぞれFALSEとTRUE とが返されます。
- 論理値を使って計算してみます。
下図のように、=TRUE() または =FALSE() と入力すると、それぞれ論理値 TRUE と FALSE が返されます。
演算をすると、 =TRUE()*1 は 1 、 =FALSE()*1 は 0 が返されます。
ワークシートでは TRUE は1、FALSEは0 として計算されることがわかります。
- ただし、VBAではちょっと異なりますので注意が必要です。
下図のように、VBAでは True * 1は -1 となります。False * 1 は 0 で同じです。
- 論理値を使う場面としては、IF関数の条件分けで TRUEの時とFALSEの時に分ける場面が思い浮かぶと思います。
IF関数の構文は =IF(条件,TRUEの時,FALSEの時) となります。
数式を =IF(条件,TRUE(),FALSE()) として、条件に数値を入力してみます。
すると、1のときは TRUE、 0のときは FALSE となります。これは演算の結果と同じです。
ところが、負の値や正の値を入力しても TRUE と判定されます。 つまり、0はFALSEと判定され、0以外はTRUE と判定されます。
スポンサードリンク
よねさんのWordとExcelの小部屋 »
エクセル関数一覧表 » 論理関数(AND,OR,NOT,XOR,IFERROR,IFNA,TRUE,FALSE)
PageViewCounter
![Counter](http://counter.eurus.dti.ne.jp/cgi-bin/Count.cgi?df=yoneyama.20.dat|md=8|dd=B|ft=0|negate=Y)
Since2006/2/27