• 締切済み

エクセル データベースからの検索について

エクセル データベースからの検索について 商品名・商品番号・在庫といったデータベースがあります。 検索する別の場所を設けそこで商品番号をたたくと商品名と在庫が表示できるようにVLOOKUPでしました。 商品番号がわからない場合があるので商品名から検索できるようにしたいのですが 商品番号からの検索と同じ関数では「#N/A」となってしまいました。 文字での検索の場合はどのような関数になるのでしょうか?         B2商品番号入力   C2検索結果表示(商品名) D2検索結果表示(在庫数)         B3商品名入力    C3検索結果表示(商品番号)D3検索結果表示(在庫数)  A10商品番号  B10商品名     C10在庫数   :       :         : としてC2には =VLOOKUP(B2,A10:C100,2,FALSE) とし正しい結果が表示されます。 商品名から検索したいC3にも同様のものをいれましたが表示されません。 よろしくお願いします。     

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

VLOOKUPで探しに行けるのは,その探したい範囲の一番左列に検索値があってこそです。 数字とか文字とか以前に商品名はB列にあるので,それよりも左にあるA列の商品番号をVLOOKUPすることは全く出来ません。 C3:B列商品の中から探したいがA列番号をVLOOKUPできないので,違う式を使います =IF(B3="","",INDEX(A10:A100,MATCH(B3,B10:B100,0)) D3:AやBより右にあるD列はVLOOKUPで持ってこれます =IF(B3="","",VLOOKUP(C3,A10:C100,3,FALSE)) #出来ない理由かもしれないその2 式は絶対間違いなく書いたのに#N/Aが出る場合。 ご相談では情報提供されていませんが,実際にセルに入れている番号などの具体的なデータの内容が「数値」の時に,数値と「数字に見える文字列」とが混在していて#N/Aのエラーになることがしばしば起こります。 数字だけで出来ている番号などのデータの入っているセル,入れることになるセルについて,すべて書式を標準に設定します。さらに重要な手順として書式を設定しただけではだめで,失敗した番号のセルについては数字の打ち込み直しをして,はじめて修正できます。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

「商品番号で参照する表」と「商品名で参照する表」を、同じものを参照させてませんか? VLOOKUPが参照する先は、キーとなる部分でソートしておかないとダメじゃなかったかな?

関連するQ&A

  • エクセル、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つ使って、一つは商品コード完全一致+あいまい検索で【/】で商品名を入れることは可能でしょうか? 関数は調べたのですが、関数では難しいのかなと思います。 宜しくお願い致します。

  • エクセル データベースと検索

    エクセル初心者です。 今データベースの検索の勉強のため 以下のような2枚のシートを作成しています。 上段がデータベースの元データで在庫の商品と 支店名です。 商品の種類は全部で1000個位の種類があります。 下段が商品を備蓄している支店名と支店コードです。 そこで今回したい処理なのですが、 下段の支店コードの横の列に以下のように 検索フォームをつくり、支店名(さらに言えば支店コードだけ) を入力すれば、その支店で持っている商品名を すべて表示したいのです。 現在、目視でしているためたいへん時間がかかります。 関数やVBAで抽出することはできるのでしょうか。 よろしくお願いします。

  • エクセル一覧表からの検索

    商品管理に使いたいのですが、例えばA列に商品NO.B列に商品名、C列にメーカー名・・・といった一覧表から↓  A        B       C     D  商品NO.  商品名  メーカー名  棚NO. 0001    オシエテ   goo     A-1 0002    コタエテ    net     A-2 vlookup関数で商品NO.(A列)を入力し、商品名(B列)を検索する数式はわかったんですが、同時にメーカー名(C列)棚NO.(D列)も表示したいんですがどんな方法があるでしょうか?(現在、0001入力でオシエテは検索できるがgoo A-1が出ない。当たり前だけど) また、B入力で他のA C DさらにC入力でA B Dが一発で検索できるようにしたいのですが何か良い方法はありませんか?よろしくお願いします。

  • エクセルでデータベースの検索と抽出(?)

    エクセル2007を使用しています。 まずエクセルで作られたデータベースがあります。データベースには、管理番号、顧客名、商品の管理番号、商品名、価格が入っています。 このデータベースとは別に、検索(抽出)用のエクセルを用意しています。 そこで、管理番号を入れたら、顧客名、商品名、価格のみが1行(横)に表示されるようにしたいです。 クエリを利用してやると一つずつ顧客名、商品名、価格を選んで…という風に時間がかかります。 例えば、管理番号の列(縦)に番号を入れて、ボタンを押すとか、実行(F9)すれば、管理番号を入れたすべての行に、データベースから検索した顧客名、商品名、価格が入力されるようにしたいのです。(管理番号の重複はありません) クエリで一個ずつ選んでいくのをマクロ登録するしかないのでしょうか?

  • エクセル VLOOKUPで探したレコードを書き換えるには?

    エクセルで在庫管理をしようと思います。 商品コード  品名   在庫数 A000001   あんぱん   20 A000002   ジャムパン  15 B000001   カップ麺   10 C000001   ジュース   25 上のような商品リストを作ります。 VLOOKUP関数を使用して商品コードを入力すると品名と在庫を表示します。 このときに、その商品を1個売ったとして、在庫を減らすにはどのようにしたら良いでしょうか? VBAを使って簡単なレジ機能を持った在庫管理システムを作ろうと考えています。 宜しくお願いします。

  • 手入力をしても数式が消えないようにするには?

     エクセル2000を使用しています。例えば A1にコード番号を入力すると、隣りのB1に商品名が表示される ようになっています。B1にはVLOOKUP関数が入っています。 しかし、コード番号に対応していない商品の場合はB1のセルに 直接、商品名を入力したいのですが、そうするとVLOOKUP関数 が消えてしまうので次回使うときに困ってしまいます。 リストが使えるとよいのですが、選ぶ商品の数が100個以上 あるので断念しました。 コード番号などで入力もでき、さらに特別な場合は直接入力も できる良い方法はありますでしょうか? 教えてください。

  • エクセルで 複数のデータを検索して複数表示させたいのですが・・・。

    エクセルで在庫の場所がチェックできる下記のような物を作りたいと考えています。 在庫リスト シート1       A    B   C   1行目  商品名   色   場所 2行目  あいう   赤   A1 3行目  かきく   黄   A2 4行目  さしす   青   A3 5行目  あいう   黄   A4 6行目  かきく   青   A5 ・ ・ ・ ・ 在庫リスト シート2       A    B   C   1行目  商品名   色   場所 2行目  あいう   青   B1 3行目  かきく   緑   B2 4行目  さしす   桃   B3 5行目  あいう   茶   B4 6行目  かきく   桃   B5 ・ ・ ・ ・ 上のような表を作成し、別のシート(シート3)で 検索名 あいう と打ち込むと   赤  A1  黄  A4  青  B1  茶  B4 という具合に同じ商品を検索し、色と場所を全て表示させるようなものをエクセルで作成できたらと思っています。可能でしょうか?また、可能であればどのような関数を使って作成したらよいのかを教えていただきたいです。vlookupが使えるかと思ったのですが、それだと一番上のデータ(この例でいけば 赤 A1)のみの表示になってしまい、使えませんでした。 あと、欲を言えば、 商品名を全て打ち込みをしなくても、一部のみ(この例でいけば 「あいう」 ではなくて 「あい」のみ)を打ち込むだけでその字を含む商品名を検索し、表示してくれるような表記の仕方があるともっとありがたいです。在庫リストは在庫の場所ごとに複数のシートに分かれています。 よろしくお願いします。

  • エクセルの関数等で2つの検索値からの抽摂したい

    VLOOKUP関数等で2つの検索値から、ある表の値を結果を出すことは可能ですか? 検索値1 検索値2 結果(関数) 8:00 15:00 12000 (セルA) (セルB) (セルCより抽摂) 表 A B C 1 8:00 12:00 10000 2 8:00 15:00 12000 3 9:00 12:00 10000 ・ ・ ・ 勿論他の関数での方法でも構いません

  • エクセル 別れたシートでの条件検索

    別れたシートでの検索で一致したものを探す関数について。 VLOOKUP関数だと列に対してだと思うのですが、行に対して検索したいです。うまく伝えられないので、例えば 【シート1】    A   B   C   1  555 2  666 3  777 4  222 【シート2】    A   B   C   D 1  777    555    222 2 3 上のようなシートがあり、 シート1のA列の番号がシート2の1の行に有ったら、 シート1のB列にOKと表示、無かったらNGと表示、 の様な関数ってありますか? どなたか解る方お願いします。

  • Excel 検索結果の表示について

    Excel2000を使用しています。 【現在の状況】 ■A列に検索値が入力されています。 ■B列に結果を表示させたいので、空欄です。 ■C列にVLOOKUPの式が入力されていて、結果が表示されています。 ■別シートに検索範囲が入力されています。 【作業したい内容】 ■A列の検索値を使用して、C列に結果が表示されているのですが、C列の結果をB列に表示させたい。 ■B列に「=C1」と入力せず、B列は空欄の状態で、C列のVLOOKUPの式に、B列に値を表示させるように、式を入れたい。 以上、どのような式をC列に記述すればいいのでしょうか。 ご回答の程、よろしくお願い致します。

専門家に質問してみよう