- ベストアンサー
エクセルでシートの振り分けを自動的にする方法
初心者です。宜しくお願いいたします。 業務の1日のスケジュールをエクセルで管理しております。 主にお客様との相談や打ち合わせを管理しているのですが、 (1)シート1で1日のスケジュールを入力していきます。 (列) AB CD E F (行) 日付 時間 氏名 相談内容 ※(日付、時間、氏名は入力規則を使用して入力できるようにしています。) (2)シート2以降では、氏名ごとにシートを作成して、シート1に入力すると、自動的にシート2以降へ振り分けができるようにしたいのです。 (列) AB CD E (行) 日付 時間 相談内容 できるだけわかり易く教えていただければ幸いです。 宜しくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
関数は条件該当分(例えば得意先見込み先の山田産業)データの抜き出し(別範囲や別シート)にデータセットが苦手です。 あえて関数でやるなら既出回答のように複雑な式になります。 これはご回答者のせいではなく、例えばGoogleで「imogasi方式」(私の回答分で作業列を使う方法)、長い式で出す回答が載ってます。それらは単一条件の質問なので、本質問のようにシート1の複数者全員を振り分けるのは関数では大変です。 多人数(複数在る氏名ごと)だと、作業列を使う「imogasi方式」も歯が立ちません。 もうひとつ、シート1で情報に追加があると、初めからやり直すことになります。振り分けたほうで、コメントなどを付け加えて入れていると 行がずれてしまうかもしれません。 === 言いたいことは、これを割合考えやすい方法でやるのは、VBAを使って 抜き出し+割り振りを行うことです。コードの行数は十数行ですが、VBAの背景知識が要ります。 しかし質問者はVBAの経験が無いだろうから、使えません。 === 質問者の場合は、結局何らかの人間のエクセル操作を挟まないと無理でしょう。 例えば氏名でフィルタしてその氏名シートに張り付けとか。 並べ替えて氏名+日付順でソートしたもので我慢できないかな。
お礼
詳しくアドバイスいただきありがとうございます! もう少し勉強しないといけませんね。。。 頑張ります!
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1の1行目は項目名が並んでいるとしてG列を作業列としてG2セルには次の式を入力して下方にオートフィルドラッグします。 =E2&COUNTIF(E$2:E2,E2) これでG列にはそれぞれの氏名ごとに番号が付きます。 それぞれのシートではA1セルに氏名を入力するとします。 2行目には項目名を、AB2セルには日付、CD2セルには時間、E2セルには相談内容と入力します。 AB3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(Sheet1!G:G,$A$1&ROW(A1))=0,"",INDIRECT("Sheet1!AB"&MATCH($A$1&ROW(A1),Sheet1!G:G,0))) CD3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(Sheet1!G:G,$A$1&ROW(A1))=0,"",INDIRECT("Sheet1!CD"&MATCH($A$1&ROW(A1),Sheet1!G:G,0))) E3セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(Sheet1!G:G,$A$1&ROW(A1))=0,"",INDIRECT("Sheet1!F"&MATCH($A$1&ROW(A1),Sheet1!G:G,0))) これらのシートへの入力の操作はシート名見出しでCtrlキーを押しながらシート1を除く、シート名をクリックすることで作業グループが作られますのでシート2での式などの入力がすべてのシートに同時に入力できるようになります。作業グループの解除は例えばシート1を選択することでできますね。
お礼
詳しくアドバイスいただきましてありがとうございます。 うまくできるかわかりませんが、挑戦してみます。
お礼
詳しくアドバイスいただきまして、ありがとうございます。 大変わかりやすいです!