dポイントプレゼントキャンペーン実施中!

ExcelのVlookupの質問です。
表のA列が、上から50, 100, 150, 200, 300 (等倍ではない) などとなっており、50は、50以下(50まで)ならその右列の値という意味です。Vlookupだと、「50以上ならその右列の値」を意味すると思います。一時的な解決策として、100(以下)の代わりに50.001(以上)、150の代わりに100.001(以上)を入れていますが、50.0009の場合など、正確とは言えません。解決策はありますか?

A 回答 (4件)

◆VLOOKUP関数は検索値を昇順にする必要があります


★よって、以上検索になります

◆INDEX、MATCH関数でいかがでしょうか?
    A    B    C
1   300   E    50.01
2   200   D
3   150   C
4   100   B
5    50   A

=INDEX(B1:B5,MATCH(C1,A1:A5,-1))

★C1=49.99 では、「A」
★C1=50   では、「A」
★C1=50.01 では、「B」  になります
    • good
    • 1
この回答へのお礼

INDEX+MATCHは知っていましたが、そこに「以下」の概念があるとは知りませんでした。見事に解決しました。
ありがとうございました。

お礼日時:2007/09/17 18:26

     A     B   C   D    E


1  -10000000000 300超    300.0001 300超
2      -300 300以下     300 300以下
3      -200 200以下   299.9999 300以下
4      -150 150以下   200.0001 300以下
5      -100 100以下     200 200以下
6      -50 50以下   199.9999 200以下
7               100.0001 150以下
8                 100 100以下
9               99.9999 100以下
10               50.0001 100以下
11                 50 50以下
12               49.9999 50以下
13                 49 50以下
14                  0 50以下

E1: =VLOOKUP(-D1,A$1:B$6,2)
    • good
    • 0
この回答へのお礼

これで、実用的には問題ありませんね。
ありがとうございました。

お礼日時:2007/09/17 18:27

#2です、補足です


★MATCH関数では、
1)昇順にして、MATCH(C1,A1:A5,1)):1または省略で以上
2)順不同で、MATCH(C1,A1:A5,0)):0で検査値と一致のみ検索
3)降順にして、MATCH(C1,A1:A5,-1)):-1で以下 、になります
    • good
    • 1

>一時的な解決策として、100(以下)の代わりに50.001(以上)、150の代わりに100.001(以上)を入れていますが、



良くない設定方法ですね。
「未満」という風に設定する方が良いのでは?
0,51,101,151,201・・・

http://www.rericca.com/qa/ex6.htm
    • good
    • 0
この回答へのお礼

ありがとうございます。
これは、点数ではなく、重さです。
51未満にすると、50.5の時に検索結果が間違いとなります。
タイトルにあるように、50「以下」にしたいのです。

お礼日時:2007/09/17 17:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!