• 締切済み

IF関数で結果を出したい

IF関数を入れていますが、結果が出ません。 入れ子のせいでしょうか? 元が計算式だからでしょうか? 下の関数ですが、1回は出てきますが、2回以降の回数の結果が出ません。 セルD2に(D1+C2)と計算式を入れています。 セルE2に → =IF(D2<=17,"0回",IF(D2>=18,"1回",IF(D2>=36,"2回",IF(D2>=54,"3回",IF(D2>=72,"4万回"))))) 宜しくお願い致します。

みんなの回答

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.8

ちょっと毛色の違う解を紹介します。 =IF(D2>=72,"4万回",TEXT(QUOTIENT(D2,18),"0回")) なお、 D2セルがマイナスになったときに期待通りかどうか定かではありません。m(_ _)m

回答No.7

=IF(D2<=17,"0回",IF(D2>=72,"4万回",IF(D2>=54,"3回",IF(D2>=36,"2回",IF(D2>=18,"1回"))))) という式にすれば良いのでは? D2>=18を先に判断すると36や、54、72は全て18以上ですからそこで完結してしまいますつまり 0回 か 1回 しか答えは出ません

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

こういう、おなじ1つのセルの値について、IF関数を3回以上ネストしているのは、初心者丸出しのやり方です。(私は昔から自己流にそう判定している)。 式が長くなって(ネストが深くなって)、面倒だと思いませんか。 定石であるVLOOKUPのTRUE型を使うと、「何回」などの数字や何回などの文字列などが、1つの関数で出せます。 (プログラム言語では、CASE文などがあり、それを使うと、プログラムが、表に似て、読みやすく、わかりやすくなるものです。) 有名な関数の有名な使い方なので、Googleで、「エクセル VLOOKUP関数 TRUE型」で照会して、模擬例を勉強して、本件の式を作って下さい。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1036021560など シートのデータとは離れたセル範囲に F列 G列 0 0 17 1 19 2 37 3 55 4 73 5 100 6 ・・ のような「対応表」を作る必要があるが。表(16とか18や36など)は昇順に並べて表を作ります。 === 意味は 0-16   0 17-18  1 19-36  2 37-54  3 55-72  4   73-100   5  式は =VLOOKUP(A1,$F$1:$G$7,2,TRUE) 複数セルを対象とするなら、下方向に式複写。 ーーーー 定義した、該当区間に対応する数や文字列を引っ張ってくれます。 上記の時、境界値の±1の値をどちらの区間に考えるかに注意。テストをしっかりすること。これが面倒ですが。 本件は過去に頻出する質問で、最後まで書く気がしない。特に区間値の境界の値のテストが面倒。 ーー VLOOKUP関数の単行本も複数あり、この関数の講義セミナーさえあるようだ。 VLOOKUP関数は、是非知っておくべき関数だ。FALSE型の方がよくつかわれる けれど。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

>下の関数ですが、1回は出てきますが、2回以降の回数の結果が出ません。 論理の組み立て方に誤りがあります。 IF関数は2択なので多重化するときに論理の誤りが起こり易くなります。 =IF([論理式1],[True1のとき],IF([論理式2],[True2のとき],[False2のとき]))       ↓ =IF(D2<=17,"0回",IF(D2>=18,"1回",[False2のとき])) D2が17以下のときは"0回"が返り、D2の値が18以上のときは"1回"が返ります。 D2の値が整数の場合は[False2のとき]に該当する処理はありません。 従って、次の数式と等価です。 =IF(D2<=17,"0回","1回") 提示の数式の代案としては次のようになります。 =IF(D2<18,"0回",IF(D2<36,"1回",IF(D2<54,"2回",IF(D2<72,"3回","4万回")))) または =IF(D2<=17,"0回",IF(D2>=18,IF(D2>=36,IF(D2>=54,IF(D2>=72,"4万回","3回"),"2回"),"1回")))

回答No.4

最初に17以下、、次に18以上と指定しているので、残りは17より大きく18より小さい値以外該当しないです。 範囲の狭い方を先に判定させないと望む結果にならないかと。 入れ子の記述順を逆にするといいですよ。 ちなみに関数の判断順は、入れ子の中から優先されるのではなく、前から優先されます。

  • okwavey2
  • ベストアンサー率15% (251/1593)
回答No.3

