- 締切済み
エクセル 担当ごとに自動振り分け
ご教授願います。 エクセル2003使用です。 シートが「入力」「担当無」「鈴木」「佐藤」「山田」・・・・とあります。 元のデータを「入力」シートに入力後、各担当に自動で振り分けられるようにしたいです。 元データとなる「入力」シート A B C D E F G H 1NO 担当 会社名 住所 商品名 数量 日付 金額 2 1 鈴木 ○会社 神奈川 ペン赤 100本 10/25 50万 3 2 担当無 △社 東京 ノート 200冊 10/26 10万 振り分け先となる「担当無」「鈴木」「佐藤」「山田」・・・・シート A B C D E F G H I 4 NO 会社名 住所 商品名 数量 日付 金額 結果 備考 となります。 うまく説明できないのですが ・振り分け先には見出し等を付けたい為A1~3は空欄、A4は項目名にしたいです。 ・各担当が「担当無」のシートを見て自分のやりたい案件を選択できるようにしたいです。 ・選択された「担当無」に入力されていたデータは、選択した担当のシートに反映されるようにしたいです。又、反映後は「担当無」シートから削除。 ・振り分け先シートのみにある”H列の結果”と”I列の備考”は各担当が入力するため振り分けを実行したら下端のセルに自動でデータが追加されるようにしたいと思っています。 同じような質問などを参考にし色々試したもののマクロ、数式ともに勉強始めたばかりのレベルなので応用ができずデータが重複したり、エラーばかりなってしまいます。 図々しいとは思いますが、ご教示いただければ幸いです。 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
>記入していたF社の結果・備考がE社の行に記入されてしまいます。 この部分の意味が良く判りません。 「鈴木」シートには、元々、E社の行は存在しておりませんから、F社のデータが、「担当無」シートの6行目に移動したという事なのでしょうか? もし、そうだとすれば、 >「入力」シートの担当無を鈴木に変更 という操作をされた際に、単純に「入力」シートのB8セルの値を、「担当無」から「鈴木」へと書き換えたのではなく、 「鈴木」と入力されていた「入力」シートのB9セルを切り取った上で、[切り取ったセルの挿入]機能を使って、B9セルをB7セルとB8セルの間に挿入する、という面倒な方法で行ったために、 「入力」シートのB8セルとB9セルが入れ替わり、B8セルが「鈴木」、B9セルが「担当無」に変わってしまい、 そのため、F社のデータが「担当無」シートに移動したという事ではないでしょうか? もしも、そうであれば、F社のデータを「担当無」に変更した事が原因ですから、行ごとデータを入れ替える場合以外は、[切り取ったセルの挿入]や[コピーしたセルの挿入]は行わずに、データの変更が必要なセルのデータを、直接入力し直されるか、或いは、コピー&貼付けで変更された方が宜しいかと思います。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、「担当無」「鈴木」「佐藤」「山田」・・・・シートのB2セルに、各シートごとの担当者名を入力、或いは自動表示させるものとします。 まず、「補助」という名称のシートを作成し、そのA2セルに次の数式を入力して下さい。 =IF(INDEX(入力!$C:$C,ROW())="","",IF(INDEX(入力!$B:$B,ROW())="","担当者無","")&INDEX(入力!$B:$B,ROW())&":"&COUNTIF(入力!$B$1:INDEX(入力!$B:$B,ROW()),"="&INDEX(入力!$B:$B,ROW()))) 次に、補助シートのA2セルをコピーして、補助シートのA3以下に貼り付けて下さい。 次に、担当無シートのB2セルに次の数式を入力して下さい。 =REPLACE(CELL("filename",B2),1,FIND("]",CELL("filename",B2)),) 次に、担当無シートのA5セルに次の数式を入力して下さい。 =IF(ROWS($A$5:$A5)>COUNTIF(補助!$A:$A,"="&$B$2&":*"),"",IF(INDEX(入力!$A:$J,MATCH($B$2&":"&ROWS($A$5:$A5),補助!$A:$A,0),MATCH(A$4,入力!$A$1:$J$1,0))="","",INDEX(入力!$A:$J,MATCH($B$2&":"&ROWS($A$5:$A5),補助!$A:$A,0),MATCH(A$4,入力!$A$1:$J$1,0)))) 次に、担当無シートのA5セルをコピーして、担当無シートのB5~I5の範囲に貼り付けて下さい。 次に、担当無シートのF5セルの書式設定の表示形式を[日付]にして下さい。 次に、担当無シートのA5~I5の範囲をコピーして、同じ列の6行目以下に貼り付けて下さい。 次に、担当無シートのコピーシートを、担当者の人数分作成して下さい。 そして、そのコピーシートの各シート名を、「鈴木」「佐藤」「山田」・・・・等々に変更して下さい。 その際、シート名は入力シートのB列に入力した名前と一致する様にして下さい。(例えば、入力シートのB列に入力した名前が、苗字のみの場合は、シート名も苗字のみとし、入力シートのB列に入力した名前をフルネームで入力した場合は、シート名もフルネームとして下さい) これで、各担当毎のデータが、各担当用のシートに自動的に表示されます。
補足
kagakusuki様 わかりやすくご丁寧に教えていただきありがとうございます。 無事出来ました!! しかし担当 鈴木がF社まで結果・備考を入力後、担当無のE社も自分でやろうと「入力」シートの担当無を鈴木に変更すると「鈴木」シートに反映したもののD社とF社の間に挿入されてしまい、記入していたF社の結果・備考がE社の行に記入されてしまいます。 データの量が多い為、コピーして貼り付けの作業だと半日は費やしてしまうため解決策はございませんでしょうか? 何から何まで図々しく申し訳ありません…