• ベストアンサー

IF関数が理解できませんでした。

セル【G6】の数式を、「上記目標」が空白の場合は、「達成率」に空白を表示するように変更して下さい。 という問題があり、答えが =IF(E6=″ ″,″ ″,F6/E6) です。 しかし、表に空白の部分はありませんし、テキストにはIF関数の説明項目において、 =IF(論理式、真の場合、偽の場合) とあります。 IF関数の論理式内では真や偽の場合を示すのは「″ ″」部分ですよね。 ですが、真の場合も、偽の場合も空白で、答えは問題のどこを指してるのか、 最後にF6/E6がつく意味も全くわかりませんでした。 表には空白がないのに問題自体もどのように捉えたらよいのかもわかりません。 よろしくお願いします。

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

  • ベストアンサー
  • tokpy
  • ベストアンサー率47% (1313/2783)
回答No.4

> IF関数の論理式内では真や偽の場合を示すのは「″ ″」部分ですよね。 この質問の場合,論理式というのは,「E6=" "」の部分全体です。つまり,「" "」は論理式ではありません。 論理式の答えは,「真」と「偽」の2通りしかありません。 コンピュータにおいては「真」というのは,  「正しい」「True」「0以外の数」 という表現をする場合があり,同じく「偽」は,  「誤り」「False」「0」 という表現をする場合があります。 その前に, > =IF(E6=″ ″,″ ″,F6/E6) この式自体が違っているような気がします。 正しくは =IF(E6="","",F6/E6) です。 コンピュータでは,半角文字と全角文字は違います。Excelで式を書く場合は半角文字を使わなければなりません。アルファベット,カッコやコンマなどが半角文字でなければなりません。そして,余分なスペースも入れないようにしてください。スペースを入れるとエラーになったり意味が変わる場合があります。 また,空白とヌル文字も違います。空白というのはスペースのことで,スペース1つは1文字と数えます。ヌル文字というのは,文字数ゼロの文字列のことで,スペースではありません。 > 表には空白がないのに 何も入力されていないセルは「ヌル文字」扱いになります。ヌル文字はダブルクォーティーションを2個続けて並べることによって表します。 =IF(E6="","",F6/E6) この式の意味は 「もしE6がヌル文字ならば,ヌル文字を返し,そうでなければF6/E6を返せ」 という意味になります。

pencilart
質問者

お礼

ありがとうございます。 問題の意味だけでなく、 ヌル文字←これがよくわかってなかったんですよね。 スペースを""の間に入れると思ってましたし・・・ みなさんのご回答と自分で調べて照らし合わせたら なんとか理解できるようになりました。 ありがとうございました。

その他の回答 (6)

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

論理式=結果が真または偽と見なせる数式または値 E6=""  <-""の間はスペースはありません。 はE6がBLANK(未入力or数式の結果が"")の場合、真(TRUE)であり、それ以外は偽(FALSE)となります。 それに合わせて後ろの処理を実行する。 もっともE6=0だとF6/E6は、#DIV/0!というエラーになります。 またE6に数値以外の文字列があると#VALUE!というエラーになります。 そこまで考えるなら =IF(ISERROR(F6/E6),"",F6/E6) としたほうが良いかもしれませんね。

pencilart
質問者

お礼

ありがとうございます。 そうですね、ちょっと=IF(ISERROR(F6/E6),"",F6/E6)の方法でも やってみようと思います。 参考になりました。ありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.6

設問目的が達成率(実績値/目標値)を算出、条件として目標値が空白(未入力)ならば空白にするいう事です。 これをIF関数に当て嵌めると=IF(目標セル=空白,空白,達成率) ⇒ =IF(E6="","",F6/E6)となります。 一般的にエクセルでは、「空白」は未入力セルを表し、(半角)二重引用符を2連で表現します。

pencilart
質問者

お礼

ありがとうございます。 空白は(半角)二重引用符を2連で表現するということを知りませんでした。 ですが、どうにかこうにか解決することができました。 ほんとまだまだ練習を積む必要があるようですね・・・ 参考になりました。ありがとうございました。

  • vista2446
  • ベストアンサー率46% (131/279)
