• ベストアンサー

【IF関数】初心者です。数式の読み方について。

IF関数学んでます。 まったくの初心者ですのでわかりやすく教えてください。 =IF(A5>=0,A1-A2,"") =IF(A5<0,A2-A1,"") これらの式の意味を教えてください。 前者は大きいほうの数値(A5)は小さい方の数値(0,A1-A2,)以上という意味で、A1セルからA2セルをマイナスしたもの…までしかわかりません。後者も同様です。 「0」が入っているのは0も含むのか? 「""」は空欄のようだが、数値を入力しなければならないのになぜあえて空白なのか? と「,」は単なる区切りなのか? ということも教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.12

>真、偽という記号がどうもわかりずらいです。がこのように覚えておけばよいでしょうか。 「条件式を満たす」ことを「真」と言います。 その逆、 「条件式を満たさない」ことを「偽」と言います。 条件判定において、「真でも偽でもない何か」と言うことは絶対にあり得ません。必ずどちらかになります。 これはプログラミングにおける超基本ですので、まずはそのまま覚えてください。 >=IF(A5>=0,A1-A2,"") >関数名: IF >引数1: A5>=0 >引数2: A1-A2 >引数3: "" 引数1は、あくまでも「条件式」のみです。 条件式は、そこにある変数(この場合A5セルの値)によって、真偽が決まります。 例) A5セルが 2 ならば、A5>=0 は成立しますので、条件式は「真」です。 A5セルが 1 ならば、A5>=0 は成立しますので、条件式は「真」です。 A5セルが 0 ならば、A5>=0 は成立しますので、条件式は「真」です。 A5セルが -1 ならば、A5>=0 は成立しませんので、条件式は「偽」です。 A5セルが -2 ならば、A5>=0 は成立しませんので、条件式は「偽」です。 そしてIF関数というのは、 『引数1を条件式として、真偽を判定する。 条件式が「真」となった時、IF関数の値として「引数2」を採用する。 条件式が「偽」であった時(真でないとき)、IF関数の値として「引数3」を採用する。』 という、かなり特殊な関数なんです。 「if」と言う英単語は、日本語では「もし~ならば」と言う意味です。 すなわち、 「if(条件式, 真のときの値, 偽のときの値)」 とは 「もし(条件式)が成立したならば、(真のときの値)になります、そうでなければ(偽のときの値)になります」 と訳せます。 これでご理解いただけるでしょうか…。

frau
質問者

お礼

回答ありがとうございます。 そうですか、IF関数は特殊なんですね。 これまで =100+100 程度の簡単な数式を使っていたもので、暗号を解くような複雑な数式に混乱しました。しかも超初心者にとってはいささか難しい例題でした。 このようなご親切丁寧な回答は検索してもなかなか出てきませんでした。各段に理解できました。

その他の回答 (11)

  • mpascal
  • ベストアンサー率21% (1136/5195)
回答No.11

>この式の0を抜いてみたところ 意味のないことですね。

frau
質問者

お礼

試してみただけですけれど。意味のないことでしたらその理由をお聞かせください。これだけでは「意味のない回答」です。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.10

IF関数の内容は =IF(条件,条件に一致した時の解,条件に一致しないときの解) です。 「,」は引数の区切りです。 =IF(A5>=0,A1-A2,"") は条件がA5>=0で、A5の値が0以上の時という意味 条件に一致した時の解はA1-A2の数式の値を表示 条件に一致しないときの解は""で非表示にしなさいという意味です。 =IF(A5<0,A2-A1,"") は条件がA5<0で、A5の値が0未満(マイナスの値)の時という意味 条件に一致した時の解はA2-A1の数式の値を表示 条件に一致しないときの解は""で非表示にしなさいという意味です。

frau
質問者

お礼

ご回答ありがとうございます。 関数を入力したセルには何らかしらの数値が入るものだと思ってましたので条件に満たないときには空白になるということは思いもよらずでしたが、意味がわかってくるとやる気がでますね。

  • hla7yrgrg
  • ベストアンサー率39% (414/1047)
回答No.9

≧という文字を使えないので、Excelでは「>=」と表します。数式の意味は知っていますよね? ≧ですから、「A5>=0」の場合0も含みます。 IF関数は「もし~であれば・・・」と言う式です。 =IF(A5>=0,A1-A2,"") と言う関数は 「=IF」で、「今からIF関数を使います」と宣言しています。この時の「=」は数式とは関係ありません。あくまで、Excel関数を使う時の宣言です。 そこから、どこまでIF関数なのかを表すのに「( )」を使います。「( )」の中がIF関数の条件式です。そして、発生条件、正の場合、負の場合を区分するのに「,(カンマ)」を使います。 IF関数を日本語にするならば、「=IF( 発生条件 , 発生条件が正しい場合(正) , 発生条件が間違っている場合(負))」と言う感じですね。 ですので、「=IF(A5>=0,A1-A2,"")」と言う式は、「もし、A5のセルが0と等しいかそれ以上の場合は、A1セルからA2セルを引く、A5のセルが0を含めないでそれ以下の場合は、空白("")」と言いかえることが出来ます。 「""」を使う意味としては、Excelの自動機能としてエラー表示が発生したりします。親切設計ですが、あえて何も条件セルに数値を入れていない場合もありますので、その場合に「""」でエラーメッセージを表示させない様にします。(勤怠表など作れば空白にしたい意味が分かってくると思います) 蛇足ながら、学研プラスから500円でExcelの解読本がでています。ペラペラですが、基礎の基から始めるには十分な内容ですし、実際の応用例もありますので、「なぜその関数を使うのか?」と言うのが分かりやすいです。それ以上に勉強したい場合は、足らずが分かるかと思いますので、分厚いExcel辞典など買い揃えた方が今後役に立つかと思いますよ。(まっ、大抵の企業がExcelという場合、IFとVLOOKUPの意味が分かればいいんですけどね・・・)

