• ベストアンサー

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

初心者です。宜しくお願いいたします。 業務の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/17068)
回答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

  • エクセルで各Sheetへの自動振り分け

    エクセルで次のような作業がしたいのですが相談にのってください。 Sheet1は個人データベースで A列・・氏名 B列・・クラス名 C列以降はその他の情報が続きます。 クラス名がA、B、Cの三つだと仮定して Sheet2はAクラス、Sheet3はBクラス、Sheet4はCクラスに対応させたいのです。 Sheet1のB列にクラスを入力したらその行がクラスに対応するSheetに自動入力(リンク?)させたいと考えています。 例えば Sheet1のB列に「A」と入力したらSheet2に、 Sheet1のB列に「C」と入力したらSheet4に、 自動振り分けしたいのです。 意味が分かりにくい文章ですみません。補足があればしますのでご指導お願い致します。 WindowsXP、MS Office2000で作業してます。

  • エクセル シート自動 マクロ

    以前作っていたエクセルの自動シートです http://okwave.jp/qa/q9223527.html 今回別のエクセルを作ることになり 助けてほしいのですが シート1 名簿 A1に「=TODAY()」いれ日付表示  B列 C列  D列   E列以降に非表示にして隠しておく             変更があるときにボタンで再度表示して入力する 1 氏名  ボタン1 (生年月日・年齢・基礎体重・身長・握力・など)  2 氏名  ボタン2 (生年月日・年齢・基礎体重・身長・握力・など)  3 氏名  ボタン3 (生年月日・年齢・基礎体重・身長・握力・など)  4 氏名  ボタン4 (生年月日・年齢・基礎体重・身長・握力・など)  5 氏名  ボタン5 (生年月日・年齢・基礎体重・身長・握力・など)  のみ記載がある シート2 情報原本 それぞれの項目がある C1氏名・C2生年月日・C3年齢・C4基礎体重・C5血圧など D1   D2  ・・・・  などいろいろ情報を記入する場所を作る予定 シート1 それぞれボタンを作成 ボタン1~5をそれぞれ押した時、シート2(情報原本)をコピーして別シートにして 新しく名前を付けそれぞれのボタンに記録されている基本情報(氏名・生年月日・年齢 ・目標体重)が自動的に指定されたところに入力され作成されるものを作りたいのですが 毎日それぞれ人の情報シートを作り管理していこうと思っているため ボタン管理できたらうれしいのですが 助けてください

  • EXCEL データの各シートへの振り分け

    エクセルの1枚目のシートをデータシートとして、各行に入力していきます。 各行の第1列の数字や言葉に基づいて、2枚目以降のシートに順にコピーさせる方法があるでしょうか 具体的には1枚目のシートはデータシートとして 部門 氏名 住所  人事 田村 東京 総務 太田 京都 人事 山田 大阪 2枚目のシートの名前は「人事」3枚目は「総務」で各シートに行ごとコピーさせたいのです マクロはよくわからないのと最初に開くときに面倒なので、なるべく関数で処理する方法を教えてください。

  • ExcelVBA Sheet1のデータをSheet2に並び替えるには

    OfficeExcel2003を使って従業員の業務管理をているのですが、VBAを使って下記のようなことを自動化したいと思ってます。 Sheet1のA列には上から123・・・の管理番号がふっていて、B列には業務の内容が記入されています。 C列にはその業務を行う日付が入力されており、D列~G列にはその業務を行う人の名前が1名から4名の間で入力されています。 次に、Sheet2のA列には縦に全従業員の名前が入力されており、B列以降1行目にはカレンダー状にその月の日付が振ってます。 VBAを使って、Sheet1のデータを元にSheet2の各従業員が行う業務の日付のところに該当の管理番号が自動で表示されるようにしたいのです。 ユーザーフォームを使って入力できるところまではなんとか出来るようになりましたので、そのデータを元に従業員がわかりやすいフォーマットに変換しようと思ってます。

  • Excelで条件別にシートを振り分ける方法

    初心者です。よろしくお願いします。 Excelで条件別にシートを振り分ける方法を教えてください。 名簿の管理をしています。 シート1にNoや名前を入力し、条件ごとに別シートに行ごと自動で振り分ける方法がありますか? 情報を入力するのは、シート1のみで、 シート2~6を自動で振り分けたクラス名簿という形にしたいです。 現在、以下のようにシート1を作成してます。     列A   列B   列C   行1  No  氏名   クラス  行2  1   花子    A 行3  2   太郎    C 行4  3   二朗    B 行5  4   京子    B 行6  5   史郎    B 行7  6   典子    C 行8  7   公子    A ・ ・ これを、シート2はAクラス、シート3はBクラスという具合に、Noと氏名を振り分けたいです。 よろしくお願いいたします。

  • エクセル2007:シート内のデータの自動転記

    Excle2007を使用しています。 シート1のデータをシート2に自動で転記したいと思っています。 シート1 作業件名ごとにその内容、作業者名が書いてある表。 1行ににつき作業1件 A列:日付 B列:作業件名 C列:内容 D列:作業者名 シート2 作業者ごとに従事した作業をまとめた一覧表で、ひとりにつき1ページ。 表の形式(見た目)はシート1とはまったく別のもの。 作業者ごとに空欄の表が既に作られており、 1ページ目:Aさん 2ページ目:Bさん という風に、1シートに改ページしながら全ての作業者について1ページずつ一覧表になっている。 1ページは25行を使用しており、 Aさん(1ページ目)は1~25行(Bさん(2ページ目)は26~50行)となる。 1ページ目の表のうち、シート1のデータを入れられる行は11~21行。 3件あれば3行使って残り8行は空欄ということになります 日付欄はシート2のA11~A21 件名欄はシート2のB11~B21 内容欄はシート2のD11~D21 シート2には、作業者の住所や生年月日など、シート1にない項目があらかじめ入力されている。 いつもはシート1を入力後に作業者基準で並べ替えをして印刷し、 シート2の該当する作業者のページに手打ちでデータ入力しています。 シート1のデータをシート2の該当箇所に転記するだけなので、シート1が完成した段階で シート2を自動で作れたら作業時間の短縮になると思い、考え始めました。 が、VBAに詳しくないため、どこからどう手をつけたらいいものかわかりません。 お詳しい方、お知恵をいただけましたらと思います。 不足情報等ございましたらご指摘いただけましたら補足をさせていただきますので どうぞよろしくお願いいたします。

  • シート間の行相違検証マクロ

    シート1のB列(B5:B38)に数10名の氏名を入力します。C列からM列までには数字を何個か入力します。例えば  A氏、C5には4、F5には2、M5には3、 B氏、E6には3、G6には4、 C氏、F7には4、H7には8、等です。 シート2の(A3:A36)にはシート1の氏名を入力します。B列からL列までにはシート1で入力した数字に対応した数字を入力します。例えば シート1、A氏、C5の4ではシート2、A氏の行のB列に2000、F5の2ではシート2のA氏の行のE列に1000、M5の3ではシート2のA氏の行のL列に1500、と入力します。ここで、シート2で入力した行が違っていないか。他の人の行に入力していないかの検証マクロの記述方を教えてください。尚、シート1とシート2の氏名の並びが同一の場合と、そうでないときの二通りを教えてください。よろしくお願いします。

  • Excelのデータ1行を1シートに自動転記する方法

    複数行あるExcelシートで、各行に入力されているセルのデータを、 別シートの所定の位置に配置して行く方法はありますか。 もしかしてマクロとかになりますか。 具体例を挙げますと、例えば身体測定データがあって、氏名/身長/体重がそれぞれA列/B列/C列に1人あたり1行で並んでいて、そのデータが10人分(10行)あったとすると、別に10シートが生成されて、それぞれのシートに1人分(例えば第一シートのA1セルに1人目の氏名、A2セルに1人目の身長,A3セルに1人目の体重)が書かれているようなイメージです。

  • sheet2からsheet1へのデータの飛ばし方(エクセル関数)

    Sheet1 A  B C D E (列) ―――――――――――――――――――――――― 1| 番号  氏名   所属  入社  生年月日 2| 1000  斉藤   東京  10/4  (入力箇所) sheet2 A B C D (列) ――――――――――――――――――― 1| 番号  氏名  所属  生年月日 2| 1000  斉藤  東京  1988/11/1 sheet1のE行(生年月日)にsheet2を参照し、同じ番号の人の生年月日が表示されるようにしたいのですが、どのような式(関数)を入れたら表示されるでしょうか? ほかの似たような質問の解答を見てMatchやvlookupを使ってみましたが、できなかったので教えてください。 よろしくお願いします。

  • 自動入力マクロ教えてください

    sheet1のB列に数値を入力していますデータは10行目以降に入力されています。 データが1,10.20ならsheet2のB列、2.15.35ならsheet2のC列5.40ならsheet2のD列それ以外はsheet2のE列に自動的に入力したいのですがそのマクロを教えていただけないでしょか。行はsheet1と同じ行に入力します

専門家に質問してみよう