回答No.5

その答えが本当に正しいのか疑問を感じます。エラーが返されるのでは? IF(E6=" "," ",F6/E6)では、『E6セルに、空白スペースが入力されていれば空白スペースを、そうでなければ(値が入力されていれば)F6/E6(達成率=目標と実績の比率)を計算する』になってしまいます。目標がなければ、何も入力されない(わざわざ空白スペースを入力する人はいないでしょう)と思われるので、 IF(ISBLANK(E6),"",F6/E6)またはIF(E6="","",F6/E6)と回答する方が自然な感じがするのですが。。。 >IF関数の論理式内では真や偽の場合を示すのは「″ ″」部分ですよね 目標の値が入力されていなければ、G6はBLANKになります。F6には実績が入力されると思われます。E6に入力されていてF6がBLANKであればG6は「0」という達成率が計算されます。 >表には空白がないのに問題自体もどのように捉えたらよいのかもわかりません なので「IF関数」なんです。値があればいいのですが、「もしココのセルがBLANKだったら、このセルにはこう表示させる」と決めてやるのです。

pencilart
質問者

お礼

ありがとうございます。 >>表には空白がないのに問題自体もどのように捉えたらよいのかもわかりません >なので「IF関数」なんです。 そうですよね。何を勘違いしてるのやら・・・ 問題をおかしな方向に読み違えてたのと、空白の表示方法を 知らなかったのも大きな原因のようです。 おかげ様でわかるようになりました。 ありがとうございました。

noname#46899
noname#46899
回答No.3

この答えで正しいですか?これでは正常では無いと思いますけど? >=IF(E6=″ ″,″ ″,F6/E6) ではなく、 =IF(E6="","",F6/E6) でないと、正常な結果は出てきません。 >IF関数の論理式内では真や偽の場合を示すのは「″ ″」部分ですよね。 この文章自体がおかしいです。IF関数の中の論理式は「E6=""」であり、この論理式が「真」のとき(すなわちE6の内容が空欄の場合)にIF関数が示す値は「""」(セルには何も表示されない)であり、「偽」のとき(すなわちE6にデータがあるとき)にIF関数が示す値が「F6/E6」です。 >最後にF6/E6がつく意味も全くわかりませんでした。 この問題なら、変更前のセルG6の中身が「F6/E6」でしょ? >表には空白がないのに問題自体もどのように捉えたらよいのかもわかりません。 問題が「「上記目標」が空白の場合は」なんですから表に空白があるのは前提です。関数以前に問題自体を理解していないように思われます。

pencilart
質問者

お礼

ありがとうございます。 ん~そうですね、問題が何をいってるのかよくわかってなかった のはあります。 スペースの付け方を知らなかったのも大きかったみたいです。 偽の場合の条件として、達成率をつけなくてはならないという ことにも気付いていませんでした。 ですが、どうにか解決しました。 ありがとうございました。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.2

論理式:E6=" " 真の場合:" " 偽の場合:F6/E6 ただこの式だと条件は空白ではなく、スペースが入っているセルのことです。 「上記目標」(E6)にスペース(" ")が入っている場合、この計算式が入っているG6には同じくスペース(" ")が入ります。スペース以外の場合、F6/E6の結果(達成率)が入ります。

pencilart
質問者

お礼

ありがとうございます。 このスペースを入力するという部分を勘違いしてたみたいです。 ""なんですね。てっきり""の間にスペースを入れるもんだと 思ってました。 ありがとうございました。

回答No.1

質問文から察するに E6:到達目標 F6:現実の到達値 でF6/E6は達成率なのでは?

pencilart
質問者

お礼

ありがとうございます。 偽の場合に達成率の条件を入力しなくてはならないとは 思ってもみませんでしたので、ちょっととまどってたの ですが、みなさんのご回答でなんとかわかるようになり ました。 ありがとうございました。

関連するQ&A