• ベストアンサー

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

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

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.7

NO5です。 >実際は、Sheet2のデータ(式を入力する場所)がD21から始まります。  ⇒数式の変更は不要ですのでD21に数式を入力して下さい。

ez6zdscq
質問者

お礼

再度回答ありがとうございます。 早速やってみましたが上手くいかず、結果が#VALUE!となります。 因みにSheet2のA2~Q20、A49~Q55には他の文字データが入っており、セルを結合しているところもあります。 数式を入力したいのはD(役職列)21~E(氏名列)47です。 EXCELのバージョンは2003です。

その他の回答 (6)

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

こんばんは! VBAでの一例です。 ↓の画像で左側がSheet1で右側がとりあえず「営業」Sheetだけを表示。 Sheet2以降に所属名のSheet名で所属部署数のSheet数があるという前提です。 Alt+F11キー → 画面左下の「This Workbook」をダブルクリック → VBE画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub 所属Sheetに振り分け() 'この行から Dim i, j, k As Long Application.ScreenUpdating = False For k = 2 To Worksheets.Count j = Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Row If j > 1 Then Range(Worksheets(k).Cells(2, 1), Worksheets(k).Cells(j, 2)).ClearContents End If For i = 2 To Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row If Worksheets(1).Cells(i, 1) = Worksheets(k).Name Then With Worksheets(k).Cells(Rows.Count, 1).End(xlUp).Offset(1) .Value = Worksheets(1).Cells(i, 2) .Offset(, 1) = Worksheets(1).Cells(i, 3) End With End If Next i Next k Application.ScreenUpdating = True End Sub 'この行まで ※ Sheet1のデータが変わるたびにマクロを実行してください。 (各Sheetに古いデータがあっても構いません) 以上、参考になれば良いのですが・・・m(_ _)m

ez6zdscq
質問者

お礼

回答ありがとうございます。お礼が遅くなってすいません。 回答どおりやれば上手くいくのですが、実際は、各シートにフォーマットが定めれれており、私の低いマクロ能力では応用が利きませんでした。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

NO3です。 前回の(1)の長い判り辛い数式例です。 仮に元データはSheet1のA:C列に所属・役職・氏名、見出し行あり、 (1)Sheet2のA1に所属名は入力 (2)Sheet2のA2に以下の数式を入力、入力完了時にshift+ctrl+enterキーを同時押下、    縦横に必要分コピー    =IF(COUNTIF(Sheet1!$A:$A,$A$1)>=ROW(A1),INDEX(Sheet1!B:B,SMALL(IF(Sheet1!$A$2:$A$1000=$A$1,ROW(Sheet1!$A$2:$A$1000),9999),ROW(A1))),"") 後はこのシートを所属数コピーして、各シートのA1を所属名で変更して下さい。   

ez6zdscq
質問者

お礼

回答ありがとうございます。お礼が遅くなってすいません。 回答どおりやれば上手くいくのですが、実際は、Sheet2のデータ(式を入力する場所)がD21から始まります。 ROW(A1)のところをROW(D20)としても上手くいきません(答えが空欄になる)。 どこを変えればいいのでしょうか?

回答No.4

バージョンがないので2003として回答 案1 シート1のデータそのものは使えないか? なぜなら、オートフィルタで抽出するだけだと思うから 案2 マクロなら、オートフィルタやフィルタオプションの設定を使って記録してみるとよいと思う。 案3 その他、MSクエリを使えばマクロは不要だろうけど、2007/2010でも使えるかは不明だし、説明も厄介。 案4 数式 1行目C列~ 役職を横に並べた C2セル =SUM(C1,($A2=C$1)*1) 右へ下へオートフィル G1セル 対象の役職入力欄(縦書きに意味はない) G3セル 作業列の対象列を探す =MATCH($G$1,$C$1:$E$1,0) G5セル その役職の人数 =MAX(INDEX(C:E,,G3)) H2セル 対象の人の行番号 =IF(ROW()-1>$G$5,"",MATCH(ROW()-1,INDEX($C:$E,,$G$3),0)) 下へオートフィル I2セル =IF($H2="","",INDEX(A:A,$H2)) 右へ下へオートフィル 罫線などは 条件付き書式で整える G列からJ列まで切り取って別シートへ貼り付け

ez6zdscq
質問者

お礼

回答ありがとうございます。お礼が遅くなってすいません。 案1は、シートにフォーマットが定めれれており不可。 案2は、私も考えましたが保留中です(部署名もころころ変わりメンテナンス面から難)。 案4は、上司からコピペ作業は避けるよう言われているため、各シートにダイレクトに出力できるよう試してみます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

