- ベストアンサー
VLOOKUPで結果が正しく表示されない問題について
- Windows XPのOffice 2003環境で、ExcelのVLOOKUP関数を使用しています。
- VLOOKUP関数の検索結果が正しい値を返しているが、表示される行が正しくない問題が発生しています。
- 検索範囲や検索キーなどの設定に問題はないか確認しましたが、原因がわかりません。
- みんなの回答 (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関数を 工夫して利用することになりそうです。
その他の回答 (3)
- kagakusuki
- ベストアンサー率51% (2610/5101)
>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)
>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)),"","あり")
お礼
確信を突いた回答だと思います。 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)),"","あり") よろしくお願いいたします。
補足
お礼に入力してしまいましたが、 2枚目のSheetY6(式が入っている)には台帳の値が返ってきて居るのが判りました。
- aokii
- ベストアンサー率23% (5210/22062)
=IF(ISNA(VLOOKUP(台帳!G6,"早得",1,false)),"",VLOOKUP(台帳!G6,"早得",1,false))
お礼
色々勉強になりました。 MATCH は一度も使った事が無かったのですが、 今回の ように、」2択の場合には使えそうですね。 皆さんのご指摘で、 山ひとつ越えました。 ありがとうございます。