Excelのデータの並べ替えは(データ→並べ替え)で出来ますよね。
ところが一枚のシートにデータが入りきれず、複数のシートになった場合、
どのようにデータの並べ替えを摺るのでしょうか教えてください。
宜しく、お願いいたします。

A 回答 (4件)

ピポットを使ってデータの参照時に複数のワークシートを指定してみるというのはどうでしょうか。

    • good
    • 0

もしどなたからも(VBAを使わない)エクセルだけでの解答が出なければご参考にしてください。


sheet1のA列のデータ数+SHEET2のデータ数が6万数千の
エクセルの許容行数を越えていると言うことでしょうか。
それだと下記はだめですが、SHEET1のデータ数+SHEET2
のデータ数<エクセルの許容行数と仮定して述べます。
大型コンピュターのバッチ・プログラムでよく使ったマージの
ロジックです。ソート結果をSHEET1のB列にセットしています。
SHEET1のA列とSHEET2のA列はエクセルのソートをして後
最終行の下のセルにowariといれ、下記を実行してください。
6万数千のエクセルの許容行数を越えているときは、下記の
CELLS(I、2)の3箇所のところをディスクファイルに書き出だせば、
目的は達せられます。
Sub sort1()
x = 1 ’sheet1のスタートは第1行から
y = 1 ’sheet2のスタートは第1行から
i = 1 ’sheet1のソート後のデータのセットは第1行から
'------------
p1:
If Worksheets("Sheet1").Cells(x, 1) ="owari” Then
'cells(x,1) はSHEET1のA列x行を表す
Worksheets("Sheet1").Cells(x, 1) = 99999999
End If
If Worksheets("Sheet2").Cells(y, 1) ="owari" Then
'cells(y,1) はSHEET2のA列y行を表す
Worksheets("Sheet2").Cells(y, 1) = 99999999
End If
'---------等しい時
If Worksheets("Sheet1").Cells(x, 1) = Worksheets("Sheet2").Cells(y, 1) Then
If Worksheets("Sheet1").Cells(x, 1) = 99999999 Then GoTo owari
Worksheets("Sheet1").Cells(i, 2) = Worksheets("Sheet1").Cells(x, 1)
'cells(i,2) はSHEET1のB列 i 行を表す
i = i + 1 '直下の行にセットする
x = x + 1 '直下の行を見る
Else
'--------SHEET1が小
If Worksheets("Sheet1").Cells(x, 1) < Worksheets("Sheet2").Cells(y, 1) Then
Worksheets("Sheet1").Cells(i, 2) = Worksheets("Sheet1").Cells(x, 1)
i = i + 1
x = x + 1
Else
'--------SHEET2が小
Worksheets("Sheet1").Cells(i, 2) = Worksheets("Sheet2").Cells(y, 1)
i = i + 1
y = y + 1
End If
End If
GoTo p1
owari:
End Sub
    • good
    • 0

Excelだけで行うとすると、


(1)元の複数のシートをシート単位にソートしてしまいます。
(2)データ量と、どのようなデータか分かりませんが、例えばソートキーが1万未満、1万番台、2万番台・・・
   という感じで元のシートから別シートに集めて、そのシートを再度ソートしたらどうでしょうか。

10万件程度なら必要なシートは2枚で、2分割する位置を決めれば1回この操作を行えば可能だと思いますが・・・
    • good
    • 0

ACCESSを利用して、並べ替えたデータをシートにするのが


簡単と思います。
    • good
    • 0

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


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