ここから本文です

エクセルのVLOOKUP関数についてです。

yum********さん

2014/9/1013:49:24

エクセルのVLOOKUP関数についてです。

VLOOKUP関数で検索値を二つ含める方法として、「&」でつなぐ方法をとっているのですが、このとき前半を文字列、後半を数字にした場合に、数字で「検索値以上の近似値」を設定できるようにしたいです。

例)
検索値:A1&B1ならば、A1と同じ文字列の中で、B1の数字と同値もしくはB1の数字以上で最も近い数字を持つ行を検索。

因みに検索する列の左端に、検索するものを「&」でつないだものを作成しておくことはしています。

なにか方法はありますか?
「&」をつける以外の方法などがありましたら、それでもかまいません。

閲覧数:
370
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

set********さん

2014/9/1015:38:11

「&」をつける以外の方法で回答します。

下の図を見て下さい。
・A列に文字列が入っています。
・B列に数値が入っています。
・D1セルに検索文字列を入力します。
・E1セルに検索数値を入力します。
・F1セルに検索結果の行が表示されます。なお、該当がないときは「0」が返ります。

F1セルに=IF(SUMPRODUCT((A1:A10=D1)*(B1:B10>=E1))=0,0,MIN(INDEX(((A1:A10<>D1)+(B1:B10<E1))*10^5+ROW(1:10),)))の式を入力するか、このままコピーして(貼り付け先の書式に合わせるで)貼り付けて下さい。

以上で、それぞれのセルにいろいろとデータを入れてみて下さい。

なお、A,B列のデータが100行目まであるときは、式の中の「10」を全て「100」に変更して下さい。

それと、上記の数式では、基本的にB列のデータが昇順で並んでいないと、正しい結果が返ってきません。
例えば、図のA1セルは「AA」ですが、B1セルに「21」などと入っていると、「19」の入っている「7」行目が返らずに「1」行目が返ってしまいますので・・

「&」をつける以外の方法で回答します。

下の図を見て下さい。
・A列に文字列が入っています。...

  • set********さん

    2014/9/1110:59:41

    追加
    最初の回答で、B列のデータが昇順で並んでいないと正しい結果が返ってきません、と但し書きをしましたが、B列が昇順に並んでいなくても正しく行を返す式を考えましたので追加で回答します。

    F1セルに=MATCH(1,INDEX((A1:A10=D1)*(B1:B10=MIN(INDEX((((COUNTIF(A1:A10,A1:A10)<>COUNTIF(A1:A10,D1))*10^5+(B1:B10))<E1)*10^5+((COUNTIF(A1:A10,A1:A10)<>COUNTIF(A1:A10,D1))*10^5+(B1:B10)),))),),0)の式を入力して下さい。

    但し、上記の式も該当データがない場合はエラーが返りますが、貴殿のエクセルのバージョンが2007以降であれば、
    F1セルに=IFERROR(MATCH(1,INDEX((A1:A10=D1)*(B1:B10=MIN(INDEX((((COUNTIF(A1:A10,A1:A10)<>COUNTIF(A1:A10,D1))*10^5+(B1:B10))<E1)*10^5+((COUNTIF(A1:A10,A1:A10)<>COUNTIF(A1:A10,D1))*10^5+(B1:B10)),))),),0),0)の式を入力すれば、該当がないときは「0」が返ります。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる