【初月無料キャンペーン中】gooドクター

エクセル2000で、A1~A500までデータが縦並びに入力されています。

これを5列毎に改行して、横並びのデータに加工したいのですが、何か方法ありますか?

図解すると、、


A1
A2
A3
A4
A5
A6
A7


A500

のデータを

A1 A2 A3 A4 A5
A6 A7 A8 A9 A10
・・・・・・
A496 A497 A498 A499 A500



したいのです。

何かよい方法ありましたらお教え願います。

gooドクター

A 回答 (5件)

'直接シートをいじるのでコピーをしてから試してみてください。


Sub Macro1()
COUNTER = 0
For INP = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 5
COUNTER = COUNTER + 1
Range("A" & INP & ":A" & INP + 4).Copy
Range("B" & COUNTER).PasteSpecial Paste:=xlPasteValues, Transpose:=True
Application.CutCopyMode = False
Next INP
Range("A1").EntireColumn.Delete
End Sub
    • good
    • 12

以下のどちらかでできると思います。



(方法1)VBAでプログラムを組む
 データを1列づつ読み込んで行番号に応じて1~5列に分けてカット&ペーストする。

(方法2)関数とフィルタを使う
 B列に、1~500までの数値を入れる。
 C列に、=MOD(B1,5) (5で割った余り)を入れて以下のセルにコピー&ペースト
 オートフィルタでC列のデータが1のもののみを選択してコピーし、別シートのA列にペースト
 同様に、C列が2,3,4,0のものを選択して別シートのB,C,D,E列にペースト
    • good
    • 1
この回答へのお礼

ありがとうござました。

お礼日時:2011/10/15 23:55

VBAでやると簡単だが、関数でも出来る。


簡単な番地の計算問題だろう。
エクセルは、データを持ってくる方のセルで考えるのだ。
第1行の1列目が何処から持ってくるかを考える。
データの何番目を持ってくるのはINDEX関数だ。そういうのは勉強したのか。
(1,1)-1
(1,2)-2
(1,3)-3   略
(1,4)-4
(1,5)-5
(2,1)-6 -->(2-1)*5+1
(2,2)-7 -->(2-1)*5+2
(2,3)-8 -->(2-1)*5+3
・・
(3,1)-11  -->(3-1)*5+1
こういうルールは中学の数学ででも出てくる常識なんだ。
Sheet2
A列
a1
a2
a3
a4
a5
a6
a7
a8
・・・・
----
Sheet3のA1に =INDEX(Sheet2!$A$1:$A$100,(ROW()-1)*5+COLUMN(),)
と入れてE1まで式複写。
A1:E1を下方向に式複写。
Sheet3 A-E列
a1a2a3a4a5
a6a7a8a9a10
a11a12a13a14a15
ただし、丁寧には、データ数を超えたら空白になるような式をIF関数で加える(略)
    • good
    • 3

VBAでやると簡単だが、関数でも出来る。


簡単な番地の計算問題だろう。
エクセルは、データを持ってくる方のセルで考えるのだ。
第1行の1列目が何処から持ってくるかを考える。
データの何番目を持ってくるのはINDEX関数だ。そういうのは勉強したのか。
(1,1)-1
(1,2)-2
(1,3)-3   略
(1,4)-4
(1,5)-5
(2,1)-6 -->(2-1)*5+1
(2,2)-7 -->(2-1)*5+2
(2,3)-8 -->(2-1)*5+3
・・
(3,1)-11  -->(3-1)*5+1
こういうルールは中学の数学ででも出てくる常識なんだ。
Sheet2
A列
a1
a2
a3
a4
a5
a6
a7
a8
・・・・
----
Sheet3のA1に =INDEX(Sheet2!$A$1:$A$100,(ROW()-1)*5+COLUMN(),)
と入れてE1まで式複写。
A1:E1を下方向に式複写。
Sheet3 A-E列
a1a2a3a4a5
a6a7a8a9a10
a11a12a13a14a15
ただし、丁寧には、データ数を超えたら空白になるような式をIF関数で加える(略)
    • good
    • 2

こんばんは!


一例です。

表示したいセルに

=INDEX($A:$A,COLUMN(A1)+5*(ROW(A1)-1))

として列方向と行方向にオートフィルでコピーではどうでしょうか?m(_ _)m
    • good
    • 18

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング