No.3ベストアンサー
- 回答日時:
こんにちは。
maruru01です。IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、
=IF(条件式,真の場合,偽の場合)
という書式ですが、
=IF(条件式,真の場合)
と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、
=IF(条件式)
と、真の場合も省略することは出来ず、
=IF(条件式,,偽の場合)
と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽の場合も、
=IF(条件式,真の場合,)
と、引数区切りのカンマだけ付けると、空欄と見なされて(省略とは異なる)数値の「0」を返します。
次に、条件式についてですが、
条件式は、
「左辺」+「比較演算子」+「右辺」
の書式になっているものを指します。
ここで、比較演算子とは、
「=、>、<、>=、<=、<>」
を指します。
条件式は、成立/不成立の結果、TRUE/FALSEという論理値を返します。
つまり、
=A1="a"
は、条件式の戻り値そのものを表示していることになります。
それに対して、IF関数の方は、条件式を判定した結果、真の場合と偽の場合をそれぞれ実行して表示しています。
その真の場合と偽の場合が、条件式の戻り値とちょうど一致しているということです。
さて、IF関数の第1引数は、通常は上記の条件式を指定しますが、実際はIF関数は第1引数を数値として判断しています。
その判定基準は、第1引数が、
0 → 偽の場合を実行
0以外 → 真の場合を実行
となります。
そして、第1引数が条件式の場合に限り、戻り値の論理値を、
TRUE → 1
FALSE → 0
と数値に変換して判定しているのです。
これが、質問欄の後半の2つの数式の挙動の違いの原因なのです。
=IF(D4=TRUE,"OK!","No!")
は、第1引数は「D4=TRUE」という条件式です。
この場合、戻り値は必ずTRUE/FALSE(=1/0)です。
(ただし、D4にエラーが入っている場合を除く)
一方、
=IF(D4,"OK!","No!")
の方は、第1引数は「D4」で、これはセルD4の値そのものです。
で、前述のように、IF関数は第1引数を数値として判定するので、このD4が数値(と論理値)以外の場合(文字列など)はエラーになります。
D4が数値(と論理値)の場合は、前述のように、「0」かそれ以外かで判定され、真/偽の場合のいづれかを実行して表示します。
このIF関数の第1引数が数値として判定されているということを利用した例が以下のようなものです。
例えば、A列に数値が1つでもあれば"OK"、1つもなければ(つまり0)"NG"を表示する場合、意味を考えれば、
=IF(COUNT(A:A)>0,"OK","NG")
ですが、これを、
=IF(COUNT(A:A),"OK","NG")
と、A列の数値の個数(COUNT関数の戻り値)そのもので判定することが出来るわけです。
以上、長くなりましたが、補足説明でした。
この回答へのお礼
お礼日時:2004/04/07 12:41
maruru01さん、詳しく解説していただき、ありがとうございます。
とても勉強になりました。
これからもよろしくご指導をお願いいたします。
No.2
- 回答日時:
追加です。
D4セルに真偽値以外が入っていた場合、
=IF(D4=TRUE,"OK!","No!")
と
=IF(D4,"OK!","No!")
の動作は違います。
No.1
- 回答日時:
IF関数は
=IF(式,真,偽)
ですので、
式A1="a"がTRUEなら真を実行、FALSEなら偽を実行します。
ということは、
=A1="a"
でA1セルにaが入れば、上記の式A1="a"はTRUEを返し、A1セルにa以外が入れば、FALSEを返すので同じ動作ですね。
これを踏まえると、
=IF(A12="a",TRUE,FALSE)
は
=A1="a"
と省略できる。
ということです。(ちゃんとFALSEも入れましょう)
今度はD4セルに真偽値のTRUEやFALSEが入っていれば、
IF(D4=TRUE,"OK!","No!")
も
IF(D4,"OK!","No!")
も同じ動作ですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルで、1つのセルで上書き足し算して セルの範囲を指定できますか? パソコン初心者です。 お時間 3 2023/07/05 06:13
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- 英語 True sinus infections are less common but may have 1 2023/04/10 13:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
異性の友人関係で二人旅行、同...
-
京成電鉄事件とは
-
四日市ジャスコ事件の泥棒叫ん...
-
非決定の権力とは?
-
「当該」と「当」の使い分けが...
-
ひき逃げの車両はどのくらいの...
-
高校生です。カラオケで性行為...
-
「世は全て事もなし」とはどう...
-
チン凸で逮捕または罰金ていう...
-
先日の朝、自宅の敷地内にて人...
-
自宅での大麻所持は、なぜばれ...
-
妹が自己啓発セミナーにはまっ...
-
警察は事件の内容を教える義務...
-
翌々月の次は?
-
国内政治と国際政治の違い
-
人に言えないような悪い事とか...
-
純粋な人を騙す人の末路や因果...
-
無賃乗車し、後でお金を払った...
-
近親相姦って現実にあるの?
-
大学生と女子高生がセックスす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
異性の友人関係で二人旅行、同...
-
チン凸で逮捕または罰金ていう...
-
高校生です。カラオケで性行為...
-
「世は全て事もなし」とはどう...
-
ひき逃げの車両はどのくらいの...
-
純粋な人を騙す人の末路や因果...
-
人に言えないような悪い事とか...
-
先日の朝、自宅の敷地内にて人...
-
四日市ジャスコ事件の泥棒叫ん...
-
「当該」と「当」の使い分けが...
-
翌々月の次は?
-
友達と8時集合の約束だったの...
-
ラブホの部屋に防犯カメラって...
-
夜公園に張られたピアノ線でバ...
-
大学生と女子高生がセックスす...
-
すれ違いざまに、または後ろか...
-
OC線、OW線、DV線って何の略?
-
少年受刑者の性
-
二年くらい遊んだオンラインの...
-
無賃乗車し、後でお金を払った...
おすすめ情報