• ベストアンサー

エクセル関数 特定の範囲の数値が出てきたときに…

こんにちは。質問させていただきます。 エクセル関数初心者なのですが、以下のような式を組みたいです。 A<1000=×4÷100 1001<A<3000=×3÷100 3001<A<5000=×2.5÷100 5001<A<10000=×2÷100 10001<A<30000=×1.5÷100 30001<A=×1.4÷100 つまり、セルAが以上の範囲であれば、セルBに=以降の結果が出てくるような式を作りたいです。 どなたかわかる方がいましたら、ご教授いただけると幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
  • ppyama
  • ベストアンサー率12% (48/399)
回答No.2

A1セルの値を対象にB1に結果をだすと B1に =IF(A1<=1000,A1*4/100,IF(A1<=3000,A1*3/100,IF(A1<=5000,A1*2.5/100,IF(A1<=10000,A1*2/100,IF(A1<=30000,A1*1.5/100,A1*1.4/100))))) 記載条件ですと、1000、1001、3000、3001、5000、5001、10000、10001、30000、30001 が抜けおちします。

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

A<1000=×4÷100 1001<A<3000=×3÷100 3001<A<5000=×2.5÷100 5001<A<10000=×2÷100 10001<A<30000=×1.5÷100 30001<A=×1.4÷100 上記の条件では整数のみのときでも1000、1001、3000、3001、5000、5001、10000、10001、30000、30001が範囲から除外されます。 A<=1000 =A*4/100 1000<A<=3000 =A*3/100 3000<A<=5000 =A*2.5/100 5000<A<=10000 =A*2/100 10000<A<=30000 =A*1.5/100 30000<A =A*1.4/100 として式を組み立てれば良いと思います。 =A1*VLOOKUP(A1,{0,4;1001,3;3001,2.5;5001,2;10001,1.5;30001,1.4},2)/100 VLOOKUP関数の配列は実数を{}で括っても参照できますので、今回は別テーブルを使わずに実数を使いました。

goo41141141
質問者

お礼

ありがとうございます。 除外のご指摘もこちらでは気が付きませんでした。 参考にさせていただきます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 一例です。 ↓の画像のように別Sheet(画像では右側のSheet2)に対応表を作成しておき、 それを利用するのが簡単だと思います。 Sheet1のA列は整数(小数点以下表示はない)という前提で、 2行目 → 0以上~1001未満 4 を返す 3行目 → 1001以上~3001未満 3 を返す 4行目 → 3001以上~5001未満 2.5 を返す という表になります。 画像ではSheet1のB2セルに =IF(A2="","",A2*VLOOKUP(A2,Sheet2!A:B,2,1)+100) という数式を入れオートフィルで下へコピーしています。m(_ _)m

goo41141141
質問者

お礼

ありがとうございます。 別シートを使うやり方もあるんですね。 参考になりました。

関連するQ&A