frau
質問者

お礼

ご回答ありがとうございます。 「=IF( 発生条件 , 発生条件が正しい場合(正) , 発生条件が間違っている場合(負))」 というわかりやすい解説に感謝します。 もちろん調べたのですが、正と偽の値という漠然とした解説だけで何を意味するのかがわからなかったものですから。 負の条件のときは「実行されない」んですね。どうも簡単な演算をしていたので、必ず何らかしら実行されるという感覚でしたので違和感がありましたが、IF関数とは命令でありこういう式は言語なんですね。 「""」も文字が入力されるなんて思ってもみませんでしたので、混乱しましたが文字を表示できるほかに空白も指令できるが、エラー表示を防ぐという多目的に使えるんですね。Excel、すごいですね。 もう少し学んで家計簿も作ってみます。

  • OKWavex
  • ベストアンサー率22% (1222/5383)
回答No.8

>前者は大きいほうの数値(A5)は小さい方の数値(0,A1-A2,)以上という >意味で、A1セルからA2セルをマイナスしたもの…までしかわかりません。 >後者も同様です。 そういう意味しかありません >「0」が入っているのは0も含むのか? 含むかどうかは条件しだいで以上以下は含むし超過未満は含まない >「""」は空欄のようだが、数値を入力しなければならないのになぜあえて >空白なのか? 数値を入力しなくてもいいから >「,」は単なる区切りなのか? 区切りです

frau
質問者

お礼

ご回答ありがとうございます。

回答No.7

上記の式がB1のセルに入っていたとします。セルA5、A1、A2には任意の数値が入っていることとします。 上記、上の式が表していることはセルA5にある数値が0か0より大きい値つまり正数の場合にセルA1からセルA2を引いた数値をB1に表示し、上記条件つまりセルA5にある数値が0か0より大きい値を満たさない場合、つまりA5にある数値が負数の場合にはB1は""つまり空白を表示しなさいという意味です。 下の式はセルA5が負数の場合であってあとは上に準じます。

frau
質問者

お礼

ご回答ありがとうございます。 ご説明の通り試してみました。 B5セルに「=A1-A2」 B1セルに「=IF(A5>=0,A1-A2,"")」 の式を入れて試したところ確かに A5が正数の場合はB1も正数、 負数の場合は「空白」となりました。 一方「=IF(A5<0,A2-A1,"")」 の場合は A5が正数の場合は「空白」、 負数の場合はB1も正数となりました。 わかってくるとおもしろいですね。

  • panacon
  • ベストアンサー率31% (214/679)
回答No.6

IF分の使い方は、IF(条件式,条件式にあった時の値,条件式に合わなかった時の値)です。書いてある式の意味は、 上段は、若し、セルA5の値が0以上なら、A1-A2の計算結果を書きなさい。それ以外なら、空白としなさい。 下段は、若し、セルA5の値が0未満なら、A2-A1の計算結果を書きなさい。それ以外なら、空白としなさい。 半角カンマは、式を書く時の区切りの約束です。""の意味は、文字を表すときのくくりで、この場合は文字列の空白となります。こういう使い方は、見やすさを重視するときによく使います。

frau
質問者

お礼

ご回答ありがとうございます。 わかりやすいご説明で感謝します。イメージできました。 カンマで区切られた記号をひとつづつ読んでいくのですね。ひとくくりとして捉えていたためにわかりずらかったのです。

回答No.5

