• ベストアンサー

エクセル IF関数で質問です。

エクセル IF関数で質問です。 教えてください。下記の式はどういう意味ですか? =IF(I38=0,"",SUM(C38:I38)/$B$38) なかなかIF関数が覚えられません。簡単に理解できる方法はありませんか? IFを入力するときにみなさんはどうイメージしてますか? アドバイスください。

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

  • ベストアンサー
回答No.5

>なかなかIF関数が覚えられません。 恐らく、IF 関数だけの問題ではありません。一つひとつの基礎知識の積み重ねです。この回答文を最後まで読んでみてください。 >簡単に理解できる方法はありませんか? 簡単な数式から超難解なものまで、様々なレベルがあります。お示しの数式は 2 つの関数を入れ子にしているので、最も単純な IF の使い方と比べれば、少しだけ難しくなっています。 >IFを入力するときにみなさんはどうイメージしてますか? パソコンに最初に触れた頃は、どうだったでしょうね。今となっては、無意識です。 たまに複雑な数式を入力するときは、括弧の数が分かりづらいとかで、迷うというか時間がかかることもなくはないですが。難しくしようと思えば、幾らでも難しくなります。 基本的に私の場合は、Excel の「数式パレット」(fx ボタン)は使わずに数式をタイプすることを人にお勧めしています。数式パレットでは、数式が複雑になるほど入力しづらく、数式そのものに関する理解も進みにくいと考えているからです。「数式バー」などに直接タイプして入力していても、ヒントが適当にポップアップしてきたりします。インターネット上には、関数についての無数の情報もあります。いきなり難しい数式はムリでしょうが、だんだん色々なものを覚えていけばよいでしょう。 1. セルに「数式」を入力するとき、先頭の「=」(今回の場合は IF の直前の「=」)は、「これから数式を記述しますよ」という Excel へのお知らせをしているのですが、それより後ろに「=」が出てくると、別な意味になります。「I38=0」のような等式あるいは不等式を「論理式」と呼んでいます。条件によっては、「I38>0」、「I38>=0」、「I38<0」、「I38<=0」、「I38<>0」が出てくることもあります。「>=」は「≧」の意味、「<>」は「≠」の意味です。 2. 論理式は、「論理値」を返します。Excel では「TRUE」、「FALSE」という 2 種類の論理値があります。I38 セルに 0 が入力されているか空白のとき、「I38=0」は TRUE に変化します。それ以外の場合は、FALSE になります。 3. 「"エクセル"」は、「エクセル」という「文字列」を数式中に混ぜるときの記述の仕方です。「""」は、「長さ 0 の文字列」です。これがセルに入力されていると、何も表示されないので見かけが空白のように見えます。私は空文字列と呼んでいることが多いのですが、最善の短い呼称は未だに分かりません。空白の文字列と言う人もいますが、厳密には空白ではないので、各種分析において「""」の存在がデメリットになるケースもあります。 4. 「C38:I38」は、「C38 セルを左上の頂点とし、I38 を右下の頂点とする長方形の『セル範囲』への『参照』」を意味する記号です。つまり C38~I38 という 1 行 7 列の範囲を参照します。 5. SUM は、合計する関数です。その「引数」(ひきすう)にセル参照を書くと、範囲内にある「数値」を全て合計します。上の範囲であれば、「C38 の値 + D38 の値 + … + I38 の値」という計算結果の値を返します。なお、(参照で登場する場合の)文字列は「0」として合計します。SUM に限ったことではありませんが、関数が返す値(SUM であれば合計)を数式の途中に引用する場合は、その直前に「=」を付けません。しかし IF などを絡めず単にセルに合計を表示させたい場合は、「=sum(c38:i38)」と入力します。大文字/小文字の別は、多くの場合、混ぜこぜに書いても大丈夫。 6. 「/」は、数学における分数であり、「÷」でもあります。Excel ではいつも「/」と書きます。「*」は、「×」(掛け算)の意味です。「10^6」は、「10 の 6 乗」の意味です。 7. 「$B$38」は「絶対参照」、「B38」だと「相対参照」です。この違いは、参照が使われている数式(ご質問の IF の数式など)が入力されているセルを別の場所にコピペしてみるとよく分かります。貼り付けたセルの数式を見ると、相対参照では、「B」という「列番号」と「38」という「行番号」が別のものに書き換わっています。別のものというのは、参照元と参照先の相対的な位置関係を保持した番号になるということ。つまり、2 行下で 3 列右などといった、元の位置関係のことです。絶対参照では番号が書き換わらず、「$B$38」のまま固定されています。「B$38」とすると「$38」の部分のみ固定、「$B38」とすると「$B」の部分のみ固定となり、残りは書き換わります。ですから「$」は、数式をコピーするときに必要となる記号と考えればよいでしょう。コピーの中には、「オートフィル」も含まれますね。ドラッグやダブルクリックで多数のセルを埋める、あの機能です。 8. IF は、二者択一の場合分けをする関数。第 1 引数が TRUE または非ゼロの数値であれば、第 2 引数を返します。第 1 引数が FALSE またはゼロという数値であれば、第 3 引数を返します。第 1 引数が文字列であれば、「#VALUE!」という「エラー値」を返します。 以下は、例を示します。各数式を Excel の数式バーに貼り付けるか、セルをダブルクリックして貼り付けて、結果を確かめてみてください。二つに一つの結果を選んでいるだけのことなので、実は簡単ですね? =if(false,"エクセル","ワード") =if(-1.2,"エクセル","ワード") =if(0,"エクセル","ワード") =if(,"エクセル","ワード")  ……「0」の省略 A1、B1 セルに入力されている値によって結果が変わる =if(a1-b1,"エクセル","ワード") =if(a1-b1>0,"エクセル","ワード") =if(a1-b1>0,12,-0.3) =if(a1-b1>0,a1-b1,a1) =if(a1-b1>0,sum(a1:b1),sum(a1:b1)^2) =a1+if(b1>0,b1,0)

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>簡単に理解できる方法 セルに実際に数式を記入し、そのセルで隣にあるfxボタンをクリックします 添付図のようにfxウィザードが起動し、今回の数式ならIFという関数のシクミの解説を見る事ができます ウィザードを実際に起動してみると、「論理式」「真の場合」「偽の場合」という3つの要素が必要であることが表示されています。ちなみに各欄にカーソルを入れてみると、ダイアログ中段には「その欄の使い方」の簡単な解説が表示されるので、そちらも参考にしてください。 正しい数式をお手本に(間違った数式はお手本になりません)ウィザードを確認してみると、どの部分が論理式になっているのか、真の場合はどの部分が動作するのか、偽の場合はどこが働くのか、数式の中身を噛み砕いて確認する事ができます。 正しいお手本の数式の動作がよく理解できないときは、たとえば別のセルに =SUM(C38:I38)/$B$38 という「偽の場合」の数式だけを切り出してみて、数式を砕きながら勉強してみるのも良い方法です。 >IFを入力するときにみなさんはどうイメージしてますか まっさらのセルで改めてfxボタンをクリック、ウィザードを起動します。「論理式」「真の場合」「偽の場合」の3つの欄がそれぞれ空白のダイアログが現れます。 あなたは今からそのセルで、IF関数を使って具体的に一体何をしたいのか「何がどうだったらどうなって欲しいのか」、よく考えながら各欄に記入したり作成して埋めていきます。

