人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルマクロに関する質問です。A行に10000件のデータがあるとします。
このデータを20件づつ3列に振り分けたいのですが、方法を教えて下さい。

加工前
■A列 B列 C列
1
2


10000

加工後
■A列 B列 C列
1 21 41
2 ・ ・
・ ・ ・
20 40 60
61 81 101
・ ・ ・
・ ・ ・
・ ・ ・
10000

●質問者: WATANABE
●カテゴリ:コンピュータ
✍キーワード:エクセル データ マクロ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● SALINGER
●60ポイント ベストアンサー

Sheet1のデータをSheet2に並べ替えるマクロです。

Sub Macro()
 Dim i As Long
 Dim j As Integer
 j = 1
 For i = 0 To 499
 Sheet1.Range("A" & i * 20 + 1 & ":A" & i * 20 + 20).Copy (Sheet2.Cells(Int(i / 3) * 20 + 1, j))
 If j = 3 Then
 j = 1
 Else
 j = j + 1
 End If
 Next i
End Sub
◎質問者からの返答

ありがとうございます。希望通りです。


2 ● a2gi
●10ポイント

こっちの方が短くできますね。

Sub Macro2()
 For i = 1 To 10000
 data = Cells(i, 1).Value
 Cells((i - 1) Mod 20 + 1 + 20 * Int((i - 1) / 60), Int(((i - 1) Mod 60) / 20) + 1).Value = data
 Next i
End Sub

3 ● a2gi
●10ポイント
Sub Macro1()
 a = 1
 b = 1
 c = 1
 For i = 1 To 10000
 data = Cells(i, 1).Value
 hantei = (i - 1) Mod 60
 If hantei < 20 Then
 Cells(a, 1).Value = data
 a = a + 1
 ElseIf hantei < 40 Then
 Cells(b, 2).Value = data
 b = b + 1
 Else
 Cells(c, 3).Value = data
 c = c + 1
 End If
 Next i
End Sub
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