• ベストアンサー

Vlookup(初心者)での質問です。シート1には、客先IDNoがA列

Vlookup(初心者)での質問です。シート1には、客先IDNoがA列、B列にそれに該当する客先名があります。これをシート2へいれたいのですが、シート2は、シート1から抜粋された客先名があります。(シート2:E列)F列に該当するIDをシート1から引用し入力たいのです。 何度か試したのですが、エラーが出てしまいます。名前が(株)が株式会社だったり、抜けていたりあいまいなものもは検索できないのでしょうか?シートが別だと検索できないのでしょうか?急いでおりますだなたか教えて頂けないでしょうか?

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 外していたらごめんなさい。 ↓の画像で左側がSheet1・右側がSheet2です。 Sheet2のE1セルに検索したい顧客名の一部でも入力すると、その文字が含まれるSheet1のデータをSheet2に表示するようにしてみました。 Sheet1に作業用の列を設けています。 作業列C2セルに =IF(Sheet2!$E$1="","",IF(ISNUMBER(FIND(Sheet2!$E$1,B2)),ROW(),"")) という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。 そして、Sheet2のE4セルに =IF(COUNT(Sheet1!C:C)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!C:C,ROW(A1)))) F4セルに =IF(E4="","",VLOOKUP(E4,Sheet1!A:B,2,0)) という数式を入れ、E4・F4セルを範囲指定しF4セルのフィルハンドルで下へコピーすると 画像のような感じになります。 これでSheet2のE1セルに1文字でも検索したい顧客名の文字を入力すると その文字が含まれるデータが表示されると思います。 以上、長々と書いてしまいました。 参考になれば良いのですが、 的外れならごめんなさいね。m(__)m

Pa-Pi-Pu
質問者

お礼

大変遅くなりましてスミマセン。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#144013
noname#144013
回答No.2

こんにちは。 MATCH関数では、検索値にワイルドカード('*'や'?')を使用することができます。 従って、   検索する文字列が、『含まれている』文字列のセル を検索することができます。 例えば、   検索文字列= "*あああ*" とした場合、   あああ株式会社   (株)あああ などが一致対象になります。 ※複数あれば、最初に一致したセル位置が検索結果となります。 ただし、   検索文字列= "*ああ*" とした場合、   あああ株式会社   ああ株式会社   (株)ああい   (株)いああ なども、一致対象になります。 ですので、検索文字列の記述には注意が必要です。 以上を踏まえて、今回のケースで、MATCH関数にワイルドカードを使用した 数式の例を記載します。 注1)以下の例では、シート2に1列追加し、検索結果として、シート1に登録   してある客先名(登録名)を表示しています。 注2)ワイルドカードを使用しているため、上記例のように一致対象が複数に   なる場合があります。 ■シート構成(例) <シート1> ・・・ シート名= Sheet1        A          B  1  客先ID No.   客先名(登録名)  2    00001    株式会社あああ  3    00002    (株)いいい  4    00003    (有)ううう  :      :          :  ◎A列   ・データ形式: 数値(※ここでは文字列ではないものとします)   ・書式設定 : 表示形式 ⇒ ユーザー定義 ⇒ 00000 <シート2> ・・・ シート名= Sheet2        E            F          G  1  客先名(検索名)   客先ID No.   客先名(登録名)  2  いいい          (数式)       (数式)  3  けけけ          (数式)       (数式)  4  あああ          (数式)       (数式)  :      :           :           :  ◎E列   ・ここに検索する客先名(客先名の一部でも可)を入力します。  ◎F列   ・ここに数式(後述参照)を設定します。   ・書式設定 : 表示形式 ⇒ ユーザー定義 ⇒ 00000  ◎G列   ・ここに数式(後述参照)を設定します。   ・シート1に登録してある正式な客先名を表示させます。 ※シート構成については、添付画像もご覧下さい。  (貼れていなかったり、見辛かった場合はすみません。) ■設定数式  上記のシート構成だった場合で、シート2のF列、及び、G列に設定する数式を  以下のように設定します。  ※下記数式は、あくまで一例です。  ◎シート2:F列の数式   <F2セルの場合>    =IF($E2="","",IF(ISERROR(MATCH("*"&$E2&"*",Sheet1!$B$2:$B$65536,0)),"",    INDEX(Sheet1!$A$2:$A$65536,MATCH("*"&$E2&"*",Sheet1!$B$2:$B$65536,0))))   ※上記数式は、表示の都合上2行で記述していますが、実際の入力の際には、    1行で記述して下さい。   ※セル名の参照形式(相対参照、絶対参照)の違いに注意して下さい。   ※ご使用のシートで、シート名、セル名(列、行)などが違っている場合は、シートに    合わせて適せん変更して下さい。   ※F列の3行目以降のセルには、F2セルをコピーして、ドラッグによるオートフィルなど    の操作で数式をコピーして下さい。  ◎シート2:G列の数式   <G2セルの場合>    =IF($E2="","",IF(ISERROR(MATCH("*"&$E2&"*",Sheet1!$B$2:$B$65536,0)),"",    INDEX(Sheet1!$B$2:$B$65536,MATCH("*"&$E2&"*",Sheet1!$B$2:$B$65536,0))))   ※上記数式は、表示の都合上2行で記述していますが、実際の入力の際には、    1行で記述して下さい。   ※セル名の参照形式(相対参照、絶対参照)の違いに注意して下さい。   ※ご使用のシートで、シート名、セル名(列、行)などが違っている場合は、シートに    合わせて適せん変更して下さい。   ※G列の3行目以降のセルには、G2セルをコピーして、ドラッグによるオートフィルなど    の操作で数式をコピーして下さい。 以上です。

