• ベストアンサー

Vlookupで「以下」

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

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆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」  になります

buzhidao
質問者

お礼

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

その他の回答 (3)

noname#204879
noname#204879
回答No.4

     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)

buzhidao
質問者

お礼

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

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

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

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>一時的な解決策として、100(以下)の代わりに50.001(以上)、150の代わりに100.001(以上)を入れていますが、 良くない設定方法ですね。 「未満」という風に設定する方が良いのでは? 0,51,101,151,201・・・ http://www.rericca.com/qa/ex6.htm

buzhidao
質問者

お礼

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

関連するQ&A