• ベストアンサー

エクセル関数について

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個目以上でエラーになり計算されません。 どなたかお知恵を貸してください。

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

  • ベストアンサー
  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.1

ちょっと長いですが、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) これでいかがでしょうか。

ama5502
質問者

お礼

早速のご回答有難う御座います。 大変参考になり、無事解決する事が出来ました。 ありがとうございました。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

=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

ama5502
質問者

お礼

ご教授有難う御座います。 大変参考になりました。

  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.3

No.1で回答したものです。 =CHOOSE(MATCH(B1,{2,9,16,26,~~ ここ、「B1」ではなく「A1」でした。 訂正します。すみません。

回答No.2

単純に行うなら変則的(?)な方法ですが、適当な場所下記の表を作ります。 ここでは、[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)」とすれば良いです。

ama5502
質問者

お礼

大変詳しく解説していただき有難う御座いました。

関連するQ&A