• ベストアンサー

IF関数について

みなさん教えてください。 所定の数値から所定の数値の間だった場合は引数を返すと いった感じにしたくて、ある程度の数でしたら下記の 関数でいいんですが、繰り返しが多いからかエラーが出ます。他にちょうどいい関数があるのか、処理方法があれば 教えてください。お願いします。 検索値(G21) 計算式 15000(例) ここが問題 これ以上 これ未満 引数 10001 20000 1000 20001 30000 2000 30001 50000 3000 50001 100000 5000 100001 150000 7500 150001 200000 10000 200001 250000 12500 250001 300000 15000 300001 400000 20000 400000 30000 これはエラーが出て駄目でした。 =IF(G21<10000,"メーカー保証のみ",IF(G21<20000,"1,000円",IF(G21<30000,"2,000円",IF(G21<50000,"3,000円",IF(G21<100000,"5,000円",IF(G21<150000,"7,500円",IF(G21<200000,"10,000円",IF(G21<250000,"12,500円",IF(G21<300000,"15,000円",IF(G21<400000,"15,000円",IF(G21<9999999,"30,000円")))))))))))

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

  • ベストアンサー
  • ta123
  • ベストアンサー率51% (95/186)
回答No.4

Vlookupを使う方がいいとは思いますが、あえてif関数を使うとすれば、以下のような方法と思います。 =IF(G21<100001,IF(G21<50001,IF(G21<30001,IF(G21<20001,IF(G21<10001,"メーカー保証のみ",1000),2000),3000),5000),IF(G21>150000,IF(G21>200000,IF(G21>250000,IF(G21>300000,IF(G21>400000,30000,20000),15000),12500),10000),7500))

hannes
質問者

お礼

ありがとうございます!Vlookupを使う方法が確かに 一番いいんですが、こちらだとどこも参照せず、1つのセルで完成するのでこちらを使わせていただきました。 ありがとうございました。

その他の回答 (4)

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

VLOOKUPが正解なんですが、別解を上げます。 解法は色々あることを知って今後の勉強の時の心構えに役だたせてください。 (テーブル:表)A1:B10に昇順に作る 0 メーカ保障のみ 10,001 1000 20,001 2000 30,001 3000 50,001 5000 100,001 7500 150,001 10000 200,001 12500 250,001 15000 300,001 20000 A12にデータが入るとして B12に =INDEX($A$1:$B$10,MATCH(A12,$A$1:$A$10,1),2)

hannes
質問者

お礼

ありがとうございます!助かりました。 1つの答えを導き出すのにいろんなアングルから 見て計算方法をあてるというのはエクセルの醍醐味ですね。実は他の方法をいろいろやってみたのにわかりませんでした。勉強になります。

回答No.3

IF関数ですとネストの関係で、限界があります。 VLOOKUP関数を使って以下のようにしてみては。 (1)テーブルを作成します。(仮にセルA1からB10まで) A       B 1 0      メーカ保障のみ 2 10,000      1000 3 20,000     2000  4 30,000      3000 5 50,000     5000 6 100,000    7500 7 150,000    10000 8 200,000    12500 9 250,000    15000 10 300,000    20000 (2)検索値がG21にあるとして、H21に以下の関数を入れます。 =VLOOKUP(G22,$A$1:$B$10,2,TRUE) テーブルを作る必要がありますが、実用上範囲は、無制限にとれます。 質問では、もっと範囲が大きいですが適宜追加してください。 また、別のシートにテーブルを作ってもかまいません。 A1:B10は絶対番地にする必要はありませんが、式のコピーの際、範囲がずれません。  

hannes
質問者

お礼

ありがとうございます!確かに、限界があってできませんでした。エクセルは中途半端な知識じゃ使いこなせないですね・・。がんばって覚えます。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

VLOOKUPを使ってできそうに思いますが、 質問文の表と式で、 10001と10000で意味が違っているような気がします。

hannes
質問者

お礼

確かに、IF関数だと10001じゃだめでした。 結局IF関数でできました。ありがとうございました。

  • matrix4
  • ベストアンサー率16% (118/704)
回答No.1

