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

Excelで、A列に入力したデータがあります。
これを、横3列使った表に加工したいのですが、どのような方法がありますでしょうか?

例えば、A1~A5に入力されたデータを、横3×縦2の表にしたいのです。

A1     A1 A2 A3
A2     A4 A5
A3  →  
A4
A5

関数など使ってできないかと考えたのですが方法がわからず、
仕方なくA1~A3をコピー→行列を貼り付けで表を作成しました。
が、データが100個以上あるのでどうにも時間がかかってしまいます。

何か良い方法ありましたら教えてください。

A 回答 (2件)

例 B:D列にする場合


B1=INDEX($A$1:$A$100,(COLUMN()-1)+(ROW()-1)*3,1)
または
B1=OFFSET($A$1,(COLUMN()-2)+(ROW()-1)*3,0)
上記をB1:D6の範囲にコピー

注意:セルがブランクの場合、数式の結果はブランクでなく0になります。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。
どちらの式も理解できました。
今後、A列の途中途中に新規データが挿入されることがあるのですが、その度に表を作り直す手間が無くなりました。
どの関数も使ったことがなかったですが、覚えておくと色々役立ちそうです。

お礼日時:2007/12/03 15:05

こういうのは関数の問題である前に、数学のパズル的問題です


1,2,3
4、5,6
ー・・
最左列に来るのは1,4・・で差を取ると3ですね(公差)
だから4->2、5->2、6->2になるのは3で割ればよいらしいと考える。しかし4/3は1ですから2にならない。そのために
(2行ー1)*3+列番目1でやる。
それで
0+1、0+2,0+3
1*3+1、1*3+2,1*3+3
2*3+1、2*3+2、2*3+3
・・
でうまくいく。
それでセル範囲から特定のセルを取ってくるのはINDEX関数なので
Sheet1にデータがあるとして
Sheet2のA1に
=INDEX(Sheet1!$A:$A,(ROW()-1)*3+COLUMN())
とします。
第二引数に上記の(行ー1)*3+列の式を使いました。
A1の式をC1まで式を複写。
A1:C1の式を下方向に式を複写、で
    • good
    • 0
この回答へのお礼

大変にわかりやすい説明をありがとうございました。
パズル的なものを解いていくのって、回答がわかったときスッキリしますね。
式としてはNo.1の方とほぼ同じなので、回答順にポイントをつけさせていただきます。
失礼かとは思いますが、どうぞご了承ください。

お礼日時:2007/12/03 15:08

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

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


おすすめ情報