• ベストアンサー

EXCELでVLOOKUPでデータを検索、引継ぎをしたい

こんばんは。今、困ってます。Sheet1で、 店コード   商品コード   担当名 01      12345      たなか 01      12350      すずき 01      12355      たなか 02      12360      こんどう という元データが出来ていて、Sheet2で、 店コード   商品コード   担当名 01      12345 01      12348 01      12350 という別ファイルがあり、同じ商品コードの場合は、 Sheet1の元データから、担当名をひっぱりたいと思います。 そこで、担当名の欄に =IF((VLOOKUP(B1,Sheet1!B:M,2))="","",(VLOOKUP(B1,Sheet1!B:M,2))) と入力したんですが、 商品コードが 12346 でも 担当名に たなか と 出てしまったりするので、困ってます。 商品コードが一致しているときだけ、担当名を表示させるには、どうしたらよいのでしょうか? よろしくお願いします。

  • yuk777
  • お礼率86% (183/212)

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

  • ベストアンサー
  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.2

#1です。 >#N/A ってなっちゃってエラーになってしまいます。 先ほどの完全一致を使うと、一致しないところには#N/Aが表示されるようになっています。 表示させないようにするには、例えば下記のように、エラーが生じたら空白を表示するように、ISERRORなどで処理をされれば良いと思います。 =IF(ISERROR(VLOOKUP(B3,Sheet1!B:M,2,FALSE)),"",IF((VLOOKUP(B3,Sheet1!B:M,2,FALSE))="","",(VLOOKUP(B3,Sheet1!B:M,2,FALSE))))

yuk777
質問者

お礼

ありがとうございます。ISERRORがうまく出来なくって困っていました。こうやって使うんですね。 大変助かりました。

その他の回答 (3)

回答No.4

> 商品コードが一致しているときだけ、担当名を表示させるには であれば、#1の言うとおりです。 > FALSEを入れたりも、してみたんですが、 > #N/A ってなっちゃってエラーになってしまいます。 この場合は、エラーと見るのでは無く、「担当者なし」 と見るべきです。 元データが不備の為(商品コード=12346 は発生した時点で事前に登録すべき)に起きた不具合です。 事前に新商品コードの通知が無ければ、店コードnn番に電話して、 商品コード=12346 の担当者は誰だ! って聞いて、元データを直して、再度、実行したら良いのでは。

yuk777
質問者

お礼

tinu2000さんの回答は全くその通りなんです。 確かに、本当に空白なのかエラーなのかが区別つかないんですよね。。 今回作成しているデータは逆パターンで、毎月新しいコードがだけが来るので、元データから担当者をひっぱって来て、該当しない物を調べる。そしてそれが元データになる。という変化物だったのです。。 で、まぁ担当なしという事はないので、空白が出て、そこをうめたいと思ったしだいです。 ありがとうございました!

回答No.3

店コードと商品コードを結合してひとつの名称として扱います。 まず、店コードと商品コードは文字列であることが条件です。 以下の手順でやってみてください。 (1)Sheet1で、店コードをB列、商品コードをC列、担当名をD列とします。 (2)A列を作業用とし、=A2&B2を入力して下までコピーします。 (3)Sheet2で、担当名(C列)に以下の式を入れます。 =VLOOKUP(A2&B2,Sheet1!$A$2:$D$100,4,0) ただし、Sheet1にデータが100行まである想定です。 あとは、必要に応じて該当がないときのエラー処理(ISNAなど)をすればよいと思います。

yuk777
質問者

お礼

店コードと商品コードをひとつの名称として考えるパターンもあるんですね。勉強になりました。 今回は、店コードは変わる場合があるので、使用しませんでしたが、また利用してみたいと思います。 ありがとうございました。

  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.1

VLOOKUPで完全一致の場合は、下記のように第四引数として「FALSE」を入れる必要があります。 =IF((VLOOKUP(B1,Sheet1!B:M,2),FALSE)="","",(VLOOKUP(B1,Sheet1!B:M,2,FALSE))) 参考) http://www.atmarkit.co.jp/fwin2k/win2ktips/317vlookup/vlookup.html

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/317vlookup/vlookup.html
yuk777
質問者

お礼

説明不足ですみません。。。 FALSEを入れたりも、してみたんですが、 #N/A ってなっちゃってエラーになってしまいます。

