• 締切済み

エクセル VLOOKUPとの複合?

Sheet2に顧客名簿があり、 A:顧客名 B:住所と入っています。 Sheet1には B4:B34とH4:H34に顧客名が入り、 C4:C34とI4:I34にそれぞれVLOOKUPで住所が転記される仕組みになっています。 しかし、顧客数が膨大(1万件前後)なため、顧客名を間違えることが多々あり、転記されない場合が多いです。 なんとか、これを解消したいのですが、何か良い方法はありませんか? ・例えばABCが含まれる顧客を検索ボックスなどから選択をして転記 情報がかなり不足していて申し訳ありませんが、よろしくお願いします。

みんなの回答

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

フィルタオプションの設定を使ってみれば良いのでは?    A 1 検索値 2 ABC 3 顧客名 4 ="=*"&A2&"*" 上記の状態で「データ」「フィルタ」「フィルタオプションの設定」 抽出先を「指定した範囲」 リスト範囲「=Sheet2!$A:$A」 抽出条件範囲「=$A$3:$A$4」 抽出範囲「=$A$5」 でOKすればA5以下にABCを含む顧客名が表示されます。 これをマクロに記録すればいいのでは?

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

こういう時によくやるのは、顧客名をキーにせず、独自に振った顧客番号 をキーにする方法です。1万件もあるとそろそろ同姓同名の顧客も出てくる と思いますので、業務の変革を伴いますが、そろそろ顧客番号の導入も 検討した方が良いんじゃないかと思いますよ。 それはともかくプルダウンのリストですが、対象となる顧客件数が多すぎ ますので、やはりVBAを使わないと「入力した漢字で自動的に絞り込んで 表示する」みたいな処理は出来ないと思います。逆にVBAを使わないなら 「転記できなかったら顧客名を赤字に変える」(条件付書式で可能)の ような「視覚に訴える」方法で目立たせるしかないんじゃないかと。 いずれにせよ、「氏名の間の空白がなしか半角か全角か」のような微妙な 転記ミスを、関数で自動的に解消する方法はないと思って下さい。

gaga001
質問者

補足

早速の回答ありがとうございます。 補足ですが、顧客名簿は別の管理ソフトからエクスポートしたものになります。 今回の質問の経緯として、日報の簡素化が一番に挙げられます。 従来は担当者が顧客名を全て手書きで記入している事もあり、書き手によっては読み難い場合も多々あります。また、曜日毎に顧客が決まっていることもあって、 出来れば各担当の負担を軽減できればという思いから質問させていただきました。 本来不可欠なものは顧客名のみであり、住所は担当変更などの時のみ関数を用い転記するつもりでいます。 本題ですが、顧客でコンビニがあるとします。しかし、コンビニですから地域によって、A店・B店・C店と複数に分かれて名簿に載っています。 で、実際VLOOKUPで転記をしようとすると、 コンビニA店 コンビニB店 とそれぞれ正確に記入しなければ、住所が反映しません。 それを"コンビニ"で絞込みをかけて、ダイアログから選択をするという方法を考えています。 正直、方法はVBAしか無いと思っています。 ただこれを習得できれば、かなりの簡素化が期待出来るので なんとしてでも覚えたいという気持ちでいます。 かなり長文になりましたが、よろしくお願いします。

