- ベストアンサー
Vlookupで「以下」
ExcelのVlookupの質問です。 表のA列が、上から50, 100, 150, 200, 300 (等倍ではない) などとなっており、50は、50以下(50まで)ならその右列の値という意味です。Vlookupだと、「50以上ならその右列の値」を意味すると思います。一時的な解決策として、100(以下)の代わりに50.001(以上)、150の代わりに100.001(以上)を入れていますが、50.0009の場合など、正確とは言えません。解決策はありますか?
- みんなの回答 (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」 になります
その他の回答 (3)
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)
お礼
これで、実用的には問題ありませんね。 ありがとうございました。
- maron--5
- ベストアンサー率36% (321/877)
#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)
>一時的な解決策として、100(以下)の代わりに50.001(以上)、150の代わりに100.001(以上)を入れていますが、 良くない設定方法ですね。 「未満」という風に設定する方が良いのでは? 0,51,101,151,201・・・ http://www.rericca.com/qa/ex6.htm
お礼
ありがとうございます。 これは、点数ではなく、重さです。 51未満にすると、50.5の時に検索結果が間違いとなります。 タイトルにあるように、50「以下」にしたいのです。
お礼
INDEX+MATCHは知っていましたが、そこに「以下」の概念があるとは知りませんでした。見事に解決しました。 ありがとうございました。