プロが教えるわが家の防犯対策術!

いつもエクセルテクニックを学ぶために活用させていただいております。
今回はみなさまの過去の質問を見ても解決できなかったので、質問させていただきました。

■使用しているデータ
 営業スタッフ向けに顧客リストを作成しています。
 私のほうで、全営業スタッフの担当する顧客名、業種、購入額の一覧を作りました。

 【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に自分の名前を入力してください」と言うだけで
リスト化できる機能についてどなたかご教授いただければ幸いです。
 

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/24 15:41

シート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
ご参考程度に。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/24 15:57

ISERROR関数があります。


=IF(ISEROR(SMALL(シート1!$E:$E,ROW(A1))),"",
INDEX(シート1!A:A,SMALL(シート1!$E:$E,ROW(A1)))
等の方法があります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/24 15:56

作業列を使いますが


シート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
    • good
    • 0
この回答へのお礼

hallo-2007様
早速、回答いただきありがとうございました!!
やってみたところ、無事対象者顧客が表示できました。

下へコピーしたところ、対象顧客が少ない人だと
#NUM!
という表示がでてしまうのですが・・・これは消せないものなのでしょうか??
できれば空欄になってくれると、プリントアウトしたときに
美しくてとても助かるのですが・・・。

もしご存知であれば教えていただければ幸いです。

お礼日時:2008/09/10 13:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!