こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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文でデータの移動以外の
何か良い移動の関数がありますか?

投稿日時 - 2007-03-09 10:10:31

QNo.2816408

すぐに回答ほしいです

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

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と同じ額が表示されてしまいます。それらの値の場合はどのように表示させるかが明記されてませんが、そのような場合はあり得ないのでしょうか。あり得る場合、どのような値に変換すればいいのか、その点を補足していただくと、それに対応して式を修正いたします。

投稿日時 - 2007-03-09 13:53:35

お礼

ありがとうございました。

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ですが、他に方法などありますか?
宜しくお願い遺体ます。

投稿日時 - 2007-03-09 16:18:00

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

No.2です。

お書きになった表と式でOKだと思います。ただ、先の回答にも書きましたが、元の金額が10,000を超えても、9,001~10,000の範囲に該当する税金額が取得されてしまいますが、基本的にそのようなデータが入ってこないのであれば、特に問題ないと思います。

VLOOKUPの一番基本的な使い方なので、他に方法となると、わざわざ式をややこしくしたり意味もなくマクロを使うなど、あまり意味のない方法になってしまいます。これでよろしいかと思います。

投稿日時 - 2007-03-09 21:27:57

お礼

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

投稿日時 - 2007-03-12 10:19:25

ANo.2

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

投稿日時 - 2007-03-09 10:53:23

お礼

ありがとうございます。

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の場合
宜しくお願い致します。

投稿日時 - 2007-03-09 13:05:02

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

投稿日時 - 2007-03-09 10:12:28

お礼

ありがとうございます。

説明不足ですみません。
データの移動
Excel Adata -> Excel Bdata
数値と固定文などをIF文で移動します。

まだ、説明不足ですか?

投稿日時 - 2007-03-09 10:34:03

あなたにオススメの質問