プロが教える店舗&オフィスのセキュリティ対策術

支店ごとの販売状況の日報をまとめたいのですが、私ごときの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│大分類│中分類│小分類│・・・・│・・・・
と並べ替えた結果が欲しいのです。
よろしくお願いします。

A 回答 (2件)

エクセルで自動的に、指定したシートに累積してくれる操作はないと思います。


#1のご回答のように、今まで累積した最終行次の行を人間が判断して、貼り付けることになります。
初心者ということで、ふさわしくないかも知れませんが、
上記をプログラム(エクセルVBA)にやらせると、下記のようになります。
Sub test07()
m = 2 '見出しの行数
For i = 2 To Worksheets.Count 'シート枚数だけ繰り返し
MsgBox Worksheets(i).Name
Worksheets(i).Activate 'i 番目のシートを選択
Range("A1").CurrentRegion.Select 'データ領域を選択
Selection.Offset(m).Resize(Selection.Rows.Count - m).Select '見出しを除いて
Selection.Copy ' コピー
Worksheets(1).Activate '一番左のシートに
Worksheets(1).Range("A65536").End(xlUp).Offset(1, 0).Select '最終行の次行を選択
ActiveSheet.PasteSpecial '貼り付け
Next i '繰り返し
End Sub
興味があればやってみてください。
累積するシート(内容は見出しだけのシート)を挿入-ワークシートで挿入し、そのシートタブを一番左に持ってくること。
ツール-マクロ-VBEの画面で、挿入-標準モジュールで出る画面に
上記コード部分を貼り付け。F5キーを押して実行。
あとソートは人手の操作でしてください。VBAでもできますが略。
各シートの見出しを2行に仮定してますが、コードの中のm=2の部分を
実情に合わせて、m=1やm=3などに変えてください。
    • good
    • 0
この回答へのお礼

有難うございました。参考とさせていただきます。

お礼日時:2006/01/06 00:34

1.とりあえずシート1の先頭行に項目名を貼付。

2行目以降にシート2~5のデータ部分を縦に並ぶように貼り付ける。
【シート1はこんな状態】
日付│時間│大分類│中分類│小分類│・・・・│・・・・
1/3│11:02│大分類│中分類│小分類│・・・・│・・・・
1/2│08:02│大分類│中分類│小分類│・・・・│・・・・
1/5│14:54│大分類│中分類│小分類│・・・・│・・・・
1/4│12:33│大分類│中分類│小分類│・・・・│・・・・

2.シート1に出来上がった表全体を選択し、データ→並べ替え
3.「最優先されるキー」に日付、「2番目に優先されるキー」に時間を指定
4.「範囲の先頭行」はタイトルにチェック
5.OKボタン押下で出来上がり。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!