Pa-Pi-Pu
質問者

お礼

大変遅くなりましてスミマセン。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • soixante
  • ベストアンサー率32% (401/1246)
回答No.1

データがそれぞれ2行目から100行目まで入ってるとします。 シート2のF2セルに =INDEX(Sheet1!$A$2:$A$100,MATCH(Sheet2!E2,Sheet1!$B$2:$B$100,0),1) と入れて、下まで引っ張る。 なお、基本的に相手はパソコンですから、あいまいなことに対する対応は求めてはいけません。 (株)と株式会社 が同じと分かるのは人間だからです。 あいまいさの程度に応じて対処法が変わります。

Pa-Pi-Pu
質問者

お礼

ありがとうございました。試してみましたがやはり名前が一致しないとだめなようですね。 MATCHを使うとは知りませんでした。助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VLOOKUP関数で2シート分検索したい

    1つのデータに2つシートがあり、 両方のシートで該当する値がないかを確認したいのですが どのようにしたら上手くできるのでしょうか? 「現在のシートで検索対象値がなく、Bのシートでも検索対象値がなかったら何も入力しない」 というイメージです。 ↓イメージを形にすると下記のようになるかと思ったのですが 「0」という数字がかえってきてしまいます。 =IFERROR(OR(VLOOKUP(E2,E:F,2,0),VLOOKUP(E2,B'!E:F,2,0)),"") 関数を修正、もしくは別方法があるのでしたら教えていただけないでしょうか。 どうぞ宜しくお願い申し上げます。

  • vlookup で列番号を使わない方法は?(Excel)

    Excelでいくつものブックから、マスター.xlsを参照して、データベース的に使用しています。 マスターで、最初にA列:ID、B列:氏名、C列:ふりがな、D列:姓、E列:名、F列:所属と作り、 他のブックからIDからvlookupを利用して、それぞれ必要なデータを導き出していたのですが、 必要が生じてマスター.xlsのそれぞれの列の間に色々と加えてしまったために、例えば、所属がI列まで移動してしまいました。 範囲に名前を付けているので、所属を検索する関数が 「=vlookup(a1,'マスター.xls'ID所属検索,6,false)」だったのが、 「=vlookup(a1,'マスター.xls'ID所属検索,9,false)」と変更しなければなりません。 検索元のvlookupの列数を変更しなければならないのが非常に面倒です。 何か方法は無いのでしょうか? ファイルもたくさんあるし、そのファイルの中でも参照したいデータも複数あるので、気が遠くなります。 ヒントになりそうなことでも結構ですので、ご教授下さい。

  • vlookupとIndirectを使って別シートを検索

    C3に検索値が入力されます。 H3には =IF($C3="","",VLOOKUP($C3,INDIRECT("06!$H$2:$K$10000"),2,FALSE)) と入力した所、#N/Aとなってしまいました。 06はシート名です。H列~K列までにデータが入力されており、 現在のシートのC3に検索値を入力すると、06のから値をかえすようにしたいと考えています。 お力を貸してください。お願いします。 分りにくい場合は言ってください。

  • エクセルVLOOKUPについて質問です

    同じブック内で業者一覧のシートにA列業者コードB列業者名が入っています。 別のシートでE列に業者名を入れるとD列にコードが入る様に =VLOOKUP(E6,業者一覧!$A$2:$B$480,1,FALSE) と入れました。#N/Aのエラーが出てしまいます。 この関数の使い方は間違っているのでしょうか? 以前似たような物を作った時は、VLOOKUPを使って簡単に検索できたのに、 今回は色々参考にしてみましたが、私が理解しきれていないのか、 エラーが出る要素が他にあるのか分からず質問します。 よろしくお願いします。

  • ExcelのVLOOKUPの列番号を一括で変更したい

    検索しても自分では見つけられなかったので、質問させてください。 私はExcel2007の一個前のものを使っています。 仕事上、sheet1でVLOOKUPを使い、sheet2(データ入力用シート)の情報を読み取るブックを使っています。 作った人とは連絡が取れないので、知恵をお借りしたいです。 そのExcelのVLOOKUPでは、sheet2の14列目を読み取るようにしていますが、13列目に列を挿入して、15列目(挿入前は14列目)を読み取るようにしたいです。 しかし、sheet1のVLOOKUPは1500行も使っている上に、VLOOKUPを使っている行や別のデータを入れている行もあり、簡単には引数を14から15に変更出来ません。 sheet1のVLOOKUPの14を15に返る簡単な方法は無いでしょうか? つたない説明で申し訳ありません。 宜しくお願いします。

  • VLOOKUP関数 列番号の設定の仕方教えて下さい

    VLOOKUP関数の列番号を 1、2、とかではなく、 計算して列番号を設定することはできますか? シート2 に入っているデータを参照して シート1 に関数をいれて、表示させたいと思っています。 シート2 データは 3行目に、項目(品名、(1)材料名、(2)数量、(2)材料名、(2)数量、...、(10)材料名、(10)数量) A列、 B列、 C列、 D列、 E列、...、 M列、 N列 クッキー、小麦粉、100、卵、1、...、砂糖、20 クラッカー、小麦粉、100、米粉、10、...、りんご、0.2 が入っていて、4行目から100行目くらいまでデータがはいっています。 シート1 の セルA5に品名を入力すると、 シート2の(1)材料名がセルA6に、 (1)数量がセルB6に、 (2)材料名がセルA7に、 (2)数量がセルB7に、 ... (10)材料名がセルA15に、 (10)数量がセルB15に、 入るように作りたいのですが、VLOOKUPの列番号を COLUMNやINDEXなど試してみましたが、エラーばかりで うまくできません...VLOOKUPでは無理なのでしょうか? どなたか詳しい方教えてください。よろしくお願いします・

  • エクセル:vlookupで#n/a又は1つズレる

    エクセルのSheet1にあるURLを検索対象にして、Sheet2のURLを探し、その商品名を求めたいのですが、どうやっても上手く行きません。 mac版のEXCEL2011です。 該当書類の『Sheet1』に =VLOOKUP(B2,Sheet2!$O$2:$P$5802,2,0) と書いていて『Sheet1のB列』は画像URLが入っています。 『Sheet2』の『O』列にURL、『P』列に商品名が入っています。 『P』の対応する文字列を取得したいのですが、 検索方法『FALSE』だと『#N/A』になり、 『TRUE』だと欲しい値の一つ手前の商品が取得されます。(Sheet2はURLを昇順で並べ替えています) セルの分類は『標準』、大文字小文字、1バイト2バイト文字、スペースの有無は確認し問題はありませんでした。それぞれのシートのurlは単純に検索できます。 新規書類に同様のシートを作成し値としてペーストしても なお正しく商品名を取得できません。 商品数は10400件ほどあります。 urlのような『/』や『:』がある文字列は計算出来ないのでしょうか? それともmacだからでしょうか?? お分かりになる方、お知恵いただければと思います。 宜しくお願いします。

  • VLOOKUP関数をVBAで使用したい

    VLOOKUP関数をVBAで使用したい 「検索」シートにID番号を入力すると、「データ」シートのA列に入っているデータから入力されたID番号を検索し、該当するID番号のある行の横並びに入っている別の列データ(B~AG列)を取り出し、それぞれを「検索」シートの様々なセルに表示するVBAを作っていますが、VBAでVLOOKUP関数を用いる方法がよく分からず苦戦しています。 「データ」シートの1、2行目は見出しで、検索されるデータが入っているのは3行目からです。また、「データ」シートには不定期に新しいデータが追加されていきます。 「検索」シートに検索結果を表示する際も、以下のように規則性のないセル配置なので少しややこしいです。 「検索」シートのセル=「データ」シートの列 B6=B列  B8=C列  B10=D列  B11=E列  B12=F列 B13=G列  B14=H列  B16=I列  D16=J列  F16=K列 B17=L列  D17=M列  F17=N列  B20=O列  C20=P列 E20=Q列  B21=R列  C21=S列  E21=T列  B22=U列 C22=V列  E22=W列  B23=X列  C23=Y列  E23=Z列 B24=AA列  C24=AB列  E24=AC列  B26=AD列 E26=AE列  B29=AF列  B31=AG列 このような動作をVBAでさせることは可能でしょうか? また、検索して該当するID番号がなかった際も、VBAだとそこで動作が止まってしまうので、「該当するID番号がありません」といったエラー判定が出るようにすることはできますか? 教えてください。よろしくお願いします。

  • vlookup計算式で複数列(3列)検索するには?

    Vlookup計算式で下記のような状況の時の計算式を教えてください。 例 C列 D列 F列 G列 I列 J列 1   あ  2  い  3  う  この時 別sheetには1から3の数字をいれて あ・い・う が出るようにしたいです。 具体的に言うと初めにC・D列を検索して C・D列になかったらF・G列を検索  F・G列を検索して なかったらI・J列を検索するようにしたいです。 (このときI・J列に対象数字がなかったらエラー結果表示で構いません。) IF関数を使い2列分の検索はできたのですが、3列検索となるとまた 計算式に一捻り加える必要があるみたいでどうしたらいいか分かりません。 F列 I列の情報をC列に持っていくといった事をしないで、3列を検索するような計算式にしたいです。 できればVlookupで計算式を作りたいのですが、他にいい方法をご存知の方がいらっしゃたら 教えてください。 よろしくお願いします。

  • VLOOKUP関数についての質問です。

    VLOOKUP関数についての質問です。 例えば、シート1に、 A列    B列  C列 番号  品物  送り先 1   ばなな スーパー 2   ミカン 学校 3   イチゴ ケーキ店  あるとします。 VLOOKUP関数を用いて、 シート2に A列    B列 送り先  品物 ・   ・ ・   ・ ・   ・ とそれぞれ入力したいとして、以下のセルも同様の式を使い入力しますが いちいち式を立てて入力していくと大変です。 セルにVLOOKUP関数をコピーして使うにはどうしたらいいですか?? お願いします。