• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL の VLOOKUP で 結果は正しいのですが・・・・)

VLOOKUPで結果が正しく表示されない問題について

このQ&Aのポイント
  • Windows XPのOffice 2003環境で、ExcelのVLOOKUP関数を使用しています。
  • VLOOKUP関数の検索結果が正しい値を返しているが、表示される行が正しくない問題が発生しています。
  • 検索範囲や検索キーなどの設定に問題はないか確認しましたが、原因がわかりません。

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

  • ベストアンサー
  • mako_sea
  • ベストアンサー率47% (62/130)
回答No.4

>3、台帳SheetのG列にある値(検索値)がSheet2枚目の早得(の範囲)に完全Matchがあれば、 > 早得のSheet(2枚目)のその検索値に印(数字が一番ですが、色でも、記号でも何でもOKです) > を付けたいのです。   台帳にある値が基準で、結果を台帳とは違う2枚目のSheetに出そうとしています。 もう一度認識合わせをしたいのですが、 "早得"の範囲が仮にsheet2のA1:C10だったとして、 完全マッチするかをチェックするのは 台帳シートのG列とsheet2のA列でよろしいですか? YESの場合 台帳のデータが200行と仮定して、sheet2!のY6セルに入れる式は =IF(ISNA(MATCH(sheet2!A6,台帳!G1:G200,0)),"","あり") とすれば大丈夫だと思います。 NOの場合 多分"早得"範囲の複数列すべてを検査するということですよね。 そうなるとVLOOKUPやMATCH関数では検査できません。 参考URLにあるような、SUMPRODUCT関数を 工夫して利用することになりそうです。

参考URL:
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1116982146
helpcall
質問者

お礼

色々勉強になりました。  MATCH は一度も使った事が無かったのですが、 今回の ように、」2択の場合には使えそうですね。 皆さんのご指摘で、 山ひとつ越えました。 ありがとうございます。

その他の回答 (3)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

>Sheet1(台帳)のG25の値が、 Sheet2の「早得」の22行目にあった場合、 と書かれていますが、数式では > =IF(ISNA(VLOOKUP(台帳!G6,早得,1,0)),"",VLOOKUP(台帳!G6,早得,1,0)) という様にSheet1(台帳)のG25セルの値ではなく、台帳シートのG6セルの値の有無を調べる数式になっている様ですが、検索値を入力するセルは、台帳シートのG25セルとG6セルのどちらなのでしょうか。  それから、数式を入力したセルをコピーアンドペーストで複写すると、ペースト先のセルの数式では、参照するセルが変わってしまいます。  例えば、Y4セルにG6セルを参照する数式が入力されている場合、Y4セルをコピーして、Y6セルに貼り付けた場合、Y6セルの数式ではG8セルを参照する様に変わってしまいます。  同様にW4セルに貼り付けた場合は、E4セルを参照する様に変わってしまいます。  参照するセルを変えたくない場合には$記号を付けます。  例えば、参照するセルをG6セルに固定する場合は、数式中の参照するセルを示している部分の、行番号と列番号の前にそれぞれ$を付けて$G$6とします。  行番号は変わる方が良いが、列番号だけ固定したい場合には、列番号の前にのみ$を付けて$G6とします。  列番号は変わる方が良いが、行番号だけ固定したい場合には、行番号の前にのみ$を付けてG$6とします。  質問文中の数式では、$が付けられていない様ですから、結果が表示される行がずれるのは、その事が原因である可能性もあるかも知れません。  後、検索値と同じデータがある行に、何らかの表示をさせるだけの場合には、VLOOKUP関数よりも、IF関数の方が良いと思います。(この場合、検索関数やIS関数は必要ありません)  例えば、「早得」の1列目の列番号が何列になるのかは、質問文だけでは判らないため、今仮に、SHEET2のC列に、台帳シートのG6セルの値と同じデータがある場合に、SHEET2の同じ行のY列に「有」と表示させるものと仮定しますと、先ずはSHEET2のY2セルに以下の数式 =IF(AND(台帳!$G$6<>"",$C2=台帳!$G$6),"有","") を入力してから、Y2セルをコピーして、Y列の他のセルに貼り付けると良いと思います。

  • mako_sea
  • ベストアンサー率47% (62/130)
回答No.2

>2SHEET目のY列に以下の式を入力すると、 結果が返ってくるのですが、 > >=IF(ISNA(VLOOKUP(台帳!G6,早得,1,0)),"",VLOOKUP(台帳!G6,早得,1,0)) > >SHEET2上に検索値があると、その同じ行に結果を返したいのですが、違う行に結果が表示(返って)されてしまいます。 この式が入っているセルは台帳シートのY6だと思っていいですか? この式だと、 「台帳!G6のセルと同じものが"早得"範囲にあれば表示する」 という意味になりますよね。 なので台帳!Y6にその結果を表示するなら整合すると思います。 この式をsheet2のY列に入れたいのなら、 ・第一引数はsheet2の"早得"範囲の1列目 ・第二引数は台帳!シートのG列 にするべきですよね。 そのへんの意識があっているか確認させてください。 それから、検索値があるか/無いかの二択なら こちらのほうがシンプルかなと思います。 =IF(ISNA(MATCH(台帳!G6,早得,0)),"","あり")

helpcall
質問者

お礼

確信を突いた回答だと思います。 1、式が入っているシートは台帳シートのY6ではありません。2枚目のSheetのY6です。 2.やろうとしている事は2択です。 3、台帳SheetのG列にある値(検索値)がSheet2枚目の早得(の範囲)に完全Matchがあれば、  早得のSheet(2枚目)のその検索値に印(数字が一番ですが、色でも、記号でも何でもOKです)  を付けたいのです。   台帳にある値が基準で、結果を台帳とは違う2枚目のSheetに出そうとしています。 4、台帳で無い2枚目のSheetに印を付けたいのです。 5.以下の式の台帳と早得を逆にすれば可能でしょうか? =IF(ISNA(MATCH(台帳!G6,早得,0)),"","あり") よろしくお願いいたします。

helpcall
質問者

補足

お礼に入力してしまいましたが、 2枚目のSheetY6(式が入っている)には台帳の値が返ってきて居るのが判りました。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

=IF(ISNA(VLOOKUP(台帳!G6,"早得",1,false)),"",VLOOKUP(台帳!G6,"早得",1,false))

関連するQ&A