[[20150322171936]] 『ある範囲を選択し列に直す方法』(さかと) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ある範囲を選択し列に直す方法』(さかと)

初歩的な質問かもしれません

さっそく質問なのですが

A列の1〜7行目を列に直しA1のデータはA1、A2のデータはB1、A3のデータはC1のようにしたいです。
更に、A列の8〜14行目をA2、B2、C2とA列の1〜7行目であったデータの下の行に並べたいです。

図にすると
1
2
3
4
5
6
7
8
9
10
11
12
13
14

1 2 3 4 5 6 7
7 8 9 10 11 12 13 14
のようにしたいです。

データ量が多く並べ替えを正確に素早く行いたいのでどうかご指南お願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 関数でやるのであれば、
 B1=OFFSET($A$1,MOD(COLUMN(A1)-1,7)+(ROW(A1)-1)*7,0)
 をB1:H2 にコピーして、再度範囲コピー後に、「形式を選択して貼り付け」で「値」にした後
 A列を削除でどうでしょうか。
(Mook) 2015/03/22(日) 17:53

Sub test()
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 1
b = 1
c = 1
Do Until a = 3
Do Until b = 8
Cells(15 + a, b).Value = Cells(c, 1).Value
c = c + 1
b = b + 1
Loop
b = 1
a = a + 1
Loop
End Sub

(スズメ) 2015/03/22(日) 18:00


解答ありがとうございます!!!
皆さんの方法で試してみます!!
(さかと) 2015/03/22(日) 18:01

 解決後ですが、

 マクロのコードはインデントを付けた方が良いですよ。
 それと、範囲の決まっている Do Loop は For Next に置き換えた方がすっきりします。
 こんな感じかな。

 Sub test()
    Dim a As Long
    Dim b As Long
    Dim c As Long
    For a = 16 To 17
        For b = 1 To 7
            c = c + 1
            Cells(a, b).Value = Cells(c, 1).Value
        Next
    Next
 End Sub

(Mook) 2015/03/22(日) 18:07


みなさんありがとうございました!
綺麗な表ができました! エクセル勉強してみます!
(さかと) 2015/03/22(日) 18:28

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.