- ベストアンサー
Excel関数:vlookup関数の注意点
- vlookup関数の検索の型を省略すると近似値が引っ張られるが、正しい値が引っ張られない場合がある。
- 例えば、2010/9以降の値を引っ張る場合、2010/12に対応する値が引っ張られてしまう。
- この問題の原因について説明してもらいたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>四番目の引数[検索の型]を省略した場合、対象となる検索値が見つからない時に、近似値を引っ張ってくるということなのですが 省略した場合,探しに行く先の左端列(今回はB列)を昇順に並べ替えておかないと,正しい結果を得られません。近似値ではなくジャスト値を見つける事も出来なくなります。 で。今回のでは特に, こう思っていた?: <<< 2010/9 < 2010/10 < 2010/11 小さい← →大きい でもエクセル的には: 2010/1 < 2010/10 < 2010/11 <<<< 2010/9 の順序が正しい昇順なので,計算を間違えました。 [どうすれば良かったのか] 方法1 B列に 2010/1/1 2010/2/1 : 2010/10/1 2010/11/1 2010/12/1 とデータを入れてセルの書式によって「yyyy/m」を表示させ, 関数も =VLOOKUP(年月日,B:C,2) とすれば正解でした。 方法2: B列を 2010/01 2010/02 : 2010/09 2010/10 2010/11 2010/12 としておき,関数は例えば =VLOOKUP(TEXT(年月日,"yyyy/mm"),B:C,2) としておいても出来ました。
その他の回答 (2)
- Nouble
- ベストアンサー率18% (330/1783)
元の日付データがA1に入っているとして =vlookup(TEXT(A1,"y/m"),B:C,2) と、しても駄目ですか? あと検索対象としているB列はちゃんとソートしていますか? 加えて言えばデータを呼び出す方法としては 私は個人的にこのVLOOKUPは色々な意味で嫌いです 検索キーがソートされていないと駄目とか 検索キーが左にないと駄目とか 他ブックへの参照機能を秘めているため鈍重だとか etc 他にも様々なデータを呼び出す方法がありますが それらを試されては如何ですか 動作速度の向上とワークセルの削減が望めると思いますよ
- KURUMITO
- ベストアンサー率42% (1835/4283)
検索の型をFALSEかTRUEにすることが必要です。FALSEの場合には例えばB列では昇順で並んでいる必要はありませんが、TRUEの場合には昇順で並んでいることが絶対に必要です。その場合には検索値に一致する値が無いときは、検索値よりも小さい値の最大値が検索されることになっています。 ところで検索の型を省略した場合にはTRUEの場合と同じ結果になります。 昇順でデータが並んでいる場合で、しかも各月が1行ずつのデータでしたら対応する値を引っ張ってきますが同じ月が並んだりしている場合にはもはや正常な値を引き出すことは難しくなりますね。ましてや昇順でデータが並んでいない場合には結果はでたらめになってきます。8月まで正常であったのはそれまでは各月のデータが1行であったからでしょう。