>シート1のデータを更新したら、所属別に分かれたシートの内容も自動的に更新されると >いうようなことはできるでしょうか?  ⇒可能です。   (1)長く判り辛い配列数式⇒処理が重たい、リアル表示が可能   (2)イベント対応マクロ(VBA)⇒マクロ知識が必要、リアル表示が可能   (3)「フィルタオプションの設定」⇒エクセル既存操作で可能、リアル表示できない   お勧めは(3)が容易です、自動反映はできないが如何でしょうか。

ez6zdscq
質問者

お礼

回答ありがとうございます。 私も(3)を提案したんですが上司に否決され困っていたところです。 (1)、(2)の具体的方法を教えていただけるとありがたいのですが・・・

noname#158634
noname#158634
回答No.2

シート1には常に全ての元データがあることに変化は無いんですよね? それならVLOOKUP使えばいいんじゃないですか?

ez6zdscq
質問者

お礼

回答ありがとうございます。 具体的にはどうやるのでしょうか? VLOOKUPではピンときません。

  • yasuto07
  • ベストアンサー率12% (1344/10625)
回答No.1

厚さ3-5センチある、マクロをしっかり読み解いて、マクロを組めれば可能です。 うちの会社で、使っているエクセルの表は、退職した、職員が作っていきました。 元表から、名前を読み込んで、違う表に、表示が出来てきます。

ez6zdscq
質問者

お礼

回答ありがとうございます。 具体的にはどうやるのでしょうか? コードを教えてくれるとありがたいのですが・・・

