初めて自分の家と他人の家が違う、と意識した時

下のような2つの表を日付順に並び替え1つの表に表示したいのですが、教えてください。
簡単な方法でお願いします。

(1) A    B     C      D    (2) H     I     J      K   
 日付  名前   金額    内容      日付  名前   金額    内容
  9/10  や    100      g       9/25  た    250      g
  9/5   か    200      g       9/15  みか   200     g
  9/30  ゆ    500      s       9/30  こ    300      s
結果
    A    B     C      D      
   日付  名前   金額    内容 
    9/5   か    200     g
    9/10  や    100     g 
    9/15  みか   200     g
    9/25  た    250     g
    9/30  こ    300      s

みたくしたいのですが。よろしくお願いします。

    9/30  ゆ    500      s 

A 回答 (2件)

こんばんは!


元データはSheet1にあり、Sheet2に並び替えて表示するとします。

一番簡単なのは手を動かして、
A1~D列最終行をSheet2のA1セルにコピー → H2~K列最終行をSheet2のデータが表示されている次の行にコピー
→ Sheet2をA列の昇順で並び替え!
とコツコツやることだと思います。

それを一気にやりたい!となればVBAで上記の操作をやれば可能です。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目が項目行で2行目以降にあるという前提です。

Sub 並び替え() 'この行から
Dim endRow1 As Long, endRow2 As Long, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
wS2.Cells.Clear
endRow1 = wS1.Cells(Rows.Count, "A").End(xlUp).Row
Range(wS1.Cells(1, "A"), wS1.Cells(endRow1, "D")).Copy wS2.Range("A1")
endRow2 = wS1.Cells(Rows.Count, "H").End(xlUp).Row
Range(wS1.Cells(2, "H"), wS1.Cells(endRow2, "K")).Copy wS2.Cells(Rows.Count, "A").End(xlUp).Offset(1)
wS2.Range("A1").CurrentRegion.Sort key1:=wS2.Range("A1"), order1:=xlAscending, Header:=xlYes
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
お礼をしたつもりでおり遅くなり申し訳ありませんん。
やはりコピーするのが一番面倒くさくないとのことですね。

お礼日時:2013/10/12 11:48

現在のファイルとは別の名前で保存して



Aの下にBのデーターを並び替えて
AからD列の幅で最後まで選択して
Aで並び替えればいい。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
お礼をしたつもりでいました申し訳ありません。
やはりコピーして並べ替えですね。

お礼日時:2013/10/12 11:49

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


おすすめ情報