• ベストアンサー

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/1245)
回答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を使うとは知りませんでした。助かりました。