Q1、式の意味は?  =IF(A5>=0,A1-A2,"")  IF A%>=0 THEN    X=A1-A2  ELSE    X=""  END IF  =IF(A5<0,A2-A1,"")  IF A5<0 THEN    X=A2-A1  ELSE    X=""  END IF Q2、「0」が入っているのは0も含むのか? >=・・・・・XXより以上 <・・・・・・XX未満 Q3、「,」は単なる区切りなのか? A2、「,」は、関数の引数の区切り子です。 >関数の引数は括弧で括られた中にカンマで区切って書きます。 (「C言語の引数について」より VBAやExcelの関数も同じです。 【補足】IIF関数の説明がそのまんまExcelのIF関数のそれです。   Public Function IIf( _     ByVal Expression As Boolean, _     ByVal TruePart As Object, _     ByVal FalsePart As Object _   ) As Object 《パラメータ》 ・Expression 必ず指定します。 評価する式をブール型 (Boolean) で指定します。 ・TruePart 必ず指定します。 Expression が True に評価された場合に返すオブジェクト (Object) を指定します。 ・FalsePart 必ず指定します。 Expression が False に評価された場合に返すオブジェクト (Object) を指定します

frau
質問者

お礼

ご回答ありがとうございます。

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.4

Excel関数の基礎の基礎から学ぶ必要があると思われます。 以下のようなページで、ステップ1から一つずつ、読んでいくのが良いのではないでしょうか。 >Excel 基礎講座 >http://www.becoolusers.com/excel/lesson-basic00.html ---- 一応ご質問にあるif関数を解説しますと。 全てのExcel関数は、関数名(引数1,引数2, 引数3, …) という構造になっています。 引数は、必ずカンマ「,」で区切られます。 あなたが、最初の引数「A5」で、2番目の引数「0,A1-A2,」と認識していること自体が間違っています。 =IF(A5>=0,A1-A2,"") を分解すると、 関数名: IF 引数1: A5>=0 引数2: A1-A2 引数3: "" こういう構造になっています。 if関数において、3つの引数は「if(条件式, 真のときの値, 偽のときの値)」と言うように使います。 条件式において、「>=」と言う比較演算子は、「以上」を示すので、「A5>=0」は「A5セルが0以上であるかどうか」を調べる意味になります。 その判定式が成り立つとき、関数の値は引数2のものが採用されます。 すなわち、A1からA2を引いた数値が、そのセルに表示されます。 先ほどの式が成り立たないとき、引数3の""という値、すなわち空白が、セルに表示されます。 0でなく空白なのは、「条件に合わないときに、0という値も表示したくない」からでしょう。 おそらくご質問にある2番目のif関数が、隣のセルに書かれていて、A5セルが0未満のときの計算結果(A2-A1)をそちらに表示するようなことになっているのではないでしょうか。

frau
質問者

補足

ご回答ありがとうございます。 IF関数の構造については知りえたのですが、例題が初心者にとっては複雑でしたので苦慮しています。 >2番目の引数「0,A1-A2,」と認識していること自体が間違っています。 何がどう間違っていると思われているのかはわかりませんが >ご質問にある2番目のif関数が、隣のセルに書かれていて、A5セルが0未満のときの計算結果(A2-A1)をそちらに表示するようなことになっているのでは おっしゃるとおりです。 例題ですが A1に300 A2に200 A3に式「=IF(A5>=0,A1-A2,"")」 A4に式「=IF(A5<0,A2-A1,"")」 A5に式「=A1-A2-A6」 となります。ですからA5に結果を出し、そこから意味を読み取ることになるので複雑なのでした。 >「A5>=0」は「A5セルが0以上であるかどうか」を調べる意味 という説明はわかりやすかったです。 引数1(真の値)は「条件」であり 引数2(偽の値)は「真の値」が事実であった場合に初めて結果がでる 真、偽という記号がどうもわかりずらいです。がこのように覚えておけばよいでしょうか。 >「条件に合わないときに、0という値も表示したくない」 なるほど。よくわかりました。

  • mpascal
  • ベストアンサー率21% (1136/5195)
回答No.3

=IF(A5>=0,A1-A2,"") もしA5の値が0より大きいか等しければ、A1-A2、そうでなければ、""(データ無し) =IF(A5<0,A2-A1,"") もしA5の値が0より小さければ、A2-A1、そうでなければ、""(データ無し) , は区切り記号ですね。

frau
質問者

補足

ご回答ありがとうございます。 「>=」の場合は「以上」ですからゼロを含ませることもできますが =IF(A5<0,A2-A1,"") の場合は0より小さい場合です。 この式の0を抜いてみたところ、回答2の方のお礼で示した結果のセル(A4)には「FALSE」と表示されました。 Excel側からの通常のエラー表示はでなくて単にこの文字が現れただけですが、これもエラー表示とみてよいのでしょうか?

  • mi7443
  • ベストアンサー率56% (74/131)
回答No.2

「A5>=0」とはA5の値が0以上と云う事。(0以上とは0を含む) ちなみに「A5<0」とはA5が0より小さい事(マイナス数値の事で、=がないので0は含まない。 「””」はA5>=0以外の場合は「答えをスペースにせよ(何も表示しない」と云う事。 たとえばA5>=0に対してA5にマイナス数値が入っていたら、この条件により答えがスペースになり、A5<0に対してA5にプラス数値が入っていたら答えがスペースになる。

frau
質問者

お礼

ご回答ありがとうございます。 A1に300 A2に200 A3に式「=IF(A5>=0,A1-A2,"")」 A4に式「=IF(A5<0,A2-A1,"")」 の表を作り A5の結果が整数ですとA3は空白となり、負場合はA4に結果が反映されました。 「””」は文字を指定するだけではなく、表のスタイルとしてセルに空白が必要な場合にも利用できるということがわかりました。

関連するQ&A