• 締切済み

VLOOKUP関数で複数のセルが該当した場合全て表示したい

こんばんは。お世話になります。もし良かったら、ご回答お願い致します。 顧客名簿がエクセルで一覧になっているのですが 顧客氏名から顧客No..や顧客情報を検索する場合、 同姓同名が二人以上いた場合にその複数の人物の情報を 表示させる方法はあるでしょうか? もしくは同名がいる、という事が分かるだけでもかまいません。 通常の方法では一番上の列にあるセルのみ表示されてしまいます。 また、現在 A__________B________C______D______ 父親氏名 母親氏名 子氏名 顧客番号 ABC3列からDを検索するため、3つの作業セルを使用してそれぞれに =VLOOKUP(A1,範囲,4,0) =VLOOKUP(B1,範囲,3,0) =VLOOKUP(C1,範囲,2,0) という式を入れていますが、ABC全ての列の範囲で 検索値を拾ってD列の値を表示してくれるような関数は 存在するのでしょうか? いろいろ自分なりに調べましたが、どうしても見つかりません。 顧客電話を受けながらのスピードが求められる検索で あるため、Ctrl+Fやオートフィルタでの検索では難しいです。 初心者ゆえ、わけがわからなかい文章になっていたら ごめんなさい。 どうか、よろしくお願いします。

みんなの回答

noname#262398
noname#262398
回答No.4

> 同姓同名が二人以上いた場合にその複数の人物の情報を > 表示させる方法はあるでしょうか? ありますが、数式で求めるとなると関数をいくつか組み合わせた複雑な式になってしまいます。 例えば↓ http://personal.okwave.jp/qa2456543.html > 同名がいる、という事が分かるだけでも ならば、=COUNTIF(名簿の父名範囲,A1) >ABC全ての列の範囲で >検索値を拾ってD列の値を表示してくれるような関数 これは、3つの方法が考えられます。 (1)SUMPRODUCT関数を使う 名簿がA5:D20の範囲だとして =SUMPRODUCT((A5:A20=A1)*(B5:B20=B1)*(C5:C20=C1)*D5:D20) ただし、顧客番号が数値で、ABCの組み合わせに重複(うっかりミスで同じデータが複数行入力されてたとか)が無い場合に限ります。 SUMPRODUCT関数は、本来は検索用の関数ではありませんが、検索用に利用できます。 (2)3つのデータをまとめて1つのデータにしてしまう 名簿の一番左に1列追加して =父名&母名&子名 というデータを作り、それを検索用にします。そうすれば、 =VLOOKUP(A1&B1&C1,範囲,5,0) で、いけると思います。 (3)DGET関数を使う 1行目に項目名を入力(A1に父名、B1母名に、C1子名 等) 2行目に検索文字列を入力(A2にアナキン、B2にパドメ、C2にルーク) 名簿の最初の行にも項目名が必要です。 =DGET(名簿の範囲,4,A1:C2) 「A1:C2」の部分を変えればそれぞれの検索が出来ます。 例えば「A1:A2」とすると父のみの検索となって、データが複数存在する場合(同姓同名がいた場合)は、エラーになるので、重複チェックにも使えます。

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.3

フォームを使えば簡単に出来ると思います。 データの中のどれか一つのセルを選択して、 「データ」-「フォーム」で「検索条件」ボタンを押します。 該当する欄に検索条件を入力します。 「次を検索」ボタンを押します。 合致するものが複数あれば、「次を検索」ボタンを押せば、 次々表示されます。 「父親氏名」、「母親氏名」、「子氏名」すべてを入力すれば、 全ての条件に合致したものが表示されますが、 どれか一つを入力して「次を検索」ボタンを押していった方が速いと思います。 また、「238/527」のように表示され、全体の何番目のデータか分かります。

chie_shiba
質問者

お礼

ありがとうございます。 関数にばかり気をとられ、データの機能について 不勉強でした。 活用できていない機能がたくさんありそうですので、 イチから勉強しようと思います。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

http://okwave.jp/qa2286883.html 以前回答したものですが、一応動くと思います。 件数によっては、この作業専用に別途作り直した方がいいかもしれません。

chie_shiba
質問者

お礼

すごい!これがうわさのユーザー定義関数というやつ でしょうか? 何とか活用しようと頑張ってみましたが エクセルに触って一ヶ月の未熟な自分では、全く歯が立ちません… これが理解できるようになるべく、勉強いたします。

回答No.1

1つめの対処法。 並べ替えの機能を利用されてみてはいかがでしょう? 2つめ。 IF関数やOR関数を使ってみてはいかがでしょう?

chie_shiba
質問者

お礼

IF、OR…一瞬どう使えばよいのか迷いましたが、 いろいろ考えてみて、わかりました。 ムリにVLOOKUPを使わなくても IF(ORで一旦別の列に該当結果を表示し、該当の行にある 必要なセルを抽出すればよいのですね! 本当にありがとうございました。助かりました。 何とかなりそうです。

chie_shiba
質問者

補足

(お礼コメントに補足です) あ…やっぱりVLOOKUPも使いますよね。 嘘書いてごめんなさい。 とにかく、これからやってみます!

関連するQ&A