• ベストアンサー

エクセルでシートを反映させたい

いつもお世話になっています。エクセル初心者です。 エクセル2003を使用中です。 シート1 に氏名や所属、生年月日等の基本情報があります。 シート2~13に誕生月毎に同様のデータを振り分けしたいのですが、どのようにしたら良いのでしょうか? (例 4月生シートには4月生の人のデータのみが表示される) シート1上では生年月日は誕生月と日は別々の列に入力されています。 シート1の基本情報は毎月更新されるので、できれば自動にしたいのです。 説明がわかりにくいかもしれませんが、よろしくお願いします。

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

  • ベストアンサー
  • jiji0721
  • ベストアンサー率50% (8/16)
回答No.1

自動にしたいということでマクロがいいかと思います。 Sheet1と1月生~12月生というシートがあり、 Sheet1に 氏名  所属  誕生月  日 と並んでいたとします。 Sheet1のどこでもいいので好きなところに オートシェイプで図形を作り、 図形を右クリック→マクロの登録→新規作成をクリック Sub 正方形長方形1_Click() End Sub みたいな感じで表示されるので、Sub ~ End Subの間に 下記のコードを貼り付けてみてください。 Application.ScreenUpdating = False For i = 1 To 12 Range("A1").AutoFilter Field:=3, Criteria1:=i Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _ Worksheets(i & "月生").Range("A1") Worksheets(i & "月生").Select Range("A1").Select Worksheets("Sheet1").Select Selection.AutoFilter Next Application.ScreenUpdating = True

mercury110
質問者

お礼

御礼が遅れてすみません。 ありがとうございます! 「自動」とするとやっぱりマクロですか・・・。 マクロから逃げててはいけませんよね。 頑張ります! ありがとうございました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 参考になるかどうか判りませんが・・・ ↓の画像のように勝手に表を作ってみました。 まず、元データのSheet1に作業用の列(表)を作っています。 作業列G2セルに =IF($C2=G$1,ROW(A1),"") という数式を入れ、列方向と行方向にオートフィルでコピーします。 そして、Sheet2~Sheet13は全て同じ配列だとして、 Sheet2を開いたまま、Shiftキーを押しながら、画面の下側にあるSheet見出しのSheet13をクリックします。 これでSheet2~Sheet13が作業グループ化されましたので、Sheet2だけに数式を入れればSheet13まで同じ数式が入力されます。 Sheet2のA3セルに =IF(COUNT(OFFSET(Sheet1!$F$2:$F100,,MATCH($A$1,Sheet1!$G$1:$R$1,0),,1))<ROW(A1),"",INDEX(Sheet1!A$2:A100,SMALL(OFFSET(Sheet1!$F$2:$F$100,,MATCH($A$1,Sheet1!$G$1:$R$1,0),,1),ROW(A1)))) という数式を入れ、列方向と行方向にオートフィルでコピーします。 (数式はSheet1の100行目まで対応できるようにしています) 最後にSheet見出し上で右クリック → 作業グループ解除 以上で完了です。 これで各SheetのA1セルに月の数値を入力すれば生まれ月に振り分けられると思います。 以上、長々と書きましたが 参考になれば幸いです。m(__)m

mercury110
質問者

お礼

御礼が遅くなってすみません。 ありがとうございます。 式でも何とかなるものなんですね。