関連するQ&A

  • 別のブックから今のシートに自動更新

    元データ(ブックAシート1)を更新するたび 条件にあったデータを 別ブックのシートに自動的に抽出したいのですが ブックBを開いたらブックAが開きシート1の抽出をブックBシート1にコピーしたいのですがVBAコードを教えてください。 ◇ブックAシート1◇ ※元データ  A      B     C     D     F 1 氏名 役職 部署 年齢 移動時期      2 山田 社員 開発 45  未調整 3 田中 社員 人事 42  4/1~ 4 鈴木 派遣 企画 30   5 高橋 役員 人事 50  未調整 6 坂野 社員 企画 33  未調整   7 井上 派遣 企画 29  未調整 ◇ブックBシート1◇ ※部署が人事で移動時期が未調整の人のみ抽出  A      B     C     D    F 1 氏名 役職 部署 年齢 移動時期  2 高橋 役員 人事 50  未調整 説明が不十分で伝わりにくいかと思いますが よろしくお願いします。

  • エクセルで複数の条件を抽出し自動的に別シートに反映する方法を教えてください。

    こんばんは。教えてください。 元データ(sheet1)を更新するたび 2つの条件にあったデータを 別シートに自動的に抽出したいので 適した関数がありましたら教えてください。 ◇シート1◇ ※元データ  A      B     C     D     F 1 氏名 役職 部署 年齢 移動時期      2 山田 社員 開発 45  未調整 3 田中 社員 人事 42  4/1~ 4 鈴木 派遣 企画 30   5 高橋 役員 人事 50  未調整 6 坂野 社員 企画 33  未調整   7 井上 派遣 企画 29  未調整 ◇シート2◇ ※部署が人事で移動時期が未調整の人のみ抽出  A      B     C     D    F 1 氏名 役職 部署 年齢 移動時期  2 高橋 役員 人事 50  未調整 補足 ・元データ(シート1)はこれからもデータを追加するので  その度、シート2、シート3もそれぞれ自動で反映されるようにした いです。 ・マクロ、VBAは知識がないので  関数で作成したいです。 ・できるだけエラー(#N/Aなど)表示されないようにしたいです。 説明が不十分で伝わりにくいかと思いますが よろしくお願いします。

  • Excelのピボットデータを別シートに反映するには

    ピボットデータを別のシートに普通のデータとして 自動反映させる式ってあるのでしょうか? 教えて下さい!お願いします!

  • エクセル2013 シートのデータ読み込みで

    エクセル2013 あるBookにシートが複数枚あります。 各シートのL1に氏名が入力されていたら、他のセルのデータを氏名とともにシート40にある幾つかのセルに読み込みます。 氏名が入力されていないと、シート40の氏名その他のデータが「0」になってしまいます。 氏名が入力されていない場合は、シート40のセルが「0」ではなく「空白」にしたいのですが 方法を教えてください。

  • 複数のシートを1つのシートに統合。随時更新も

    初心者の質問で申し訳ありません。 複数のシートをひとつのシートに統合して、 元の複数のシートを更新すると自動的に統合したシートも更新されるようにしたいのです。 なお、複数のシートを統合したものは並びかえたいと思っています。 並び変えた状態のまま更新はされていくものでしょうか? お手数ですが、よろしくお願いします。

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

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

  • Excel 複数条件該当データの別シート表示

    Excelで、2つの条件に該当するデータのみ別シートに表示させる方法を教えてください。 Sheet1には、A列:地区 B列に所属 C列には氏名の表があります。 Sheet2に、該当する条件のものだけを表示させるようにしたいのです。 (たとえば、地区=東京かつ所属=総務部) この条件は、Sheet2のD列以降で指定する欄を設けたいと考えています。 Sheet1のデータ A列   B列   C列   地区  所属  氏名 東京  経理部 山田 大阪  経理部 松本 東京  総務部 加藤 よろしくお願いいたします。

  • エクセル・別シートに集計

    他の方のものを見ても自分に当てはめることができす、質問させて頂きます。 エクセル2010を利用しています。初心者です。よろしくお願いします。 同じエクセルブックにデータのシートが3枚あり、その内容をまとめて抽出させるシートを同じブック内に作成したいです。どなたか方法を教えていただけないでしょうか?? シート3枚のデータの合計を、○のついたセルを都道府県別に数え、データが更新されれば集計も更新できるようにしたいです。 (ちなみに前任者が作成した同じようなシート(別データを集計)は、集計シートにデータの最新番号を入力するセルがあり、そこに最新のデータ番号入力すると、データが反映されるようになっていました。同じにできなくてもよいです。) データの内容は「データ番号」「氏名」「住所」「都道府県」「電話番号」・・・「○or空欄」といった感じです。 同じ様な質問をたくさん閲覧したのですが、自分のデータに当てはめることができませんでした。 何卒よろしくお願いいたします。

  • シート内のピボットテーブル 全てを更新

    1つのシートにページに複数のピボットテーブルデータがあるのですが 更新ボタンを押すだけで、全てのピボットテーブルデータを更新したいです。 (元データは全て別です) よろしくお願いします。

  • Excel データを各シートへ自動振り分け(各シート、元データと連動)

    こんばんは。 マクロもVBAもチンプンカンプンの私が、色々調べ挑戦したのですが・・・ 頭がパンク状態。 自分がやりたい事も上手く伝えられてるか、不安ですが宜しくお願いします。m(__)m <ファイルの状況> Excel2003使用 Sheet1  コードNo.+勘定科目が入力されているSheet Sheet2  全ての勘定科目のデータが入力されているSheet      ※新しい情報は、随時このSheetに入力 ◎勘定科目ごとのSheet数は、月(年)によって異なります <やりたい事> ※画像参照(見にくかったら、ごめんなさい) 1.「更新場所」のデータを勘定科目ごとに自動振り分けしたい。    ※Sheetごとに合計も出てると理想 2.「更新場所」に新しいデータを入力すると、振り分けられた各Sheetのデータも自動更新される。(元データと各Sheetが連動されてる。) <参考にしたサイト> 【A】 http://www4.ocn.ne.jp/~yy3/Sub61.html 【A】のサイトのプログラムを「ExcelのVisual Basic Editor」を開き貼り付け、「データを各シートに振り分ける」までは出来たのですが・・・ 振り分けられた各シートを見ると、合計が出てないんです。 それは単純に【A】のサイトのプログラムの中には、「各シートの合計値を求める」という 指示のプログラムが入っていないからだと考えました。(素人の考えです。) <やりたい事>の1の各Sheetで合計値を求める事と、<やりたい事>の2が出来ていないので、【A】のサイトのプログラムに・・・ 以下のプログラムを追加すると、私の目的にあったプログラムが出来る?と思ったのですが、出来ますでしょうか? 1.「振り分けられた各Sheetの合計値を求める」という指示 2.「更新場所に新しいデータを入力すると、振り分けられたSheet内のデータが自動更新」されるという指示 また、【A】のサイトを元に各Sheetに振り分けると、一番最後に「合計」というSheetが登場するのですが・・・ 「合計」のSheetを見ても#REFと表示されているだけで、なんの為にあるSheetなのか、よく分かりません。 「合計」のSheetを見るまでは考えていませんでしたが、「合計」のSheetに各Sheetの 勘定科目・支出・収入の合計金額が表示されると、とても理想的です。 マクロもVBAも全然分からないのに、要望だけ沢山あってすみませんが、宜しくお願いします。 P.S 【A】サイトより私の目的にあったプログラムがあったら、【A】サイトのプログラムにこだわる理由はありません。 色々調べてこれがいいのかな?と思っただけですので・・・ 宜しくお願い致します。

専門家に質問してみよう