• 締切済み

エクセルで該当者データを抽出してリスト化できず・・・悩んでいます

いつもエクセルテクニックを学ぶために活用させていただいております。 今回はみなさまの過去の質問を見ても解決できなかったので、質問させていただきました。 ■使用しているデータ  営業スタッフ向けに顧客リストを作成しています。  私のほうで、全営業スタッフの担当する顧客名、業種、購入額の一覧を作りました。  【EXCELのシート1】  A列   B列   C列  D列   営業  顧客名  業種  購入額 1 山田  A社   食品   10万 2 山田  B社   食品   20万 3 山田  C社   医療   10万 4 田中  D社   食品   30万 5 田中  E社   小売   15万 ■作りたいもの  各営業スタッフが自分の名前を入力すると、自分の顧客の名前、業種、購入金額を検索でき、リスト化できる機能です。  具体的にいうと・・・  1)シート2のA1に自分の名前(例:山田)を入力  2)シート2のA3以下に担当顧客が表示される 【EXCEL シート2】   A列   B列   C列  D列 1 山田 2 3 山田  A社   食品   10万 4 山田  B社   食品   20万 5 山田  C社   医療   10万 私自身マクロに詳しくなく・・・大変困っております。 オートフィルタを使えばいいのですが、営業スタッフが エクセルに精通しておらず恐らく使いこなせないのです。 「A1に自分の名前を入力してください」と言うだけで リスト化できる機能についてどなたかご教授いただければ幸いです。  

  • Pmag
  • お礼率72% (8/11)

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

ピボットテーブルでやれば、こんな感じです。 <1案> ..1.........営業...........山田←ページフィールドで営業担当者名を選択 ..3合計 : 購入額................................. ..4.....顧客名...........業種..........計 ..5...........A社...........食品...100000 ..6...........B社...........食品..200000 ..7...........C社...........医療...100000 ..8.........総計.....................400000 なお、小計を消す操作をしています。 <2案> A列で表示したい営業マン名だけにチェック ..1合計 : 購入額........................................ ..2.........営業.顧客名.....業種..........計 ..3.........山田.......A社.....食品...100000 ..4........................B社.....食品..200000 ..5........................C社.....医療...100000 ..6...山田 計............................400000 ..7.........総計............................400000 ご参考まで。

参考URL:
http://sweety.jp/honobono/faq/pibo/index.htm
Pmag
質問者

お礼

お返事が大変遅くなって申し訳ありませんでした。 ありがとうございます!

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

シート2のタブを右クリック>コードの表示で表示されたシートモジュールにコピペ。 Private Sub Worksheet_Change(ByVal Target As Range)  Dim r As Range  Dim rr As Range  If Target.Address <> "$A$1" Then Exit Sub  Range("A3", Cells(Rows.Count, Columns.Count)).ClearContents  With Worksheets("Sheet1") 'シート名適宜変更       Set r = .Range("A1").CurrentRegion       r.AutoFilter 1, Target.Value       Set rr = Intersect(r.SpecialCells(xlCellTypeVisible), _               .Range(.[A2], .Cells(Rows.Count, Columns.Count)))       If Not rr Is Nothing Then          rr.Copy Range("A3")       End If       r.AutoFilter  End With End Sub ご参考程度に。

Pmag
質問者

お礼

お返事遅くなって申し訳ございません。 マクロまで作っていただきありがとうございました!!

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

