• ベストアンサー

エクセル VlookUPで違う結果が出てくる

エクセル2010で何度も使っているVlookUP関数なのでですが、今日は何故か全くうまく行かず、原因が分かりません。 氏名が入った表同士で、Sheet1の氏名の横の列にSheet2の参照範囲からデータを持ってくるだけの作業なのですが、全く違う人(場所)のデータをもっともらしく引っ張ってくるのですが。 横にコピーすると、その違う人の横のセルのデータを持ってきます。 詰まり参照は出来ているのですが、全く違う「氏名」の行のデータを参照しているのですが。 この原因分かる方、是非お願いします。

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

  • ベストアンサー
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.3

ANo1です。 > 検索方法は省略していますが、0でも1でも間違った引用かエラー表示になります。 恐らく、0のときエラーで、1のときに間違った値になっていますよね? まず、文字列を検索するときは検索方法は必ず0=FALSEの完全一致にしてください。 1=TRUE で間違った値になるという事は、「Vlookup検索用」シートのB列に該当するデータがなく、前方一致する別のデータを表示しているものと思われます。

akira0723
質問者

お礼

VLOOKUPでトラぶったことが無く、全ての文字、記号は1つのコードを持っていてそれでデータを管理していると思い込んでいましたので今回の皆様のご回答は非常に参考になりました。 遅くなってしまいましたが、御礼申し上げます。 有りがとうございました。

その他の回答 (4)

回答No.5

> 0でも1でも間違った引用かエラー表示 エクセルのエラー表示っていくつか種類があるんですが・・ どの「エラー」でしょうか? 例えば「エラー」が返る検索値(セル番地でもOK)を使って、   =MATCH(エラーが出る検索値,'Vlookup検索用 '!$B,0) を動かすとどう返ってきますか?正しい位置(行番号)が返ってきますか? > (略)=VLOOKUP($D5,'Vlookup検索用 '!$B:$E,2) を使っていらっしゃるようですが、 > 横にコピーすると、その違う人の との記載もあるようです。 「B列から」検索し、該当行の「C列」の値を返したい式、 であるとの認識で大丈夫ですか? というか、「氏名」はB列に縦に並んでいると考えて良いのですよね? まさか、1行目に横に4人分並んでるとかではないですよね? 以上、補足ください。 なんとなく、の邪推なのですが・・ 「HLOOKUP関数」と勘違いしているような気がしないでもないのですが、 どうなのでしょう?

akira0723
質問者

お礼

ありがとうございました。・ その後色々試してみた結果、以外にも氏名の読み方が違っていることが分かりました。 両方のシートの氏名列を、昇順、降順で並べ替えてみた所、元シートの氏名の順番が全く出鱈目になることを発見。これが原因でした。 具体的には、 例えば安田の安は「あん」、永岡の永は「えい」、横田の横は「おう」等々、音読みになって認識されているようなので、別のシートの安田(やすだ)ではヒットしないという事のようです。 何故そのようになってしまったのかは全く不明。 どうしたら良いのか別の質問にさせて頂きますので宜しくお願いします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

VlookUP式の第4引数が2になって(して)いるようですが、 http://www.relief.jp/docs/001835.html を読んで再考してみてはどうでしょう。FALSE型を使うケースのようなので。 ーー https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12138140137 数値で表現する場合はTRUEは「1」、FALSEは「0」を使用します。 ーーー それに元データを参照するセル範囲は、式の複写につれて、番地がづれないように、行部列部ともに$を付けるのが注意点でしょう。

akira0723
質問者

お礼

ありがとうございました。・ その後色々試してみた結果、以外にも氏名の読み方が違っていることが分かりました。 両方のシートの氏名列を、昇順、降順で並べ替えてみた所、元シートの氏名の順番が全く出鱈目になることを発見。これが原因でした。 具体的には、 例えば安田の安は「あん」、永岡の永は「えい」、横田の横は「おう」等々、音読みになって認識されているようなので、別のシートの安田(やすだ)ではヒットしないという事のようです。 何故そのようになってしまったのかは全く不明。 どうしたら良いのか別の質問にさせて頂きますので宜しくお願いします。

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.2

列、非表示になってません?

akira0723
質問者

お礼

ありがとうございました。・ その後色々試してみた結果、以外にも氏名の読み方が違っていることが分かりました。 両方のシートの氏名列を、昇順、降順で並べ替えてみた所、元シートの氏名の順番が全く出鱈目になることを発見。これが原因でした。 具体的には、 例えば安田の安は「あん」、永岡の永は「えい」、横田の横は「おう」等々、音読みになって認識されているようなので、別のシートの安田(やすだ)ではヒットしないという事のようです。 何故そのようになってしまったのかは全く不明。 どうしたら良いのか別の質問にさせて頂きますので宜しくお願いします。

