エクセルで範囲内の条件を満たす数値を返す関数とは?

このQ&Aのポイント
  • エクセルで範囲内の条件を満たす数値を返す関数について教えてください。
  • 条件に応じて数値を抽出する関数を紹介してください。
  • ネストせずに条件に応じた数値を抽出する方法を教えてください。
回答を見る
  • ベストアンサー

エクセルで範囲内の条件を満たす数値を返す関数を教えてください。

エクセルで範囲内の条件を満たす数値を返す関数を教えてください。 100以下なら1111 100超~200以下なら2222 200超~300以下なら3333 300超~400以下なら4444 400超~500以下なら5555 500超~600以下なら6666 600超~700以下なら7777 700超~800以下なら8888 800超~900以下なら9999 900超なら10000 上記のような条件があり、入力した数字が該当する条件の範囲内に該当している数字を抽出したいのですが、それができる関数を教えてください。 例えばA1セルに650と入力するとB1セルに上記の条件で該当する7777を表示する、 A1セルに100と入力するとB1セルに1111、 901とA1に入力するとB1に10000と表示されるなどのようにしたいのです。 IFを使った関数では7つまでしかネストできないので、上記の場合10ネストしなければならないのでIF関数が使えません(使える方法があるかもしれませんが私は知りません)。 ネストせずに「&」を使う方法も考えたのですが、それだと数値として扱われず文字として扱われてしまい表示形式を自在に編集することができなくなってしまいます。 良い解決方法を教えてください。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

お示しの条件を示す表が例えばD列からF列を使って入力されているとします。D1セルには超、E1セルには以下のように入力します。D2セルには0、E2セルには100、F2セルには1111と入力し、D3セルには100、E3セルには200、F3セルには2222のように入力します。以下同様にします。 そこでA1セルに数値を650のように入力したときに該当のデータをB1セルに表示させるためにはB1セルに次の式を入力します。 =IF(A1="","",VLOOKUP(A1-1,D:F,3,TRUE)) A列のデータに対応させるためにはこの式を下方にオートフィルドラッグすればよいでしょう。

katsunof
質問者

お礼

早速の返信ありがとうございます! 問題は解決しました!

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

もしも、お示しのような数値を返すのでしたらDからF列のような表は必要ではなく、B1セルに次の式を入力して下方にオートフィルドラッグすればよいでしょう。 =IF(A1="","",IF(A1>900,10000,REPT(ROUNDUP(A1/100,0),4)))

  • ziziwa1130
  • ベストアンサー率21% (329/1547)
回答No.2

No.1です。 別の方法として添付画像のように表を作成してVLOOKUP関数でもできます。 画像が見にくいから、関数だけ記載します。 =VLOOKUP(ROUNDUP(A1,0),$C$1:$D$10,2,TRUE) A1が整数限定なら =VLOOKUP(A1,$C$1:$D$10,2,TRUE)

katsunof
質問者

お礼

早速の返信ありがとうございました! 参考にさせていただきます!

  • ziziwa1130
  • ベストアンサー率21% (329/1547)
回答No.1

B1に"=IF(A1>900,10000,ROUNDUP(A1/100,0)*1111)"と入力すれば良いですよ。