noname#204879
noname#204879
回答No.3

参考までに、 =IF(I38=0,"",SUM(C38:I38)/$B$38) という式は、下記の式でも同じ結果を呈します。 =IF(I38<>0,SUM(C38:I38)/$B$38,"") でも、此れはやや冗長で、私なら次式を採用します。 =IF(I38,SUM(C38:I38)/$B$38,"") →最初の式より2文字分短い (^_^)

回答No.2

私の場合は、昔のBASIC(Visual Basicではない)が最初に触れた プログラム言語だったので、 IF ~ THEN ~ ELSE ~ 文が思い浮かんでしまいます。 基本的な考えは、一緒ですね。

回答No.1

IF関数は、  IF( 条件式 , 正のとき , 偽のとき ) となっています。 =IF(I38=0,"",SUM(C38:I38)/$B$38) の例ですと、 I38が0 のときは "" つまり、空白を I38が0 でないときは、 SUM(C38:I38)/$B$38 を計算した結果を 式の結果として返します。

関連するQ&A

  • エクセルのIF関数について

    エクセルの数式でIFを使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?

  • エクセル関数について(IF関数)

    エクセルの関数について教えて下さい。 セルに1と入力した場合Aと出てきて、2と入力した場合B、3と入力した場合Cとなるような計算式を入れたいのですが、どのような式を入れればよろしいのでしょうか? 別のシートから呼び出す(?)というような方法でもいいのですが、どんな式を入れればよいのか、全く分かりません。 自分で調べてみた結果、IF関数を用いるということは解りました。 『IF(A1="1","A",IF(A1="2","B",IF(A1="3","C")))』 上記のような式を入れてみて、実際に実践してみたところ、結果としては入力した数字が表示されるだけで、計算式は消えてしまいました。 どうしたらいいのか解りません。 素人故に恥ずかしい質問ですが、お知恵を貸して下さい。 よろしくお願いします。

  • Excel IF関数について質問です。

    ExcelのIF関数について質問があります。 B2,C2,D2に入力されている文字を一つずつスペースを設けて、A1に自動的に入力されるような関数を作りたいのですが、どうしてもできません。 B2,C2,D2に文字が入力されていれば、=B2&" "&C2&" "&D2 という関数でこの問題は解決できます。 しかし、もしC2が空白なら、上記関数ですと、スペースが2つできてしまいます。 ●もし空白なら、スペースを作らないというIF関数を作りたく試行錯誤しましたが、できませんでした。 どなたかおわかりの方教えて頂けないでしょうか? よろしくお願い致します。

  • 【Excel】この関数式の読み方を教えてください

    =IF(COUNT(B1:C1)=0,"",SUM(B$2:B2)-SUM(C$2:C2)) という式です。関数についてはまったくの無知ですが少し調べました。 =IF(COUNT(B1:C1)=0 まではCOUNT 関数ですよね。この関数は指定した範囲内に入力されているセルの数を数えるということですが、なぜ=0なのでしょうか。 また$は参照先を固定するという意味だそうですが、 "",SUM(B$2:B2)-SUM(C$2:C2)) はどう読むのでしょうか? 関数や数式にまったく無知なのでご丁寧なご教示お願いします。 Excel2007利用です。

  • Excelの関数について

    Excelの関数について教えてください。 C1に50、D1に30、E1に=SUM(A1:D1)、B2に=E1-SUM(A1:B1)、が入力されています。 このB2の計算式を、「もしB1:C1のどちらか片方(もしくは両方)に値が入力されているときはB2の計算式の結果が返ってくる。B1:C1のどちらも空欄のときは「#N/A」が返ってくる。0は入力有りとみなす」というようにしたいです。 IF関数にISBLANK関数を入れてみたんですが、片方に入力有りでも「#N/A」が返ってきてしまいます。 =IF(ISBLANK(B1:C1),NA(),E1-SUM(A1:B1)) ISBLANK関数じゃダメだったんでしょうか? どういうふうに変えればいいんでしょうか? すみませんがどなたか教えてください。

  • EXCEL IF関数について質問です

    EXCEL IF関数について質問です 入力欄に1を入力したときはA、2を入力したときはB、それ以外はNGにする論理式を教えて頂けないでしょうか? 何卒よろしくお願い致します

  • これはエクセルのIF関数を使ってできますか?

    こんばんは。 エクセルで悩んでいます。 A列に、"大学"・"高校"をオートフィルタで選べるようにして、 B列に、大学なら1~4の数字、高校なら1~3の数字を入力します。 そして、C列に、A1="大学"かつB1=1なら30(ポイント)、         A1="大学"かつB1=2なら40、         A1="高校"かつB1=1なら20、         それ以外は空白 というような自動計算式を作りたいと考えています。 この場合、IF関数とAND関数で作成すればできますでしょうか。下記のような式を作成しましたが、うまくいきません。 =IF(AND(A1="大学",1),30,IF(AND(A1="大学",2),40,IF(AND(A1="高校",1),20,""))) 説明が下手で申し訳ありませんが、 なんとかアドバイスいただければ幸いです。 よろしくお願いします。

  • IF関数について

    A4に=IF(SUM(A1:A3)=0,"",SUM(A1:A3))、 B4に=IF(SUM(A1:A3)=0,"",SUM(A1:A3))と式があり C4に=IF(AND(A4="",B4=""),"",B9-C9)と入力すると #VALUEが返ってしまいます。 A4,B4どちらかのセルが""の時でもB9-C9の引き算の値が返るようには出来ないでしょうか?

  • エクセル IF関数が入った条件付き書式について

    エクセルにおいて、セルA1、B1、C1があるとします。A1、B1には数値が何も入力されていない状態で、C1に計算式「=SUM(A1)/B1」が入っているとします。このままでは、C1は、「#DIV/0!」と表示されます。 この表示を消すために、C1にIF、ISERROR関数を使い、「=IF(ISERROR(SUM(A1)/B1),"",SUM(A1)/B1)」の計算式を入力します。 このままでもいいのですが、C1の値が「10以上」になった時に、C1のセルに色を付けたいのです。 書式→条件付き書式→セルの値が→次の値以上→10 にすると、セルに何も値が入っていない(空白)状態で色だけが付いてしまいます。 色々調べると、IF関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。

  • エクセルの関数【再質問】

    すみません。再質問させてください。 一度 自分では理解したと思い 質問を締め切ったのですが、回答いただいた関数の意味を教えてほしいのですが ↓このような質問して エクセルの関数ですが B2には目標値が入っています。C2~N2まで、毎月数値を入れて行きます。今は1月なのでL2まで数値が入っています。M2~N2は、いまは空欄です。 O2には、 =SUM(C2:N2)-B2*10  と関数が入っています。 最後の10は、月数です よって2月の数値が決定したら M2に数値が入り O2には =SUM(C2:N2)-B2*11 となります。 これだと、毎月 最後の月数の数字を入れ替えなくてはなりません この O2のセルの関数を毎月いじらなくてもよい関数を教えてください 宜しくお願いいたします ↓ 下記の回答をいただきました =SUM(C2:N2)-B2*MATCH(10^10,C2:N2) この 10^10,  の意味はなんですか? もし、11か月分なら 11^11にしなくてはいけないのですか? 入れる関数は。毎月いじらないままにしたいのですが・この関数でいいのです?

専門家に質問してみよう