空白なら、空白のまま if(G21="","",G21<10000,"メーカ-保障のみ", でどうでしょう。

hannes
質問者

お礼

早速の解答、ありがとうございました。 なんとかできました。

関連するQ&A

  • IF関数

    みなさん教えてください。 下記のIF関数で、正確な数値が出ません。ドコを訂正すればよろしいでしょうか?Vlookupだと参照する数値を入力する必要がある為、IF関数で入力したいと思っております。 検索値(E3) 計算式 これ以下 引数 1000 9700 3000 17500 5000 21000 10000 26900 15000 35300 20000 43600 25000 51300 30000 59400 35000 67300 40000 75300 45000 83500 50000 91400 55000 99500 60000 106600 これは数値がおかしくなって駄目でした。 =IF(E3<1000,IF(E3<3000,IF(E3<5000,IF(E3<10000,IF(E3<15000,9700,17500),21000),26900),35300),IF(E3>20000,IF(E3>25000,IF(E3>30000,IF(E3>35000,IF(E3>40000,43600,51300),59400),67300),75300),IF(E3>45000,IF(E3>50000,IF(E3>55000,IF(E3>60000,83500,91400),99500),106600)))

  • IFとVLOOKUP関数を組み合わせて

    IFとVLOOKUP関数を組み合わせて条件に一致させた数値を出したいのですが引数の記述がわかりません具体的にはセルB5の値が2以上10未満の時は4,100を10以上15未満の時は6,500を15以上25未満の時は11,300を25以上35未満の時は16,100を35以上45未満の時は20,900をセルD5に標示させたい時はどんな記述をすればよろしいでしょうか?IF関数VLOOKUP関数を用いて別のセルにこの参照をさせる表(セルA7に2,B7に4,100 A8に10,B8に6,500 A9に15,B9に11,300…)を作成するすればできると思うのですが…

  • IF関数について

    IF関数を使って、『3歳未満には○を表示』という計算をさせるにはどうしたらよいでしょうか?『=IF(生年月日<3,"○"," ")』と入力したのですがうまくいかなくて…

  • 関数(IF)について

    論理関数IFの使い方で困っています。 株式の収支はエクセルを利用しています。手数料の件で、もし50万未満なら450円、100万未満なら800円の論理式なら「=IF(セル<500000、450、800)」でよろしいですが、引き続き150万未満なら1000円、200万未満なら2000円と表示する論理式はどのようにすればよろしいでしょうか? よろしくご教示願います。

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

    エクセルのIF関数について お世話になっております。 エクセルのIF関数について教えてください。 あるセルの値がエラーなら0、数値が入っているなら、その数値をそのまま表示するという 関数を作りたいのですが、どのようにすればよろしいでしょうか?

  • IF関数について教えて下さい

    入力セルB1には数値0~9と”ヌル”が入ります。 セルB2でA1+B1の計算 B2の計算条件は、B1が””の時””が出力 B1が0(数値のゼロ)の時数値のゼロが出力 B1が1~9の時はA1+B1の演算をさせたいのですが、IF関数でできますか 関数の組み方をお願いします。

  • IF関数について

    IF関数についてお尋ねします。 成績処理で使っているのですが、 たとえば、95点以上ならA 70点以上95点未満なら空欄 そして、70点未満ならC というように表示させるにはどのように入力したらよいですか?

  • ExcelのIF文のバグ?

    現在、関数を利用して処理したいデータベースがあります。 =IF(B21<=数値入力!G14,2,3) このような記述のセルがシート内にあります。 ・B21には数値で6 ・数値入力!G14には数値で10 が入っています。この文をEnterで確定すると、なぜか数字の0が出力されます。 2か3,もしくはErrorが出るならわかりますが、0が出力されている状態はどのような原因が考えられますでしょうか? ちなみに、 =IF(6<=数値入力!G14,2,3) このように入力すると3を出力します。B21が文字例になっているのではないかと何度も疑いましたが、数値でした。

  • IF関数の結果が反映されなくなりました・・

    エクセルの質問です。昨日まで結果が反映されていたのですが、なぜかIF関数式に結果が反映されなくなりました。 G24セルには数値(別シートから参照)が入っていて 別セルにG24の数値を下記のような条件式で判定します。 =IF(AND($G$24>=判定!J6,$G$24<判定!J7),"○","") G24に数値が入ると必ずどれかが○になります。 どの式も○が入らなくなりました。 ちなみに上記の式にG24に参照されている数値を下記のように入力すると○は反映されます。 =IF(AND(0.33>=判定!J6,0.33<判定!J7),"○","") 原因がわからず困っています。 よろしくお願い致します。

  • 以下のIF関数について間違いがあればご指摘ください

    当方、関数式を学び中ですがIF関数を以下の例を使って組み立てましたが違っているかもしれませんのでご指摘ください。 たとえばA3に、A1かA2いずれかのセルから減算した数を示す場合の関数式を求めることが目的です。 A1セルとA2セルの一方は正数、かつ一方は0となる。 (たとえば「A1」に「100」という数値がある場合はA2は必ず「0」が入力される。同様、「A1」が「0」の場合には「A2」は「100」と入力される条件) 式はIF関数式の構成に合わせ、アバウトに作って試してみたところ一応結果は正常にでました。 それがこの式 =IF(A1<>A2,A3-A1,A3-A2) なのですが、疑問があります。 IF関数の条件に対応させた場合の引数1は「判定条件」であり「A1とA2は等しくない」となるそうなので「A1<>A2」としましたが、「A3-A1」は引数2の「判定が真の場合の処理」、「A3-A2」は引数3「判定が偽の場合の処理」となってしまいますがこれでよいのでしょうか?それとも間違った式の偶然の正しい結果だったのでしょうか。 そこで正しい式と構成についての筋道を教えていただきたく思います。 また「" "」という点を入れる場合はどのようなものに対してでしょうか? これについても教えてください。

専門家に質問してみよう