• ベストアンサー

Excelの同一フォーマット(アンケート)のシートを別シートにまとめたい。

Excelで同じフォーマットの日報をまとめたいのです。何件か似たようなご質問もあったように思ったのですが、ちょっとわかりませんでした。 どうぞ教えてください。 できればExcelの機能で出来ればと思っています。 もし他の方法なら、それでも構いません! ○ファイルは一つで、シートが分かれています。 ・・・シート1~シート30 ○シートのフォーマット セルD2に「日付」、F2に「場所」 C4、C6、C8、C10、C12に日報の内容が入っています。 ○この各シートをシート31に一括まとめたいのです。 集計等は必要ありません。 ○まとめるシートのフォーマットイメージ     日付│場所│C4│C6│C8│C10│C12 シート1 5/2│・・│・・・・ シート2 5/3│・・│・・・・  ・  ・  ・ シート30 すいません。どなたか教えていただけますか。 どうぞよろしくお願いします。  

  • yuzoy
  • お礼率100% (3/3)

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

  • ベストアンサー
  • rio_d
  • ベストアンサー率47% (71/149)
回答No.1

こんにちは。 indirectワークシート関数を使用します。 下記の手順でやってみましょう。 (1)A2~A31に「シート1」~「シート31」と入力します。必ずシート名と合致させて下さい。 (2)B1~H1に「日付」「場所」「C4」…と入力します。 準備おわり。 (3)B2セルに、下記関数を入力します。  「=indirect($a2 & "!D2")」 (4)C2セルに、下記関数を入力します。  「=indirect($a2 & "!F2")」 (5)D2セルに、下記関数を入力します。  「=indirect($a2 & "!" & B$1)」 一行終わり。 (6)D2セルの内容をE2~H2にコピーします。 (7)B2~H2セルの内容を、下の行にがーっとコピーします。 できあがり。 indirectワークシート関数とは文字列で指定したセルの値を参照する関数です。 (3)では、  「=indirect($a2 & "!D2")」 →「=indirect("シート1" & "!D2")」 →「=indirect("シート1!D2")」 ということをやっています。

yuzoy
質問者

お礼

ありがとうございます! 出来ました。文字列が多いシートであるため、非常に役立ちました。 (3)と(4)の作業を行ない、進めたのですが、 ちなみに (5)の「"!" & B$1」というのは、どういうことを行なっているのでしょうか。

その他の回答 (2)

  • rio_d
  • ベストアンサー率47% (71/149)
回答No.3