関連するQ&A

  • Excelについて

    担当者名 担当者コード 施設名 施設コード 納入日 数量 Aさん    10       たなか  1234    7/1    5       Bさん    11       さとう   2345    7/1    3 Cさん    12       すずき  3456    7/1    2 Aさん    10       たなか  4567    7/1    7 Dさん    13       いとう   5678    7/1    4   Dさん    13       いとう   6789    7/1    23 Cさん    12       すずき  7890    7/1    5 Bさん    11       なかだ  8901    7/1    6 という感じで1ヶ月分のデータがあります。(350件ほど) それを・・・ 担当者 施設名 7/1 7/2 7/3 7/4・・・ Aさん  たなか  12 Bさん  さとう   3 Bさん  なかだ  6 Cさん  すずき  7 Dさん  いとう   27 というようにカレンダー方式で集計したいのです。 同じ日に同じ施設名が何回も出てきたりするのですが、うまく集計できる方法はないでしょうか? 宜しくお願い致します。

  • エクセル、VBA、抽出複数検索について

    エクセル、VBA、VLOOKUP、MATCH関数等について出来る方法があれば教えてください。 インチごとに分けてあるシートがあり、(在庫表です) これを参照して、別ブックへVLOOKUP等を使って、サンプルデータのシート4のように表示させたいのですが、 何か方法を使って出来ることは可能でしょうか? 問題点が複数あります 1、VLOOKUPの範囲について、B列が結合されていて、C列は複数行あるため、商品名が入ってきません。 C列については、何千件とデータがあるため、結合することは不可能です。 一致している条件としては商品コードが必ずあり、商品名には「/」が入っております。 =CONCATENATEとVLOOKUPは一緒に使うことは可能ですか? もしくはINDEX関数やIF、SUMPRODUCT等を使うのでしょうか? シート4のような形に出来る方法があれば、教えてほしいです。 VBAは詳しくはないのですが、VBAで出来るのであれば、教えてほしいです。 在庫表はとても作り方が悪いのですが、これを作り直すと言うことは、不可能です。 グループ会社で使っているため、なんとかこの在庫表を使いたいです。 VBAでA列をA5からA100にコードのみ入れた場合、B列に商品名が入るようにVBAで作ることは可能でしょうか? もしくは、検索条件を2つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • エクセルのVLOOKUPに関して

    お世話になっております。 VLOOKUP関数になるのか他の関数になるのか分からないのですが ご教授よろしくお願い致します。 A1セル      A2セル      A3セル 店番号      商品名       担当 1         ア          山口 2         イ          大山 3         ウ          斎藤 1         エ          中村 1         オ          山口 上記のような情報がシート1にあり、 シート2のA1セルに店番号を入力した時に シート2のB列に同じ店番号を持つ商品名をB1、B2、B3...セルへとリスト化し、 C列に担当をC1、C2、C3...セルへとリスト化したいのですが、 どのような関数を使用すれば可能となりますでしょうか。 よろしくお願い致します。

  • エクセルです。2つの異なるデータを自動で一つにしたいのですが

    お願いいたします。 エクセル初心者で、ただいま勉強中です。 一つめのシートにはいろいろなお店の名前が縦に入っています。 2つ目のシートには、そこで販売している商品名・価格・売価などのデータが入っています。 各お店では、すべてではありませんが、同じような商品を扱います。 また、お店や商品の種類は増え続けます。 現状 シート1、シート2をそれぞれVLOOKUP関数を使い、シート3にそのデータを移行し、それぞれのお店の売上げなどの計算をしています。 しかし、毎回、シート1のコード、シート2のコードをシート3に入れている為、非常に時間がかかっています。 そこで以下のようにできませんか? シート1のお店のデータとシート2の商品群のデータを自動で一つにまとめて、一つのコードを自動で作成してくれるような、そのようなことは可能でしょうか。 ほとんどの商品はほとんどのお店で扱います。 最初から、A列にお店、B列に商品、C列に価格、D列に売価などを入れた新しいシートを作ればよいのでしょうが、お店も増え、商品も増えていくと、非常に手間がかかります。 また、上記のようにシート3に2つのシートのデータを移行しなくてはいけません。その作業もコードを2ついれていくのは大変です。 例えば、 新しいお店ができ、さらに商品が追加になりました。 これを、私が手動でシート1にお店を追加     私が手動でシート2に商品名などを追加 ということをしただけで、新シート4に自動で、全部のお店に全商品が追加された、一つのコードを作成したいのです。 そうできれば、一つのコードをシート3にBLOOKUP関数を使い、簡単に移行できそうな気がしまして。 ぜひ、そのような自動でやってくれる関数などがありましたら、またはもっとよい方法がありましたら教えて下さい。 何卒、よろしくお願いいたします。

  • VLOOKUP関数、検索値が範囲に無い場合

    A列に商品コードを書いたシートがあります。 B列に納入率を"Sheet2"からVLOOKUPで呼び出す場合、 B2には下記のような数式を入れましたが、うまく表示されません。 =IF($A2=Sheet2!$A$1:$A$6,VLOOKUP($A2,Sheet2!$A$1:$B$6,2,FALSE),65&"%") 求めたいのは、D,Eの場合はそれぞれ納入率○%、 それ以外の場合は、65%ですが、上記の数式では、全て65%で表示されてしまいます。 どの部分がおかしいのかご指摘をお願いします。 ・納入率65%以外のものが少なく、それ以外の商品コードが大量にあるため、できれば全商品コードのマスタは作成したくない。 ・今後、納入率65%以外が増えることを想定している(最大20個くらい)、のでIF関数では対応できない(ネストが7個までのため)。 "Sheet1"    A       B 1 商品コード 納入率 2   A       3   B       4   C       5   D       6   E     "Sheet2"   A   B 1  D  60% 2  E  70%           ※DE以外は65%

  • エクセルVBA VLOOKUPについて

    エクセル VBA初心者です。 関数でのVLOOKUPをVBAで作りたいのですが、上手くいきません。 あらかじめ、Sheet2の1から300行までに A列  / B列 商品名 / 商品コード が入力されています。(名前の定義=商品コード) Sheet1にユーザーフォームを利用して、データを書き込んだ後、 B列に商品名が書き込まれると、 A列に商品コードが表示されるようにしたいと考えています。 A列に =IF(B2="","",VLOOKUP(B2,商品コード,2,FALSE)) と入力していたのですが、 VBAでIfを使って出来ないかと考えてみたのですが、 上手くいきませんでした。 Private Sub Worksheet_Change(ByVal Target As Range) Dim sRow As Long Dim sColumn As Long sRow = ActiveCell.Row sColumn = ActiveCell.Column If Cells(sRow, 2).Value = True Then Cells(sRow, 1).Value = WorksheetFunction.VLookup(Cells(sRow2).Value, Worksheets("Sheet2").Range("A1:B300"), 2, False) ElseIf Cells(sRow, 2).Value = " " Then Cells(sRow, 1).Value = " " End If End Sub ご教授いただけないでしょうか? エクセル2003 WindowsXP

  • エクセル あいまい検索 

    sheet1   sheet2 A列    A列 400          '400-a 13394      '13394-d 1286       '1286-a ○sheet2の列の中から”400”を含むものを検索したいです。 vlookupでsheet2のB1= vlookup("*"&sheet1!a1&"*",a1:a10,1,0) とあいまい検索できるか試してみたのですが上手くいきません。 期中で在庫システムを変更して変更後のデータがsheet2なのですがなぜかアポストロフィのようなものと-がついてしまい、なんとか新旧の在庫の製品コードが一致していることを確認したいのです。 よろしくお願い致します。

  • ExcelのVLOOKUPについて

    シート1とシート2に商品コードが並んでいます。 シート1にある商品コードがシート2にもあるか確認するため、 VLOOKUPを使ってシート1からシート2へ○印を転記しています。 エラーが出る商品コードの中で、シート1にもシート2にも 間違いなく同じ商品コードがあるにもかかわらず、エラーが 出ています。ただ、シート1の方の商品コードが入っている セルをダブルクリックすると、シート2へ○印が転記されます。 文章ばかりでわかりにくいかもしれませんが、もし解決方法が わかる方がいれば、よろしくお願いします。

  • VLOOKUPの検索値の集計について

    複数シートのデータをVLOOKUPを使って、sheet1(B2~B50)に検索表示させ、更にその値を縦集計し、sheet1(B1)に表示させたいのですが、検索値が文字列のため集計ができません。 VLOOKUPの式に、文字列を数値に変換するように組み込む方法があれば教えてください。 (元データの表示形式は「標準」になっております。) sheet1(B2~B50)には、現在このような式を入れています↓ =IF(COUNTIF(sheet2!$A$2:$E$50,sheet1A!$2),VLOOKUP(sheet1!$A2,sheet2!$A$2:$E$50,2,FALSE)*1,"")&IF(COUNTIF(sheet3!$A$2:$E$50,sheet1!$A2),VLOOKUP(sheet1!$A2,sheet3!$A$2:$E$10,2,FALSE)*1,"")

  • Excelデータの照合

    Excelデータの照合 こちらでも色々調べさせて頂いたのですが、自分のデータにうまくあてはめられず困っています。 Excelの元データ、入力データがあります。 元データが正規のデータで、入力データにモレがないか、ミスがないかをチェックする為に 照合をしたいんですけど、どうやったらうまく出来るかわかりません。 是非ご教授下さい。 元データ、入力データ共に2列あり、どちらも A列・・・コードナンバー B列・・・コードナンバーに対応する金額 が入力されています。 これは今現在は同一シート内に抜き出してありますが、元は別シートです。 なので別シートにあるものとして回答頂いても結構です。 入力データの中から、元データのA列、B列共に一致するものだけを抽出することは出来ますか? 不一致もしくは該当するデータがないものと、一致しているものが区別で切れば形式は何でもOKです。 (作業列を増やすとか、色分けするとか、文字で表示するとか) 出来ればVBAやマクロを使わず関数のみでお願いします。 検索を使うからVLOOKUP? 複数条件だからIF?? と色々考えましたが、2つセットで検索をかけるのがどうしても出来ず・・・(-_-;) よろしくお願いします!!

専門家に質問してみよう