条件に該当するものがないから、結果が出ないのだと思います。 =IF(D2<=17,"0回",IF(D2>=18,"1回",IF(D2>=36,"2回",IF(D2>=54,"3回",IF(D2>=72,"4万回"))))) これだと分かりづらいんですかね? この式の通りの順で意味を書くと 1.D2が17以下→0回 2.D2が17以下ではなく18以上→1回 3.D2が17以下ではなく18以上でもなく36以上→2回 2の時点で条件に漏れがある D2が17より大きく18より小さい場合は? 3の時点でこんなことは有り得ない。 この条件に一致するものは存在しない。 こうならないためには、大きい順か小さい順かどちらかの順になるようにします。

  • skp026
  • ベストアンサー率45% (1011/2238)
回答No.2

=IF(D2<=17,"0回",IF(D2<=35,"1回",IF(D2<=53,"2回",IF(D2<=71,"3回",IF(D2<=72,"4万回"))))) 上記のようにする方法もありますが、 IF(D2>=72,"4万回")こちらの判定から先にやり、 順次に54、36、18を判定する方法もあります。

回答No.1

  D2が18以上の場合、たとえ100でもIF(D2>=18,"1回"、これが成立します 100も18以上ですよ このケースなら =if(D2>=72,"4万回",if(D2>=54,"3回",if(D2>=36,"2回",if(D2>=18,"1回","0回")))) この様にします  

関連するQ&A

  • Excelのif関数を使ったのですがうまくいきません。

    Excelのif関数を使ったのですがうまくいきません。   | A | B | C | D | E ----------------------- 1 | A | A | A | A | 5 2 | B | A | A | B | 4 3 | C | C | A | C | 2 のようにA1~D4のセルに入力されたA,B,C の組み合わせによって E5のセルに1~5の数字を入れていきたいのですがAAAA~CCCCの組み合わせが 15通りあってif関数では入れ子ができません。 AAABもAABAも同じと判断させて1~5の数字を自動的に入力させたいのですが 何かいい方法はないでしょうか。 教えてください。

  • IF関数の複数条件

    D2のセルに計算式B2+C2が入力されているんですが、 E2のセルに●か▲のどちらか一つが入力されたときにD2のセルの式をB2*C2に切り替えたいです。 この場合のif関数の式を教えてください。

  • Excelで、IF関数を使用して空欄にしたところの数値を使用したいのですが

    Excel初心者です かなり特別なケースだと思うのですが IF関数を使って、{上と同じ数値なら空欄、そうでない場合は計算結果を表示} というのを、 E9 =IF(SUM(E8,C9)-D9=E8,"",SUM(E8,C9)-D9) という関数を使って作ってみました。 仮に、下のような数値の並びの場合 1 22 333 333 4444 4444 4444 55555 という場合 1 22 333 4444 55555 というように表示したいのですが この関数を見ていただくとわかるとおり 一つ上の数値を参照して計算するため 空欄であれば、そのセルの数値を”0”として認識してしまい 下の計算結果がハチャメチャなものになってしまいます。 空欄を表示しても、数値は参照したい というような場合、どのようにしたらいいのでしょうか もしくは、上の関数を使用した場合 E8が空欄の場合はE7の数値、E7も空欄の場合E6を参照する、というやり方はあるのでしょうか。 自分でも調べてみたのですが、同じようなケースの質問がなかったため質問させていただきました。 どうぞよろしくお願いいたします。

  • 関数の計算結果を再度関数に組み込む方法は

    例えばです。  A) セルA1に 「10」、   セルB1に「20」  、 セルC1 に 「30」    の各々の数字が入力されていて、セルD1にSUM関数を使って、合計した    数値を入力するものとします。    セルD1には、SUM関数計算結果として「60」という数字が表示される。  ここからが、質問のポイントなのですが、  B)セルE1にセルD1に表示された「60」の18倍した計算を自動計算した結果を表示することはでいないのでしょうか。   あまりうまく表現できないのですがアドバイスしていただきたい点お分かりいただけたでしょうか。   別の表現の仕方をしますと、      セルD1、SUm関数   セルA1+セルB1+セルC1のSum関数の計算結果表示      セルE1          セルD1×18                           ※セルE1には、上記の「セルD1×18」の自動計算式を入力したいのですが、       首尾よく入力できません。   あまり要領よく質問できていないかもわかりませんが、よろしくお願いします。

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

    こんにちはエクセルIF関数の入れ子について 労働力1000以上     ***     500以上1000未満  **     500未満        * と表示しようと思い、セルに =IF(D4>=IF(D4>=500,"**","*")=1000,"***")  ※D4は労働力の数値 と入力したらFALSEが表示されました。 入れ子をしなければ表示が正常にされるのですが 入れ子をするとFALSEになります。 原因がわからないので教えてください。

  • エクセルのif関数で

    エクセルのif関数でこれができるのかわかりませんが、 C1~C10の中の文字列の中にA1と同じ文字列があればB1に「1」を入れ、なければ「2」を入れるということをやりたくて B1のセルに IF(OR(C$1:C$10=A1),1,2) という計算式を入れました。 関数の引数の中の数式の結果では、正しい結果が表示されてるのですが、B1のセルには間違った結果が表示されます。 また、B2以下B20まで計算式をコピーするとB11以下は#VALUE!になってしまいます。 一つ一つを見てみると、どうやらセルに正しく表示されるのはAの行とCの行が=だった場合のみのようです。 #VALUE!が表示されているセルも含めて、数式の結果では正しい結果が出ているのにセルの表示が違っているのが納得できませんが、おそらく何かが間違っているのでしょう。 間違いを教えてください。 よろしくお願いします。

  • エクセルでIFとANDを使った関数について教えて下さい

    A B C D E F G 1 1 2 3 結果 2/3 2/4 2/5 2 2/3 2/4 2/5 合格 0 0 1 3 上記のような表を作成しようとしています。条件が、 D1が「合格」で、 C2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じなら「1」、 違うなら「0」、 B2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」なら「1」、違うなら「0」、 A2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」で、B2が「空欄」なら「1」、違うなら「0」 を返しなさい。 という関数を作りたいのですが、上手くいきません。 IFとANDを使えばいいと思うのですが、どのように組み合わせれば 良いでしょうか。 真を返す、優先順位は、C2、B2、A2、のセルです。 C2に日付が入ってるときはB2とA2に日付が入っていても カウントされないように(偽が入るように)したいのです。 ちなみに、最初は、 =IF($D2="合格",IF($C2=E$1,1,IF($B2=E$1,1,IF($A2=E$1,1,0))),0) と、入れてましたが、これだと、C2に日付が入った時にC2だけカウント したいのに、B2もA2もカウントされてしまいます。 どうか、良きアドバイスをお願いします!!

  • IF関数との組み合わせを教えて下さい。

    IF関数との組み合わせを教えて下さい。 エクセルで計算式を組んでいます。 Q3のセルに =ROUND(Q3*1.05,0) と入れています。 この計算の結果が50001になたっときだけ、50000になるようにしたいです。 Q3セルにIF関数を組み合わせればいいのはわかるのですが、どう入れたらいいか教えて下さい! よろしくお願いします。

  • IF関数

    勤務分担担当表を作成しています。以前から論理式の対象のセルに計算式が入っているとき関数が反映しない時があります。未熟が原因だと思うのですが回答お願いいたします。今回の例を記載します。対象セル(=E18).E18の計算式=IF(AD9=2,"休",IF(AD9=1,"3",IF(AD9="休","2",IF(AD9=3,"1")))).反映させたいセルの計算式=IF(I$18=1,IF(E19=3,4,3),IF(I$18=2,IF(E19=1,$X$4,IF(E19=2,$AD$3,IF(E19=3,$AD$4,IF(E19=4,$X$3,"")))),""))です。仕事の分担に1~4・休、まであります、それを返し、勤務表を作成しています。他の事例では対応できるのですが今回はできません。ご指導お願いいたします。対象セルが実数だと反映してくれます。

  • IF関数

    勤務分担担当表を作成しています。以前から論理式の対象のセルに計算式が入っているとき関数が反映しない時があります。未熟が原因だと思うのですが回答お願いいたします。例を記載します。対象セル(=E18).E18の計算式=IF(AD9=2,"休",IF(AD9=1,"3",IF(AD9="休","2",IF(AD9=3,"1")))).反映させたいセルの計算式=IF(I$18=1,IF(E19=3,4,3),IF(I$18=2,IF(E19=1,$X$4,IF(E19=2,$AD$3,IF(E19=3,$AD$4,IF(E19=4,$X$3,"")))),""))です。仕事の分担に1~4まであります、それを返し、勤務表を作成しています。他の事例では対応できるのですが今回はできません。ご指導お願いいたします。

専門家に質問してみよう