- ベストアンサー
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文でデータの移動以外の 何か良い移動の関数がありますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
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と同じ額が表示されてしまいます。それらの値の場合はどのように表示させるかが明記されてませんが、そのような場合はあり得ないのでしょうか。あり得る場合、どのような値に変換すればいいのか、その点を補足していただくと、それに対応して式を修正いたします。
その他の回答 (3)
- ham_kamo
- ベストアンサー率55% (659/1197)
No.2です。 お書きになった表と式でOKだと思います。ただ、先の回答にも書きましたが、元の金額が10,000を超えても、9,001~10,000の範囲に該当する税金額が取得されてしまいますが、基本的にそのようなデータが入ってこないのであれば、特に問題ないと思います。 VLOOKUPの一番基本的な使い方なので、他に方法となると、わざわざ式をややこしくしたり意味もなくマクロを使うなど、あまり意味のない方法になってしまいます。これでよろしいかと思います。
お礼
ありがとうございます。 VLOOKUPを使う方法でやります。
- ham_kamo
- ベストアンサー率55% (659/1197)
こういうことですか? =VLOOKUP(A2,data!D1:E20,2)
お礼
ありがとうございます。 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の場合 宜しくお願い致します。
- finneganswake
- ベストアンサー率23% (194/809)
何がしたいんだかよくわからないが、vlookup使えばいいんじゃないの?
お礼
ありがとうございます。 説明不足ですみません。 データの移動 Excel Adata -> Excel Bdata 数値と固定文などをIF文で移動します。 まだ、説明不足ですか?
お礼
ありがとうございました。 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ですが、他に方法などありますか? 宜しくお願い遺体ます。