• ベストアンサー

Excelの関数について

Microsoft Office Excel 2003 SP2 データ No 数値     dataA dataB 01 00001~01000 A B 01 01001~02000 C D 01 02001~03000 E F 01 03001~04000 G H 01 04001~05000 I J 以下省略 機械が約20台 =IF(data!D20<A2,data!E21,IF(data!D19<A2,data!E20,IF(data!D18<A2,data!E19,IF(data!D17<A2,data!E18,IF(data!D17<A2,data!E18,IF(data!D16<A2,data!E17,IF(data!D15<A2,data!E16,・・・))))))) 省略 IF文でデータの移動以外の 何か良い移動の関数がありますか?

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.2です。 data2の表の形式そのままでは、VLOOKUP()で利用できないので、金額と税金1の間に1列挿入します。 そして、新しい行には以下のように記述してください。 data2    A       B      C     D 1  金額(円)  金額2  税金1  税金2 2   1~1,000      1    200   400 3 1,001~2,000   1001    400   800 4 2,001~3,000   2001    600  1,200 5 3,001~4,000   3001    800  1,600 6 4,001~5,000   4001   1,000  2,000 7 5,001~6,000   5001   1,200  2,400 8 6,001~7,000   6001   1,400  2,800 9 7,001~8,000   7001   1,600  3,200 10 8,001~9,000   8001   1,800  3,600 11 9,001~10,000   9001   2,000  4,000 上記のように、表の1行目がタイトル行、A列からD列、2行目から11行目までデータが入っているとすると、元となる金額がdata1のA2に入っているとして、 税金1 =VLOOKUP(A2,data2!$B$2:$D11,2) 税金2 =VLOOKUP(A2,data2!$B$2:$D11,3) とすると、金額に対応した税金の金額を取得できます。 表の列名や行番号がこの例と異なるときは、上記を参考にして式の中の$B$2:$D11の範囲を修正してください。 なお、このVLOOKUP()式では、元の値が0以下の場合は#N/Aというエラーになり、10,000を超える値の場合は9,001~10,000と同じ額が表示されてしまいます。それらの値の場合はどのように表示させるかが明記されてませんが、そのような場合はあり得ないのでしょうか。あり得る場合、どのような値に変換すればいいのか、その点を補足していただくと、それに対応して式を修正いたします。

ititarou_j
質問者

お礼

ありがとうございました。 data2(例)    A       B    C    D E F 1  金額(円)  金額2   税金1  税金2  税金3 税金4 2   1~1,000     1    200   400 600 800 3 1,001~2,000   1001    400   800 800 1,000 4 2,001~3,000   2001    600  1,200 1,000 1,200 5 3,001~4,000   3001    800  1,600 1,200 1,400 6 4,001~5,000   4001   1,000  2,000 1,400 1,600 7 5,001~6,000   5001   1,200  2,400 1,600 1,800 8 6,001~7,000   6001   1,400  2,800 1,800 2,000 9 7,001~8,000   7001   1,600  3,200 2,000 2,200 10 8,001~9,000    8001   1,800  3,600 2,200 2,400 11 9,001~10,000  9001   2,000  4,000 2,400 2,600 税金1 + 税金4 の場合は別々にdataをとり、 VLOOKUP()式 で data3(例1)    A       B    C    1  金額(円)  金額2   税金1 2   1~1,000     1    200  3 1,001~2,000   1001    400  data4(例2)    A       B    F 1  金額(円)  金額2   税金4 2   1~1,000     1    800 3 1,001~2,000   1001   1,000 =VLOOKUP(A2,data3!$B$2:$C11,2)+VLOOKUP(A2,data4!$B$2:$C11,2) テストでOKですが、他に方法などありますか? 宜しくお願い遺体ます。

その他の回答 (3)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.4

No.2です。 お書きになった表と式でOKだと思います。ただ、先の回答にも書きましたが、元の金額が10,000を超えても、9,001~10,000の範囲に該当する税金額が取得されてしまいますが、基本的にそのようなデータが入ってこないのであれば、特に問題ないと思います。 VLOOKUPの一番基本的な使い方なので、他に方法となると、わざわざ式をややこしくしたり意味もなくマクロを使うなど、あまり意味のない方法になってしまいます。これでよろしいかと思います。

ititarou_j
質問者

お礼

ありがとうございます。 VLOOKUPを使う方法でやります。

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

こういうことですか? =VLOOKUP(A2,data!D1:E20,2)

ititarou_j
質問者

お礼

ありがとうございます。 data1 A氏 金額 3,500円 B氏 金額 5,800円 data2 金額(円) 税金1 税金2 1   1~1,000 200 400 2 1,001~2,000   400 800 3 2,001~3,000   600 1,200 4 3,001~4,000   800 1,600 5 4,001~5,000  1,000 2,000 6 5,001~6,000  1,200 2,400 7 6,001~7,000  1,400 2,800 8 7,001~8,000  1,600 3,200 9 8,001~9,000  1,800 3,600 10 9,001~10,000  2,000 4,000 すみませんが、 この場合 VLOOKUPは如何すれば宜しいのでか? 税金1の場合と税金1,2の場合 宜しくお願い致します。

回答No.1

何がしたいんだかよくわからないが、vlookup使えばいいんじゃないの?

ititarou_j
質問者

お礼

ありがとうございます。 説明不足ですみません。 データの移動 Excel Adata -> Excel Bdata 数値と固定文などをIF文で移動します。 まだ、説明不足ですか?

関連するQ&A