関連するQ&A

  • エクセルでVLOOKUP関数の使い方を教えてください。

    J列に"○"が入っていて、かつC4="1番"というシートのI3が同じ場合、(C4=1番I3) P列に"1番"のJ列の数字を入れたいのですが、うまくいきません。 VLOOKUP関数を使うと思うのですが、どのようにやればよいのでしょうか。 よろしくお願いします。

  • VLOOKUPで別ファイルから検索

    現在売上帳をエクセルVBAで作っています。 その中で、顧客NO.を入力すれば顧客名や住所が表示されるように、VLOOKUPで同ファイル内の別シートの顧客名簿から検索できるようにしているのですが、この顧客名簿を別ファイルで作っても検索されるようにできるのでしょうか? やり方を教えてください。 よろしくお願いします。

  • Excelの入力方法

    A B C 1 顧客検索 2 3顧客ID 4顧客名 5住所 B4にVLOOKUP(B3,顧客名簿!A2:C20,2) B5にVLOOKUP(B3,顧客名簿!A2:C20,3) の式を入れています 顧客IDをB3に入れてEnterを 押してもB3から動かないように したいのですが。 できればB3以外に動かないように することができるのでしょうか?

  • エクセル「VLOOKUP」の使い方

    エクセル2000です 「名簿&住所録」シートを検索して、その人の電話番号を表示しようとしています。 例. =VLOOKUP("山田 太郎",'名簿&住所録'!F:M,7,FALSE) この"山田 太郎"の部分を、可変(セル「A1」や「A2」)に指定できないでしょうか? 例. =VLOOKUP(A1,'名簿&住所録'!F:M,7,FALSE) ヘルプを見ましたが分からなくて、、、

  • EXCEL のVLOOKUPについて

    OS:XP EXCEL 2007 お世話になっております。 EXCEL発注書をつくりました。3つのシートを作って、その中に調達先の住所をベースシートとして置いてあります。他の2枚シートは調達のIDを入力すると会社名を出せるように =IF(H11="","",VLOOKUP(H11,会社名称,2,0))を入れました。 ところがこれは2枚シートとも同じ会社IDで入力したら1枚しか反映されなくて困っています。 どうすれば2枚シートとも会社名を出せるようになるんですか? よろしくお願いします。

  • vbaにvlookupを組み込む

    お世話になります。 エクセルのマクロにvlookupを組み込みたいのですが,エラーが出てしまいます。 用意したものは「顧客名簿」というシートで,A列に顧客番号(6ケタの数字),B列に顧客名が入っています。C列以降はその他のデータが入っています。 「トップメニュー」というシートにあるマクロボタン「顧客抽出」を押すと,インプットボックスが現れます。これに顧客番号を入力すると,メッセージボックスが現れます。 この時のメッセージボックスに,インプットボックスに入力された番号により「顧客名簿」から顧客名を取り出し,「○○さんのデータを表示しますか」としたいのですが,ここでエラーが出ます。(○○は,「顧客名簿」のB列にある名前です) 実行時エラー 1004 WorksheetFunctionクラスのVLookupプロパティを取得できません。 組んであるマクロは以下の通りです。 Sub 顧客抽出() Dim ans As String, ans2 As String     ans = InputBox("顧客番号を入力", "入力", "")         If ans = "" Then             MsgBox "顧客番号が空白です" & vbNewLine & _                "処理を中止します", vbOKOnly         Else             If WorksheetFunction.CountIf(Worksheets("顧客名簿").Range("A1:B5000"), ans) = 0 Then                 MsgBox "顧客番号が登録されていません", vbOKOnly             Else                 ans2 = WorksheetFunction.VLookup(ans, Worksheets("顧客名簿").Range("A1:B5000"), 2, False)                 If MsgBox(ans2 & " さんのデータを表示しますか", vbYesNo) = vbYes Then                     Sheets("顧客情報").Select                     Range("D4").Value = ans                 Else                     MsgBox "処理を中止します", vbOKOnly                 End If             End If         End If End Sub 途中にある ans2 = WorksheetFunction.VLookup(ans, Worksheets("顧客名簿").Range("A1:B5000"), 2, False) の部分でエラーが出るのですが,解決策が見当たりません。 おそらくRange("A1:B5000")の部分に不具合があると思うのですが,どう対処すればいいでしょうか。 詳しい方,ご教授願います。

  • エクセルで2つの表を見比べる

    上手く表現出来ずに変なタイトルになってしまいました… sheet1に顧客全員の名簿があるとします B列には顧客の氏名、C列には会員のランク(3種類のランク分けがしてあります) という名簿です。 sheet2にはある商品を購入した購入者名簿があります。 D列に顧客の氏名、その他の列には住所などが入力してあります。 (順番は購入日順なので、バラバラです。) sheet2の購入者名簿に名前のある顧客の氏名を sheet1の顧客全員の名簿から探し、C列の会員ランクを 『上得意』と変えたいのですが関数などを使って 簡単に出来る方法ってありますか? 会員数が6000名、商品購入者が200名くらいと 数が多いので1件1件検索すると時間がかかります… VLOOKUP関数なんかで出来たかなと思ったんですけど 勉強したのがだいぶ前なのですっかり忘れてしまいました。 詳しい方、ぜひいい方法を教えてください。

  • VLOOKUPで別ファイルから検索その3

    D7セルに下記のような数式を入れました。 =IF(D1="","",VLOOKUP(D1,'K:\資料\[名簿.xls]Sheet1'!$A$2:$F$10000,2,0)) 名簿.xlsは   A     B     C    D    E       F    G 顧客NO. 顧客名 フリガナ 住所 郵便番号 電話番号 備考 を入力した住所録なのですが、試しに5件分ほど作ってみたところ、うまくいきました。 ところが、実際に900件ほど作ってみたところ、D7セルに、#N/Aの表示が出てしまいます。 どうして件数を増やすと機能しないのでしょうか?

  • EXCELのVLOOKUPを有用に使いたいのですが

    すみません。どなたか教えてください。 たとえばA1のセルに以下の値があったとします。 <abc>1<abc> このうちの1の部分をA2のセルに表示したいときは=MID(A2,6,1)で表示できました。別のシート(仮にsheet2)に例えばA行に1から昇順に番号が振られていてB行にデータが入っていたとします。VLOOKUPを使ってsheet2のB行を表示したいときは=VLOOKUP(A2,Sheet2!A:B,2,FALSE)でできると思ったのですがエラー表示になってしまいました。A2のセルを更にコピーして例えばA3に形式を選択して貼り付けで値を選択して1を表示してから=VLOOKUP(A3,Sheet2!A:B,2,FALSE)をするとB行の値が表示されるのでA2は1とみなされてないということになるかと思うのですが、A2内で1とみなすようにできる関数はないでしょうか?

  • エクセル Vlookup 範囲指定について

    よろしくお願いします Vlookupの範囲指定を, パスや,ファイル名,シート名により作成した文字列で指定したいと思っています。 これにより,年度末の処理が, シート内のセルを一部変更するだけで毎年対応可能になると思っています。 例えば, 平成24年の4月のツヨさんのB2セルの数字を参照したいときに, セルC3 c:\test\  (ディレクトリ1) セルC4 H24      (ディレクトリ2)←年度で変わります セルC5 \kaikei\   (ディレクトリ3) セルC6 04月.xlsx  (ファイル名)←月で変わります セルC7 ツヨ      (シート名)←人で変わります セルC8 !$A$1:$B$5 (検索範囲) という前提の元, セルC9 ="'" & C3 & C4 & C5 &"["&C6&"]'" & C7& C8 (表示は 'c:\test\H24\kaikei\[04月.xlsx]'ツヨ!$A$1:$B$5) とします。 ここで次の2式を記述します。 セルC20 =VLOOKUP(2,'C:\test\H24\kaikei\[04月.xlsx]ツヨ'!$A$1:$B$5,2,FALSE) セルC21 =VLOOKUP(2,C9,2,FALSE) セルC20は,正しく参照されます。 セルC21は,#N/Aエラーです。 なんとか セルC21のように指定したいと思っているのですが, 良い方法が無いでしょうか? ご教授, よろしくお願いします

専門家に質問してみよう