akira0723
質問者

補足

一度別シートにコピーを取って、値で貼り付けてもみましたがだめでした。 行番号、列もは全部出ています。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

その現象が発生する式とデータのサンプルがないと何とも回答しにくいです。 今のままでは「式が間違っているんじゃない?特に第4パラメータ」ぐらいしか言えません。

akira0723
質問者

お礼

ありがとうございました。・ その後色々試してみた結果、以外にも氏名の読み方が違っていることが分かりました。 両方のシートの氏名列を、昇順、降順で並べ替えてみた所、元シートの氏名の順番が全く出鱈目になることを発見。これが原因でした。 具体的には、 例えば安田の安は「あん」、永岡の永は「えい」、横田の横は「おう」等々、音読みになって認識されているようなので、別のシートの安田(やすだ)ではヒットしないという事のようです。 何故そのようになってしまったのかは全く不明。 どうしたら良いのか別の質問にさせて頂きますので宜しくお願いします。

akira0723
質問者

補足

入力式は下記の通りです。 検索方法は省略していますが、0でも1でも間違った引用かエラー表示になります。 =VLOOKUP($D5,'Vlookup検索用 '!$B:$E,2)

関連するQ&A

  • Vlookup関数で検索結果がエラーになってしまう

    お世話になります。 Vlookup関数の質問となります。 =VLOOKUP(C2,Sheet2!$A$2:$E$685,1,FALSE) 検索値  →リストを使用(元データはSheet2の指定したセル範囲の表の2列目のデータ) 範囲 →Sheet2の特定のセル範囲 列番号 →1(ここは100-01、100-02などの番号が入力されています) 検索方法 →false(完全一致) この式で「#N/Aエラー」が発生してしまいます。 単純に「氏名」から「社員番号」を引っ張りたいだけなのですが、 なんでエラーになるのでしょうか? 範囲に指定した表には空白行はありますが、書式設定などは特に問題はないです。 恥ずかしい質問なのは十分に理解していますが、 教えて頂きたく思います。 よろしくお願い致します。

  • VLOOKUP関数:別シートにある参照範囲が変動する場合

    スポーツクラブで学童会員の名簿を作成しています。 【目的】 VLOOKUP関数を利用して、シート1「名簿」のA列に会員番号を 手入力すると B列に学年、C列に氏名が各々自動入力されるようにしたい。 【設定】 ・シート1を「名簿」とし、  A列を会員番号、B列を学年、C列とD列を結合して氏名としました。 ・シート2を「参照データ」とし、  A列を会員番号、B列を学年、C列とD列(結合を解除)を氏名と  しました。 ・シート2の1行目はタイトル行とし、データが入力されているのは  2行目からです。 ・別シートのデータを参照するため、シート2のデータが入力されて  いる範囲に「参照範囲1」という範囲名をつけました。 【状況】 現在設定している数式は B2=VLOOKUP(A2,参照範囲1,2,FALSE) なのですが、以下の場合は「参照範囲1」で設定した範囲とは 異なる範囲のデータを参照しなければなりません。 ・入会者がいる場合:データを追加するため、行が増える ・退会者がいる場合:データを削除しブランクを解消するため、  行が減る 【質問】 上記状況の場合、VLOOKUP関数に加えてどのような関数を使用すれば 別シートにある参照範囲の変動に対応できるのでしょうか? 会員が増減するたびに、新たに参照範囲を設定し範囲名をつけ直す という作業は避けたいのですが・・・ ご教示いただけますよう、何卒宜しくお願い申し上げます。

  • EXCELマクロ 検索 VLOOKUP

    Excelマクロで 検索とその結果のコピーを行いたいのですが、全くの素人のためご教授願えればと思います。 Excel2002で 2つの表から共通する部分をKEYに付随するデータ抜き出したいと思っています。関数VLOOKUPを使えば簡単な作業かと思いますがVBAではそのVLOOKUPやFIND、それにLOOPなどの使い方が今ひとつ理解 できません。 具体例として 表1には A-Z列まで約1000行のデータが存在します。 表2は表1と同じシート上の直ぐ隣列AA-AK列まで表1より必ず多い行数のデータが存在します。また表1のA列にあるデータは すべて必ず表2のAA列に含まれます。 行いたい作業は、VLOOKUPのような検索で、表1A列と表2AA列に共通したデータがあった場合、表2の該当セルを基準としてALからBJ列セルに表1の該当行のデータB-Z列をすべてコピー貼り付けすることです。 A・AA列とも同列内では重複も空白もなくソートされています。 これら以外の列には同じValueのデータや空白が存在します。またデータ件数(行数)も表1・2とも一定ではなく都度変動します。 解りやすくご説明いただけると幸いです。宜しくお願いいたします。

  • EXCEL の VLOOKUP で 結果は正しいのですが・・・・

    EXCEL の VLOOKUP で 結果は正しいのですが・・・・ 2SHEETの EXCEL BOOK で 1SEET目は「台帳」と言う名前です。 検索値は1SHEET目にあり、検索対象は2SHEET目にあります。 2SHEET目の検索範囲に「早得」と名前をつけてあります。 検索の結果は検索値があるか/無いかが判れば良いので、検索範囲の1カラム目(検索キー)を返すようにしています。 2SHEET目のY列に以下の式を入力すると、 結果が返ってくるのですが、 =IF(ISNA(VLOOKUP(台帳!G6,早得,1,0)),"",VLOOKUP(台帳!G6,早得,1,0)) SHEET2上に検索値があると、その同じ行に結果を返したいのですが、違う行に結果が表示(返って)されてしまいます。 例: Sheet1(台帳)のG25の値が、 Sheet2の「早得」の22行目にあった場合、 Sheet2の15行目に結果が表示されるような感じで規則性がつかめませんが、ちゃんと存在するものだけSheet2の関数を入れているY列に返ってきます。正しい結果が返ってきているようなのですが、表示される行がおかしなところに表示されてしまいます。 何がまずいのかさっぱりわかりません。 環境は Windows XP の Office 2003 です。 よろしくお願いいたします。

  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

  • エクセルのVLOOKUP関数で・・・

    3時間ほど色々頑張ったのですが、もうお手上げなので教えて下さい・・・。 エクセルでシートが2つあり、シート2から一致するデータのみをシート1に持って行きたいのです。 具体的にはシート1には「F列/カナ氏名・G列/漢字氏名・H列/顧客番号・I列/生年月日」が設定されています。 ただしH列には顧客番号が入力されていません。 シート2より生年月日をキーにして引っ張ってくる予定です。 シート1には1000件データがあり、シート2に載っている該当者が200件程ヒットする予定です。 シート2には「A列/生年月日・B列/カナ氏名・C列/漢字氏名・E列/顧客番号」が設定されています。 仮に1行目からデータが入っているものとして、シート1のH1のセルに次の式を入れました。 =VLOOKUP(I1,'シート2'!範囲,5,FALSE) 範囲には実際の範囲を指定し、5列目がシート2の生年月日なので合ってると思うのですが・・・。 エラーは#N/Aというのが出てしまいます。 何処に問題があるのか分かりません。 説明が下手かもしれませんが、分かる方教えて下さい!

  • Excel2010のVlookupについて

    関数のVlookupについて困っております。 Vlookupで他シートのA列を参照した際に、行数233行目以降に記載してある参照先が全て#N/Aで返されてしまい困っております。233行目以前に試しに移動してみましたが、正しくVlookup関数は処理されました。 データの問題ではなさそうに思えるのですが、ほかに何か原因等考えられますでしょうか? 分かる方、同じ現象を体験した方等対処の仕方を教えていただけると幸いです。 よろしくお願いします。

  • ExcelのVLOOKUPで結果の表示が・・・

    うまくいきません。 =IF(B17="","",VLOOKUP(B17,Sheet3!$A$1:$B$40,2)) という関数を入力しました。 結果は範囲内の2列目から検索された 「0010181」という数字のはずなのですが正しく表示されません。 この場合、結果は「0040602」と表示されました。 (関数は間違っていないと思うのですが) セルの書式設定は「文字列」になっています。 他のセルでもやはり正しい結果がでません。 こんなことは初めてでさっぱりわかりません。 どうしたら、範囲内にある正しい数字(文字列)が表示されますか? うまく説明できないので不明な点があったら補足致しますので よろしくお願い致します。

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • エクセル VLOOKUPでの複数のデータ抽出

    「表の左端列」で検索する行によって、隣のセルに取り出せるデータの範囲を指定する、 ということは可能でしょうか。 例えば、左端でAを選んだ場合は表のこの範囲から次を選ぶ、 Bを選んだ場合は同じ表の違う範囲から選ぶ、といったようなことです。 普通のVLOOKUPでは1対1、左端で行を選ぶとその行の何列目のデータを取り出すか、 といったことしか出来ないので、それを複数の列の中からさらに選ぶことが出来るように 設定変更したいです。 ご教示よろしくお願いいたします。

専門家に質問してみよう