こんばんは。遅くなりました。 すみません。(5)、間違っていましたね(汗 下記に読み替えてください。 (5)D2セルに、下記関数を入力します。  「=indirect($a2 & "!" & D$1)」 ちなみに(5)では、  「=indirect($a2 & "!" & D$1)」 →「=indirect("シート1" & "!" & "C4")」 →「=indirect("シート1!C4")」 ということをやっています。 混乱させてしまいましたことをお詫び申し上げます。

yuzoy
質問者

お礼

ありがとうございました!

  • at121
  • ベストアンサー率41% (85/206)
回答No.2

動作 日報シート Sheet1 から Sheet数字 まで 集計シート にデータをコピーします 事前設定  日報シート名 = "*Sheet*#*"   日報シート名が シート11 なら "*シート*#*"          # は数字  * はワイルドカード  集計先シート を選んでから操作するなら    Set 集計先シート = ActiveSheet を有効しておく  集計先シートの シート名を固定するなら   'Set 集計先シート = Sheet("集計シート") の'を外す  見出し =    / 区切りで適当に設定 注意 集計先シート は毎回クリアします マクロ VBエディタを開き 標準モジュールを追加して  標準モジュールに貼り付け   ↓     ↓ Sub 日報シートのデータを集める() 日報シート名 = "*Sheet*#*" '日報シート名に併せて検討 * Set 集計先シート = ActiveSheet 'Set 集計先シート = Sheet("集計シート")' With 集計先シート .Cells.Clear '集計先シートをクリア 見出し = "日付/場所/c4/c6/c8/c10/c12" 見出し = Split(見出し, "/") データ設定行 = 1 .Range(.Cells(データ設定行, 1), .Cells(データ設定行, 7)) = 見出し For Each シート In Worksheets If 集計先シート.Name <> シート.Name Then If シート.Name Like 日報シート名 Then '集計対象シート名を確認 データ設定行 = データ設定行 + 1 '日報データ読み出し 日報データ = シート.Range("D2").Value & vbTab & _ シート.Range("F2").Value & vbTab & _ シート.Range("C4").Value & vbTab & _ シート.Range("C6").Value & vbTab & _ シート.Range("C8").Value & vbTab & _ シート.Range("C10").Value & vbTab & _ シート.Range("C12").Value 日報データ = Split(日報データ, vbTab) 'データ書き出し .Range(.Cells(データ設定行, 1), .Cells(データ設定行, 7)) = 日報データ End If End If Next End With End Sub

yuzoy
質問者

お礼

今回は#1のやり方でさせていただきました。 また必要なときもあると思います。参考にさせていただきます。 ご連絡ありがとうございました。

関連するQ&A

  • エクセル あるシートから別シートへ貼り付け

    どなたかお助け下されば、大変ありがたく存じます! エクセルに関する質問です。 コピー元エクセルシートのセル(B2、B3、B4、B5・・・B100)に数値が入力されています。 その値を、別シートのセル(C2、C25、C48、C71、・・・C2256、C2279)に貼り付けたい場合、 何か良い方法は無いものでしょうか。 貼り付け先となるセルは、等差数列的に決まっており、 フィルタでその指定セル(C2、C25、C48・・・C2256、C2279)を抽出することも可能です。 単純に、貼り付け先セルへ、C2セル「=コピー元シート!$B2」と入力すると、 C25「=コピー元シート!$B25」、C48「=コピー元シート!$B48」・・・となってしまい、 うまく貼り付けることが出来ません。 理想は、 C2セル「=コピー元シート!$B2」、C25「=コピー元シート!$B3」、 C48「=コピー元シート!$B4」、・・・、C2279「=コピー元シート!$B100」としたいのです。 (コピー元)→(貼り付け先) B2 → C2 B3 → C25 B4 → C48 B5 → C71 B6 → C93 ・・・ B99 → C2256 B100 → C2279 何か良い方法があればお教え願えますでしょうか。 どうかよろしくお願い申し上げます!!

  • Excelの同一フォーマットのシートを別シート(日付順)にまとめたいんです。

    支店ごとの販売状況の日報をまとめたいのですが、私ごときのExcel初 心者では理解不能です。ご指導のほどよろしくお願いします。 できればExcelの機能で出来ればと思っています。 accessの方がよいのであればそちらでもかまいません。 ○同一Book内でSheetが4つあります。 Sheet2(西東京市)のフォーマットが   日付│時間│大分類│中分類│小分類│・・・・│・・・・   1/3│11:02│大分類│中分類│小分類│・・・・│・・・・ Sheet3(小金井市)のフォーマットが   日付│時間│大分類│中分類│小分類│・・・・│・・・・   1/2│08:02│大分類│中分類│小分類│・・・・│・・・・ Sheet4(武蔵野市)のフォーマットが   日付│時間│大分類│中分類│小分類│・・・・│・・・・   1/5│14:54│大分類│中分類│小分類│・・・・│・・・・ Sheet5(三鷹市)のフォーマットが   日付│時間│大分類│中分類│小分類│・・・・│・・・・   1/4│12:33│大分類│中分類│小分類│・・・・│・・・・ であるとき Sheet1(支店合計)には4つの支店の日付・時間順   日付│時間│大分類│中分類│小分類│・・・・│・・・・    1/2│08:02│大分類│中分類│小分類│・・・・│・・・・ 1/3│11:02│大分類│中分類│小分類│・・・・│・・・・ 1/4│12:33│大分類│中分類│小分類│・・・・│・・・・    1/5│14:54│大分類│中分類│小分類│・・・・│・・・・ と並べ替えた結果が欲しいのです。 よろしくお願いします。

  • フォーマットが違うシート毎に算出されたSUMの総合計を別シートに出したい

    上記の件で質問させて下さい。 各地の担当者から毎回DMの発注リストが 来るのですが、各担当者ごとに記入形式 (フォーマット)がバラバラです。 各担当者ごとの希望枚数を一括して別シートに 集計したいのですが・・・。 よろしくお願いします。 追伸 Mac版のエクセルを使っています。

  • EXCELで別シートに集計するやりかた

    エクセルで下記の様な生産日報をベースにした集計シートを作りたいのですが、いかんせん関数初心者なのでうまく出来ません。どなたか詳しい方ご教授をよろしくお願いします。 シート1 生産日報  A日付  B担当  C品目  D生産数   12/1   Aさん  製品1  200  12/1   Bさん  製品2  100  12/2   Cさん  製品1  100  12/2   Bさん  製品3  100    省略  12/31  Bさん  製品4  100  こんな感じで毎日下にどんどん増えていき1カ月で区切りの日報です シート2 生産集計表  A 製品名  B生産累計    製品1      300(←その日までに入力された製品1の生産数によって変動)  製品2      100  製品3      100  製品4      100  このように製品ごとのその日までの累計数が計算されてB列に自動で出る様な物を作りたいです。 解りにくいかもしれませんが、宜しくお願いします。

  • Excelで別sheetの参照について

    エクセルで別sheetの参照についての質問です。 画像のようにsheet1の値を参照してsheet2表示させたいのですが、これを約100件分作成したいのですがコピー&ペーストをすると参照セルがずれてしまいます。 sheet2のA1をコピーしてA4に張り付け=Sheet1!A2&Sheet1!B2&Sheet1!C2としたいのですが、A4に張り付けを行うと=Sheet1!A4&Sheet1!B4&Sheet1!C4となってしまいます。 複数行あけてペーストする場合に参照セルを1行ずつずらして参照する方法はありますでしょうか?

  • エクセル 複数シートの同一セルを別シートへ集計

    エクセルで複数sheetの同一セルを集計sheetへコピーしてきて一覧にし、集計するという作業を行なっています。 1~20のsheet(sheet数sheet名は変動します)を作り、一番右側に集計sheetがあります。 集計sheetのA5へsheet1のF10、A6へsheet2のF10・・・(内容は文字列) 集計sheetのB5へsheet1のG10、B6へsheet2のG10・・・(内容は数値) とコピーしていき、B30にはB5~B29の合計がSUM関数で入っています。 VBAで、集計sheetから左側のsheetの指定セルを一気に集計sheetへコピーしてくる方法はないでしょうか。 ただし集計sheetから左側のsheet21とsheet22は集計に入れたくないという式も教えて頂きたいです。 お時間のある方、ご教授下さい。 または別の質問で参考になるようなものがあればアドレスを教えて下さい。 説明が下手で申し訳ないですが、どうぞよろしくお願いします。

  • エクセルのマクロ(値を検索して別シートにコピー)

    エクセルで下記のマクロをご教示いただけるでしょうか。 1.Sheet1のアクティブセルの右に5つ、下に1つのセルを起点として下方向に6セル分をコピー (例)Sheet1のアクティブセルがA2だとすると、F3~F8をコピー 2.Sheet1のアクティブセルの値(yy/mm/dd形式の日付)と同じ値のセルをSheet2のA列から検索し、該当セルの右に2つ分のセルに行列を入れ替えて値のみをペースト (例)Sheet1のアクティブセル(A2)の値がSheet2のA4セルにあるとすると、Sheet2のC4に行列を入れ替えて値のみペースト 3.Sheet1のアクティブセルの値がSheet2のA列に2つ以上あれば、「同じ日付が複数あります。」というメッセージを表示

  • エクセルのCOUNTIF関数について教えてくださいm(__)m

    現在、エクセルのCOUNTIFを利用して、アンケートを集計中です。 その中で、例えば、集計(見たい)場所がC3~C472の範囲 を指定した場合には・・      =COUNTIF(Sheet3!C3:C472,"<"&50) 上記の式でOKでした。 そこで、F3~F472も同時に読ませて、その中から50未満 のデータ数を出力することとしておりますが、D、Eの列にも数 値があるものですから、      =COUNTIF(Sheet3!C3:F472,"<"&50) とはできないものですから、COUNTIFをしたい、場所を複数ヶ所 指定する方法を教えてください。 よろしくお願いします。

  • エクセルシートの保護、マクロについてお願いします!

    はじめまして。 マッサージ店の集計表をエクセルで作りました。 いろいろなスタッフが入力する為、計算式を入れたセルを消してしまったりして、 集計が狂ってしまうので困っています。 エクセル初心者なので説明がわかりにくいと思いますが、よろしくお願いいたします。 内容は、まずはシートごとに 集計、プルダウン用、1日、2日・・・31日 と分かれています。 日付シートにはプルダウンでスタッフや、コースなど選択できるようにしてあります。 集計、プルダウン用シートから各日付シートにリンクしています。 日付シートで入力するセルはセルの保護のロックを解除して、シートの保護をすれば大丈夫なのですが、 力の項目も結構数があるので、相当時間がかかりそうなのです。 マクロなど使い一気にまとめて、セルの保護のロック解除、シートの保護ができないものなのでしょうか? 説明が不十分でしたら、できる限り説明させていただきます。 是非ともよろしくお願い致します。

  • エクセルVBAに関しての質問です。

    エクセルVBAに関しての質問です。 同じフォルダ内に同形式のエクセルファイルが複数あります。そのファイルの特定のシートの中の特定の列のみをコピーして並べたいと思っています。 (1)フォルダはUSBに入れて使ったり、複数のパソコンの中で使われるので特定の場所にあるとは限りません。 (2)フォルダ名はその年度に応じて変更されます。「2009」、「2010」・・・といった具合です。 (3)フォルダ内のファイル数は常に3つで、「記録集計第1期」「記録集計第2期」「記録集計第3期」と名前を付けています。 (4)3つのファイル全てに「結果」という名前のシートがあり、そのシートのC4~AU37までのセルをコピーしたいです。 (5)C4~AU37までのセルには数値では無く、IF関数を使用して出された「◎」「◯」「△」等の文字列が入っています。 (6)コピーしたセルを「記録集計第3期」ファイルの中の「年度末結果」というシートのC2以降に並べてコピーしたいです。ただし、コピーする際に4行ずつ飛ばしてコピーしたいです。 「記録集計第1期」のC4を「年度末結果」のC2へ、C5をC6へ...... 「記録集計第2期」のC4を「年度末結果」のC3へ、C5をC7へ...... 「記録集計第3期」のC4を「年度末結果」のC4へ、C5をC8へ...... といった具合です。 このコピーにより、C2から始まって、C2=記録集計第1期のC4、C3=記録集計第2期のC4、 C4=記録集計第3期のC4ときて、年度末結果のC5には空白の列ができます。 そして、C6からまた続く訳です。 ややこしくてすみません。 (7)作業手順としては、「記録集計第3期」のファイルだけを開き、その中の「年度末結果」のシートにボタンを作って上記のVBAを動かせたらと思っています。 (8)「記録集計第1期」「記録集計第2期」のファイルは開かずにデータをコピーしたいです。 勝手なお願いで申し訳ございませんが、 お時間がございましたら、よろしくお願いいたします。

専門家に質問してみよう