- ベストアンサー
エクセル lookup関数 等について
lookup関数 等は、検査値を特定の範囲から探す際、 その特定の範囲内でデータを昇順に並べておく必要が ありますが、昇順に並べなくても良い方法はありますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>昇順に並べなくても良い方法はありますか? ⇒これを決めるのはご質問者です。 検索は完全一致型検索、近似値型検索があり、LOOKUP関数は近似値型になるので 検索値の最大値以下を抽出する為、昇順に並べないと機能しません。 完全一致型ならば、VLOOKUP第4引数のFALSE指定、MATCH第3引数の0になり、一般 的には文字列の検索に使用され、並びに左右されません。 ご質問の「データを昇順に並べておく必要」とあるが全くの誤認識で、データの仕様が 重要である事をご理解下さい。
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
LOOKUP関数は昇順に並べ替えておかないと使えません。 VLOOKUP(検索値,範囲,列,FALSE) HLOOKUP(検索値,範囲,行,FALSE) は並べ替えておかなくても使えます。ただしデータが大量にあると急激に遅く重くなります。 VLOOKUP(検索値,範囲,列) VLOOKUP(検索値,範囲,列,TRUE) は並べ替えておかないと使えません。 INDEX(範囲,MATCH(検索値,検索列,0)) は並べ替えておかなくても使えます。ただしデータが大量にあると急激に重くなります。 INDEX(範囲,MATCH(検索値,検索列,1)) は昇順に並べ替えておく必要があります。 INDEX(範囲,MATCH(検索値,検索列,-1)) は降順に並べ替えておく必要があります。
お礼
ご回答ありがとうございました。 参考になりました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >昇順に並べなくても良い方法はありますか? とありますが、他の方法としては降順に並べておく場合があります。 ※ 当然のことながらバラバラでの配置はエラー原因となります。 VLOOKUP関数の「検索の型」が「TRUE」型を使用する場合のコトですよね? その場合は必ず昇順にしておく必要があります。 降順で同様の検索方法を使いたい場合は INDEX関数とMatch関数の塀用で可能ですが、 ↓の画像のように境界部分に微妙な違いがありますので、気を付けなければなりません。 画像でB2セルには =VLOOKUP(A2,$E$2:$G$5,3,1) または =INDEX($G$2:$G$5,MATCH(A2,$E$2:$E$5,1)) という数式でも同じ結果が得られます。 表が降順表示の場合はC2セルに表示していますが =INDEX($K$2:$K$5,MATCH(A2,$J$2:$J$5,-1)) という数式を入れています。 この程度ですが、参考になりますかね?m(_ _)m
お礼
ご回答ありがとうございます。 INDEXとMATCHの組み合わせは初めて知りました。
- imogasi
- ベストアンサー率27% (4737/17070)
この質問には2つの問題がある。よく勉強して。 (1)VLOOKUP関数といてtも、第4引数でTRUE型とFALSE型があり、両者は役割が違う。 どちらとも質問に書いてないのは不完全。 (2)どちらかというとここのこーなーでに質問には、>探す、といっている語感から、FALSE型が多く、その場合は昇(降順に並べておく必要は無い。TRUE型はその役割からして、整理しておかないといけない。
お礼
ご回答ありがとうございます。 VLOOKUPについて勉強になりました。
お礼
ご回答ありがとうございました。 VLOOKUPについてよくわかりました。