• ベストアンサー

エクセルでシートの振り分けを自動的にする方法

初心者です。宜しくお願いいたします。 業務の1日のスケジュールをエクセルで管理しております。 主にお客様との相談や打ち合わせを管理しているのですが、 (1)シート1で1日のスケジュールを入力していきます。 (列)   AB   CD    E     F (行)  日付  時間  氏名   相談内容 ※(日付、時間、氏名は入力規則を使用して入力できるようにしています。) (2)シート2以降では、氏名ごとにシートを作成して、シート1に入力すると、自動的にシート2以降へ振り分けができるようにしたいのです。 (列)   AB   CD    E       (行) 日付  時間  相談内容 できるだけわかり易く教えていただければ幸いです。 宜しくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 135ok
  • ベストアンサー率34% (26/75)
回答No.3

一例です。 添付資料を参照ください。 sheet1 A列に作業列を作って作業を行います。 A2 =F2&"-"&COUNTIF($F$2:F2,F2)    *COUNTIFで氏名の中で、名前が何個なるか検索をかけ番号を振る。    *各セルにコピー sheet2 sheet1と同じ表を作る。 A2 氏名-1を入力し連続データを作る。 B2 =IF(COUNTIF(Sheet1!$A:$A,$A2),VLOOKUP($A2,Sheet1!$A:$G,COLUMN(A1)+1,0),"")    *A列の文字が、sheet1A列にあるか検索をかけ、有る場合は、表から値を表示、以外は空欄。    *各セルにコピー

mahiro71
質問者

お礼

詳しくアドバイスいただきまして、ありがとうございます。 大変わかりやすいです!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

関数は条件該当分(例えば得意先見込み先の山田産業)データの抜き出し(別範囲や別シート)にデータセットが苦手です。 あえて関数でやるなら既出回答のように複雑な式になります。 これはご回答者のせいではなく、例えばGoogleで「imogasi方式」(私の回答分で作業列を使う方法)、長い式で出す回答が載ってます。それらは単一条件の質問なので、本質問のようにシート1の複数者全員を振り分けるのは関数では大変です。 多人数(複数在る氏名ごと)だと、作業列を使う「imogasi方式」も歯が立ちません。 もうひとつ、シート1で情報に追加があると、初めからやり直すことになります。振り分けたほうで、コメントなどを付け加えて入れていると 行がずれてしまうかもしれません。 === 言いたいことは、これを割合考えやすい方法でやるのは、VBAを使って 抜き出し+割り振りを行うことです。コードの行数は十数行ですが、VBAの背景知識が要ります。 しかし質問者はVBAの経験が無いだろうから、使えません。 === 質問者の場合は、結局何らかの人間のエクセル操作を挟まないと無理でしょう。 例えば氏名でフィルタしてその氏名シートに張り付けとか。 並べ替えて氏名+日付順でソートしたもので我慢できないかな。

mahiro71
質問者

お礼

詳しくアドバイスいただきありがとうございます! もう少し勉強しないといけませんね。。。 頑張ります!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

シート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を選択することでできますね。

mahiro71
質問者

お礼

詳しくアドバイスいただきましてありがとうございます。 うまくできるかわかりませんが、挑戦してみます。

関連するQ&A