- ベストアンサー
エクセル関数について
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個目以上でエラーになり計算されません。 どなたかお知恵を貸してください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ちょっと長いですが、CHOOSE関数とMATCH関数を使用します。 =CHOOSE(MATCH(B1,{2,9,16,26,51,91,151,281,501,1201,3201,10001}),2,3,5,8,13,20,32,50,80,125,200) これでいかがでしょうか。
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
=IF(OR(A1<2,A1>10000),"",LOOKUP(A1,{2,2;9,3;16,5;26,8;51,13;91,20;151,32;281,50;501,80;1201,125;3201,200})) とするか、 このような表を、 IF(OR(A1<2,A1>10000),"",LOOKUP(A1,[範囲])) とすればよいでしょうね。 2 2 9 3 16 5 26 8 51 13 91 20 151 32 281 50 501 80 1201 125 3201 200
お礼
ご教授有難う御座います。 大変参考になりました。
- hirumin
- ベストアンサー率29% (705/2376)
No.1で回答したものです。 =CHOOSE(MATCH(B1,{2,9,16,26,~~ ここ、「B1」ではなく「A1」でした。 訂正します。すみません。
- Aquarius172
- ベストアンサー率36% (111/308)
単純に行うなら変則的(?)な方法ですが、適当な場所下記の表を作ります。 ここでは、[A3]から表を作ったとします。 0 0 2 2 9 3 16 5 26 8 51 13 91 20 151 32 281 50 501 80 1201 125 3201 200 10001 0 0と10001が入っているのはエラーを防ぐ為です。 そして、[B1]に「VLOOKUP(A1,A3:B15,2,TRUE)」と入力します。 「VLOOKUP」関数の詳細はヘルプを参照してください。 上記の表を見せたくない場合は、別のシートに表を入力し、[A3:B15]の部分を変更します。 たとえば、関数を「Sheet1」に、表を「Sheet2」の[A1]から入力した場合、 「VLOOKUP(A1,Sheet2!A1:B13,2,TRUE)」とすれば良いです。
お礼
大変詳しく解説していただき有難う御座いました。
お礼
早速のご回答有難う御座います。 大変参考になり、無事解決する事が出来ました。 ありがとうございました。