ISERROR関数があります。 =IF(ISEROR(SMALL(シート1!$E:$E,ROW(A1))),"", INDEX(シート1!A:A,SMALL(シート1!$E:$E,ROW(A1))) 等の方法があります。

Pmag
質問者

お礼

お返事おそくなりました。 ありがとうございました!!

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

作業列を使いますが シート1の列にでも =IF(A2=シート2!A$1,ROW(),"") で下までコピィすれば 山田さんのときだけその行番号が出ます。 シート2のA3は =INDEX(シート1!A:A,SMALL(シート1!$E:$E,ROW(A1)) で右へコピィ、下へコピィで試してみてください。 (エラー処理なしです) 以下の様な紹介がいくつでもあると思います。 http://oshiete1.goo.ne.jp/qa4261978.html

Pmag
質問者

お礼

hallo-2007様 早速、回答いただきありがとうございました!! やってみたところ、無事対象者顧客が表示できました。 下へコピーしたところ、対象顧客が少ない人だと #NUM! という表示がでてしまうのですが・・・これは消せないものなのでしょうか?? できれば空欄になってくれると、プリントアウトしたときに 美しくてとても助かるのですが・・・。 もしご存知であれば教えていただければ幸いです。

関連するQ&A

  • エクセルで新規顧客のリストを追加

    前回、同じような質問して、分かったつもりだったのですが、できませんでしたので、もう一度質問させて頂きます。 シート1に、顧客(会社名)のリストがあります。 <シート1> (A列) A社 B社 C社 ・ ・ シート2に、その月に取引のあった顧客の名前(会社名、担当者が同じセル内にある)があります。 <シート2>    (A列)      (B列) B社 ○○さん    1000円 C社 △△さん    1000円 X社 □□さん    2000円 C社 ○△さん    1500円 G社 □△さん    1000円  B社 ◎○さん     500円 という具合です。 X社さん、G社さんは新しい顧客なので、シート1のリストに追加したいのです。 しかし、シート1のデータも膨大であり、シート2のデータも膨大なので、手作業では困難です。 そこで、シート1のリストにない顧客の名前だけ、シート2で目立つような(あるいはピックアップするような)方法がないでしょうか。 金額は関係ありません。次の列に入っていることを分かりやすくしただけです。

  • エクセルでリストにないデータを示す方法

    シート1に、顧客のリストがあります。 <シート1> A B C ・ ・ シート2に、その月に取引のあった顧客の名前があります。 <シート2> B C X C G B という具合です。 Xさん、Gさんは新しい顧客なので、シート1のリストに追加したいのです。 しかし、シート1のデータも膨大であり、シート2のデータも膨大なので、手作業では困難です。 そこで、シート1のリストにない顧客の名前だけ、シート2で目立つような(あるいはピックアップするような)方法がないでしょうか。 よろしくお願いします。

  • excel vba データリストからの抽出

    excel vbaで、以下のような事をしたいと思っています。 【sheet1】データ   A  B C D E  1 あ い う え お 2 か き く け こ 3 あ き く せ そ 4 さ  し す せ そ 5 あ し す け こ 【sheet2】検索 A1を検索条件セルにする ※検索キーはsheet1のA列に登場するテキストのみです。   A  B  C  D  E 1 あ い う え お 2   き く せ そ 3    し す け こ 4 5 ※A2、A3に"あ"と表示されてしまってもよいのですが、  出来れば表示なしが望ましいです。 sheet2のA1は、sheet3に、sheet1のA列に登場したテキストをデータとしてリストしておき、 「データの入力規則」でリストから選択できるようにしようと考えています。 説明が下手でうまく伝わらないかも知れませんが、うまいやり方があれば どうかご教示下さい。 宜しくお願い致します。

  • エクセルにてこのような抽出はできますか?

    エクセルにてこのような条件抽出(?)はできますでしょうか? 例えば下記のような売上データーがあります。 A列 売上月(4月~3月) B列 顧客名 C列 商品名 月別の売り上げデーターが毎日記入されます(1年間)。 1万行以下には全顧客名のリストが記入されています(例えば500社)。 この全顧客500社の内、売上の上がっていない顧客はどこなのかを抽出することはできますでしょうか? 売上データーを毎日記入することで、売上げのある顧客は分かりますが、売上げの上がっていない顧客はどこなのかを調べたいのです。 全顧客500社-4月売上顧客=4月売上げの上がっていない顧客一覧 こんなイメージです。 月単位で未売上の顧客を調べたいのです このようなことは可能でしょうか? どなたかご知恵を拝借できましたら幸いです。 ※1年を通して月別の売上げを記入します。   A     B    C 1   月  顧客名  商品名   2  4月  顧客A  商品A 3  4月  顧客B  商品B 4  4月  顧客C  商品C 5  4月  顧客D  商品D   ・    ・    ・   ・    ・    ・   ・    ・    ・   ・    ・    ・ ------------------------- ※1万行以下に全顧客データーを記入します(必ずしもここでなくても別シートでも問題ありません) 10000 顧客A 10001 顧客B 10002 顧客C 10003 顧客D 10004  ・ 10005  ・ 10006  ・ 10007  ・ 10008   よろしくお願い致します。

  • VBAで2つのリストボックスの連動表示に関して

    VBAで2つのリストボックスの連動表示に関して、 ご教授、お願い致します。 VBAで色々、試行錯誤しております初心者です。 今回の質問ですけど、参考にWebで調べたのですが 分からなく、どのようにしたらいいのか 教えて頂けないでしょうか。 (例 リスト表) Sheet1(取引名簿)    (No.) (取引番号) (取引社名)                      A列    B列     C列    ・・・                1   1   A-0001     A社    ・・・             2   2   B-0001 B社     ・・・ 3   3   A-0002 C社    ・・・ 4   4   A-0003  D社     ・・・ 5   5   B-0002 E社    ・・・ ・ ・ ・ Sheet2(顧客名簿) (No.) (取引社名) (顧客名) A列    B列     C列   ・・・ 1   1 A社     顧客1 ・・・ 2   2     B社 顧客2  ・・・ 3   3    A社   顧客3 ・・・ 4   4    C社   顧客4 ・・・ 5   5 A社 顧客5 ・・・ ・ ・ ・ 上記、例題 2つのシートリストを条件に合わせ、2つ目のリストボックスに 連動表示させたいのですが処理できるように教えて頂けないでしょうか。 ※ ListBox1 に Sheet1 の B列(取引番号) と C列(取引社名) を表示し、 ListBox2 には、 Sheet1 で選択した取引会社に連動し、 C列の顧客(条件一致者)全員を ListBox2に表示したいのです。 (例) ListBox1でSheet1の中からA社を選択したとします。 連動でListBox2には、A社の顧客1、顧客3、顧客5が表示するように出来ないでしょうか。 説明下手で申し訳ありませんが宜しくお願い致します。

  • エクセルで、IDリスト参照してから名前を書き出す方法は?

    エクセルにて、IDを管理した1000人分の表があります。 (シート1とします) A列 B列 0001 山田 0002 渡辺 0003 柴山 0004 森 ・ ・ 1000 木下 一方シート2には来訪者リストがあり、IDだけがわかっています。 (シート2) A列 B列 0006 0025 0036 ・ ・ ・ 0921 0986 シート1を参照し、このシート2の来訪者リストB列に名前を振る方法がありましたら教えてください。

  • エクセル2010 同じグループの顧客を表示

    エクセル2010での質問です。 顧客リスト約5000件の中から同じグループに該当する 顧客を表示したいのですがうまくいきません。 Sheet1のA列に顧客番号、B列に名前、C列にグループ番号が あります。 Sheet2のA1にグループ番号を入力すれば B1に名前、C1に顧客番号が表示できる方法を教えてください。 よろしくお願いします。

  • 該当リストにない行を削除させる方法

    以下のようなファイル構成で、ワークシート2に記載した該当リストを参照して、該当しない行をワークシート1から削除させるマクロを教えて下さい。 【ワークシート1】 A列 B列 C列 ・・ X列 1組 山田 10 ・・ 10 1組 田中 10 ・・ 15 2組 鈴木 15 ・・ 20 3組 高木 20 ・・ 15 【ワークシート2】 山田 鈴木 ↓↓↓ 実行結果 A列 B列 C列 ・・ X列 1組 山田 10 ・・ 10 2組 鈴木 15 ・・ 20

  • エクセルでのデータ抽出方法について

    Excel2010で、IDと氏名を結びつけたリスト表を作成しようと考えています。 例として以下のようなエクセル表があったとします。 ※列A・列B→ID及び氏名   列D・列E→列A・列Bから抽出したい情報        【列A】    【列B】    【列C】    【列D】    【列E】      【行1】   11111   山田 太郎    -      11119    (※「山田 九郎を」入れたい) 【行2】   11112   山田 二郎    -      11112    (※「山田 二郎を」入れたい)     【行3】   11113   山田 三郎    -       11118    (※「山田 八郎を」入れたい)     【行4】   11114   山田 四郎    -       11114    (※「山田 四郎を」入れたい) 【行5】   11115   山田 五郎              【行6】   11116   山田 六郎                【行7】   11117   山田 七郎           【行8】   11118   山田 八郎 【行9】   11119   山田 九郎         : D列は既に入力済み(確定)で、IDが割り振られている人の氏名をE列に挿入したい場合の エクセルの操作方法について教えていただきたく、よろしくお願いします。

  • Excelでのデータ抽出

    Excelで外部結合風のデータ抽出を教えてください。 シートAとシートBに表形式のデータがあり、 シートAのA列の値とシートBのA列の値が一致するシートBの 行を抽出するのが目的です。 具体的には次のような感じです。 シートA         シートB ----------------  ---------------- A列 | B列 | C列     A列 | B列 | C列 ----------------  ---------------- 2  | 2B  | 2C      1  | 1BB | 1CC ----------------  ---------------- 4  | 4B  | 4C      2  | 2BB | 2CC ----------------  ---------------- 6  | 6B  | 6C      3  | 3BB | 3CC ----------------  ---------------- ↓ シートB ---------------- A列 | B列 | C列 ---------------- 2  | 2BB | 2CC ---------------- 以下以外の方法がありましたら教えてください。 1)アクセスに両シートのデータを取り込み、2つのテーブルを外部結合で連結させる。 2)マクロで二重ループをつくり、A列が一致した行を取り出す。 よろしくお願いします。

専門家に質問してみよう