関連するQ&A

  • セル範囲内いずれかの数値が他のセル範囲に含まれるかを調べたい

    EXCEL2003です。 A1~H1にそれぞれ3桁の数値が入っています。(空欄もあります。) これら範囲内の数値のいずれか一つでも他のセル範囲(次のシートのA1~A50まで)に 含まれていれば結果をJ1に表示したいのですが、可能でしょうか。 当初はJ1に、if(A1が含まれるか,"あった",if(B1が含まれるか,"あった",if(~と、 やってましたが、関数のネストレベルに引っかかってできませんでした。 MATCH関数だと一つの数値が含まれるかどうかは調べられるようですが、 検索したい数値が複数ある場合はやはりセルを分けて別々に評価するしかないのでしょうか?

  • エクセルで関数を用いて数値入力

    エクセルでA列に0とそれ以外の数字が入力されています。(下記の画像のように、0以外の数字は飛び飛びに入力されており、それらの数字の間を0が埋めているというイメージです) B列に以下の条件で数字を入力したいのです。 1、A列に0以外の数字が入力されているときは、B列には0を入力する。 2、A列に0が入力されているときには、その行より上で最も近い0以外の数字を入力する。 上記の条件で、B列に関数で数値入力をすることはできますか。

  • Excel 長すぎるif関数

    こんにちは。Excelを使って、条件によって表す表示を変える場合、 例えばa1のセルには0~100までの任意の数字を入れるとして、b1のセルにa1の数字に応じていろいろな表示をしたい場合(具体的には100ならAを表示、90~99ならB、70~89ならC、55~69ならD・・・といったように)、if関数を使うと思いますが、 =if(a1=100,"A"1,if(a1>=90,"B",if(a1>=70,"C",if・・・・)))というように長々と続きますね。条件が少ないうちはいいのですが、条件が多くなると、大変複雑な式になり、入力もしづらいし、頭も使うし、閉じる括弧の数もわからなくなるし、作成に時間もかかりますよね。2つ以上の条件が重なる(例えばA1が90~99の範囲でかつa2がAならb1にB1と表示するなど)など複雑になってくるともうお手上げです。 これらを短時間で要領よく作成する方法はないでしょうか?次の観点で教えてください。 1 if以外の良い関数はあるか?または良い機能はあるか?それとも複雑であってもif関数が妥当なのか? 2 (if関数が妥当であるとして)複雑なif文の作成を簡単にできる方法があるか?あるいはそんなソフトがあるか? 3 やっぱりそういうのはVBAとかで作った方がいいのか?(できれば使いたくないのですが。)

  • IF関数で出した数値をSUM関数で使う

    2010エクセルでの関数について質問があります。 文章での説明でどこまで詳しくご説明できるか不安ですが お付き合い願います。 IF関数で =IF(A13>=25,"10","")と計算し、 セル内に、「10」と表示しています。 さらに、 上記、関数から表示した「10」を SUM関数を使い、 =SUM(A13,B13)と計算しました。 しかし、 IF関数で出した「10」が認識されず足し算されません。 「真の場合」や「偽の場合」で出された数値は 数値として認識されていないのでしょうか? 例えば・・・ B13のセルの数値が「200」であれば、SUM関数を入力しても 「10」が足されることなく、「200」のままで表示されるということです。 どのような方法ならば、足し算されるのでしょうか。 または、関数の使い方が間違っているのでしょうか。 説明が分かりにくく申し訳ありませんが、 宜しくお願い致します。

  • エクセル 指定の数値範囲を条件に抽出する関数マクロ

    表1があり、A列に氏名、B~E列に2桁の数値データが入っています。この中で検索値XXの{-3~+3}の範囲内に該当する数値を抽出したいです(検索値が33なら、30~36内の数字)。該当する数値をフォントやセルに色をつけて分かるようにできれば一番いいですが、できない場合は、該当するデータを含む人の氏名を表2に表示するとか、該当する人のF列に○印をつけるとかでもよいです。実際にはたくさんの違う検索値を使って抽出操作が必要になるので、フィルタオプションとかでやるのは面倒です。関数でもマクロでも良いので簡単な方法を教えてください。

  • エクセルにおける複数条件の関数について

    下記の内容を別シートに集計したいのですが、 関数が間違えているのかうまく数値が表示されません。 Aシートに以下の情報が入っています。 Cの列、C5からC54までの範囲に1から100の間で数字が入っています。 Dの列、D5からD54までの範囲に2013/6/1から2013/7/15までの日付が入っています。 例:C5に2と入っていて、D5に2016/6/3と入力されていれば該当し、 C5の2という値を別シートにその他のC列とあわせて合計を表示されるようにしたいです。 表示をさせたいBシートには、 D列のD5からD54範囲内の6月分(2014/6/1から2014/6/30まで)で、 C列に入力されている数値の合計を1つのセルに表示させたいです。 この場合の関数をお伺いしたい内容になります。 今、うまくいかない関数は、以下のような内容です。 =SUMPRODUCT(('201406'!$C$5:$C$54="○")*('201406'!$BW$5:$BW$54>="2014/6/1"*1)*('201406'!$BW$5:$BW$54<"2014/7/1"*1)) これだと、C列に○が入っていれば、その合計を表示できると思いますが、 1や5などの数字の合計を表示させるには・・で、困っています。 アドバイスいただけたらと思います。 ※関数をそのまま入力いたいと思っていますので、 返信は、関数でアドバイスいただけたら幸いです。 宜しくお願い致します。

  • エクセルで範囲のある数値に該当するデータを抽出

    エクセルにて  0以上 5未満 A  5以上10未満 B 10以上22未満 C・・・ というように、条件となる数値に範囲があるデータを抽出したいです。 IF関数の場合ネスト制限があるため全てのデータ抽出が行えません。 VLOOKUP関数で条件となる数値に範囲がある場合でもデータ抽出可能なんでしょうか? 適切な言葉が分からないので、上手く説明出来ているか分かりませんが、どなたかいい方法ありましたら、教えてください。

  • Excel関数の使い方、条件と選択

    エクセルを用いて以下のようなことをしたいです。 まず条件として1は1000、2は2000、3は3000、4は4000。 つぎにAさん、Bさん、Cさんなどに条件、1、3、4などを割り振りその結果、1000、3000、4000などの数値を出したいです。 A列 B列 1 1000 2 2000 3 3000 4 4000      ↓この1000、3000、4000などを数式で表したい。 Aさん 1 1000 Bさん 3 3000 Cさん 4 4000 Aさん・・・・や1,3・・・などは自分で手入力します。その右セルの1000・・・などを数式で表して結果を表示させたいです。 Choose、Indrect、If、など調べてみたのですがどの関数を使ったらよいかわかりません。 もっと具体的に言うと、Aさん、Bさんなどそれぞれに数字の条件を割り振り、その時のお金の金額を計算したいです。 以上、よろしくお願いいたします。

  • エクセル関数について

    A1入力した2~100000の間の数字について以下の範囲に該当する数字をB1に抽出する関数を作りたいのですが・・・ 2~8の場合2を返す 9~15の場合3を返す 16~25の場合5を返す 26~50   8 51~90   13 91~150   20 151~280   32 281~500   50 501~1200   80 1201~3200   125 3201~10000   200 自分なりに =IF(L23<=8,"2",IF(L23<=15,"3",・・・・以下略 のようなものを作ったのですがif9個目以上でエラーになり計算されません。 どなたかお知恵を貸してください。

  • エクセル 複数条件のIF関数 

    0から360の数字がランダムに入力されているA列があります。この数字を以下の条件でB列に入力したいのです。 (1)288以上なら280を引く (2)144以上なら144を引く (3)72以上なら72を引く (4)72未満ならその数字のまま入力 結果として、72未満の数字がB列に入力されることになります、 IF関数を使えばできるのかなと思いますが、違う方法でもよいです。 4万セルくらいを処理するので一番簡単な方法を教えてください。 よろしくお願いいたします。

専門家に質問してみよう