【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

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

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関数が使えません(使える方法があるかもしれませんが私は知りません)。
ネストせずに「&」を使う方法も考えたのですが、それだと数値として扱われず文字として扱われてしまい表示形式を自在に編集することができなくなってしまいます。

良い解決方法を教えてください。

A 回答 (4件)

お示しの条件を示す表が例えば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列のデータに対応させるためにはこの式を下方にオートフィルドラッグすればよいでしょう。
    • good
    • 8
この回答へのお礼

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

お礼日時:2010/07/13 10:00

もしも、お示しのような数値を返すのでしたらDからF列のような表は必要ではなく、B1セルに次の式を入力して下方にオートフィルドラッグすればよいでしょう。



=IF(A1="","",IF(A1>900,10000,REPT(ROUNDUP(A1/100,0),4)))
    • good
    • 1

No.1です。


別の方法として添付画像のように表を作成してVLOOKUP関数でもできます。
画像が見にくいから、関数だけ記載します。
=VLOOKUP(ROUNDUP(A1,0),$C$1:$D$10,2,TRUE)
A1が整数限定なら
=VLOOKUP(A1,$C$1:$D$10,2,TRUE)
「エクセルで範囲内の条件を満たす数値を返す」の回答画像2
    • good
    • 3
この回答へのお礼

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

お礼日時:2010/07/13 10:01

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

    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報