関連するQ&A

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

    以前作っていたエクセルの自動シートです 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(情報原本)をコピーして別シートにして 新しく名前を付けそれぞれのボタンに記録されている基本情報(氏名・生年月日・年齢 ・目標体重)が自動的に指定されたところに入力され作成されるものを作りたいのですが 毎日それぞれ人の情報シートを作り管理していこうと思っているため ボタン管理できたらうれしいのですが 助けてください

  • 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を使ってみましたが、できなかったので教えてください。 よろしくお願いします。

  • EXCEL 元データを更新したら別シートも更新

    シート1に所属・役職・氏名のデータがあります(元データ)。 その他に所属別に分かれたシートが複数あります(データは元データの役職・氏名)。 シート1のデータを更新したら、所属別に分かれたシートの内容も自動的に更新されるというようなことはできるでしょうか? シート1の更新は人数の増減もあるし、所属、役職が変わるケースも出ててくるし、データの位置も変わるので=’sheet1’A1のような式を入れれば良いというようなものではありません。

  • エクセル2007 データ抽出(関数)について

    教えてください。エクセルシートにて郵便番号と住所が重複しているデータを抽出したいのです。 例)ある顧客の情報として、シート1のA列に、1から10までの新規顧客の氏名、B列には生年月日が入力されています。C列,D列は空白で、E列には全ての顧客(新規顧客を含みます)の氏名、F列には生年月日、G列には郵便番号、H列には住所が入力されています。このふたつの情報の中から、新規顧客データと全ての顧客データの氏名、生年月日が重複している顧客のみ、C列にその郵便番号、D列に住所を表示させたいのです。 OSはXP エクセル2007です。 困っています。よろしくお願いします。

  • エクセルでのシートの作成方法

    エクセルで入力したデータを別のシートで抽出したい。(毎月の作業で項目は同一、データ内容は異なります。) シート1に元データを入力☆会社名 社員数 資本金 決算年月日             A会社  500  40000  170331            B会社  100  50000  150331 すると、毎月自動で、 シート2にはA会社の情報☆会社名 社員数 資本金 決算年月日               A会社  500  40000  170331 シート3にはB会社の情報☆会社名 社員数 資本金 決算年月日               B会社  100  50000  150331 と、いうように表示させたい。CDE…といくつもあります。何を使えばこのようにできますか?

  • Excelで抽出

    初めまして。よろしくお願いします。 Excel2000を使っています。 例えば、 A列     B列   C列   D列 お客様番号  氏名   契約日  生年月日  :      :    :    : という表があるとし、データは2000件ほどあると 思ってください。 1行目から最終行までみて、 『同一氏名』&『同一契約日』&『同一生年月日』の ものを違うシートに表示させたいのですが、 こういうことってExcelで出来るのですか? 出来るのであれば是非教えてください。 質問するのは初めてなので お手柔らかに・・・m(__)m

  • Excelでのシート間データ反映について

    こんにちは。 仕事上でのエクセルファイル作成に行き詰ってしまったので、お知恵を拝借させて下さい。 今回作成しているファイルは、 Sheet1にはお客様に送付する宿泊確認書のフォームが、 Sheet2にはお客様の情報(名前、Tel番号など)が 入力されています。 理想としては、Sheet2に入力したデータを Sheet1のフォームに自動反映させたいのです。 単純にSheet2からSheet1にデータ反映する方法は 分るのですが、 この場合はSheet2に数百名のお客様データが入っている為、 「Sheet2の36行目のお客様分の確認書を作成したい」時の方法が分りません。 例えば、Sheet1確認書フォームの各セルに Sheet2の列を指定しておいて、 Sheet2のどの行から情報をひっぱってくるのかを Sheet1にてその都度設定する事は可能でしょうか? 何卒よろしくお願い致します。

  • シートの繰り越し

    毎月の試算表をロータスで管理していましたが、これをエクセルに移行したいと思っています。 エクセルでのシートの自動繰り越しの方法が分かりません。。。 残高の繰り越しは「=シート名!セル番地」でやりますよね? 例えば、残高をA列、繰越をC列とした試算表で、5月のシートをコピーして6月分として使いたいとします。 5月の繰越欄(C列)は「=4月!セル番地(例:A2)」となっています。 この5月をコピーするとコピーした「5月(2)」というシートの繰越欄(C列)には「=4月!A2」・・・と変わらないですよね。 これを、自動的に「=5月!A2」と変える事はできないのでしょうか? ロータスではコピーしただけで、これが自動的にできたのですが・・・

  • EXCEL マクロ シート 比較

    EXCEL マクロ でシート間のデーターをシート2を基本に比較してシート3へ結果を出す 新規・削除と表示する。 シート1       シート2            シート3 氏名  コード    氏名   コード      氏名   コード A列   B列      A     B        A     B    C 山川   1001    山川   1001      1002   谷    削除 谷    1002    空     1003      1005   海    新規   空    1003    海     1005 田    1006    田     1006 まことにお忙しいところよろしくお願いいたします。

  • エクセルのVLOOKUP関数で・・・

    3時間ほど色々頑張ったのですが、もうお手上げなので教えて下さい・・・。 エクセルでシートが2つあり、シート2から一致するデータのみをシート1に持って行きたいのです。 具体的にはシート1には「F列/カナ氏名・G列/漢字氏名・H列/顧客番号・I列/生年月日」が設定されています。 ただしH列には顧客番号が入力されていません。 シート2より生年月日をキーにして引っ張ってくる予定です。 シート1には1000件データがあり、シート2に載っている該当者が200件程ヒットする予定です。 シート2には「A列/生年月日・B列/カナ氏名・C列/漢字氏名・E列/顧客番号」が設定されています。 仮に1行目からデータが入っているものとして、シート1のH1のセルに次の式を入れました。 =VLOOKUP(I1,'シート2'!範囲,5,FALSE) 範囲には実際の範囲を指定し、5列目がシート2の生年月日なので合ってると思うのですが・・・。 エラーは#N/Aというのが出てしまいます。 何処に問題があるのか分かりません。 説明が下手かもしれませんが、分かる方教えて下さい!

専門家に質問してみよう