- ベストアンサー
EXELで複数行を1行にまとめたい
EXELで100行x200列にデータが詰まっています。 これをどのような順番でもいいのですが、 1行(20000セル)にまとめることができますか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>A列に縦に並べたいということです。 ⇒一例です。 仮にsheet1!A1:CV100範囲とします。 ■A1→B1→C1・・CV1→A2の行方向順に並び替え sheet2のB1に=OFFSET(sheet1!$A$1,INT((ROW(A1)-1)/200),MOD(ROW(A1)-1,200))を設定、下方向にコピー ■A1→A100→B1→B100の列方向順に並び替え sheet2のB1に=OFFSET(Sheet1!$A$1,MOD(ROW(A1)-1,100),INT((ROW(A1)-1)/100))を設定、下方向にコピー B列を選択→コピー→A列選択→形式を選択して貼り付け→値を選択→OK
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAでやれば下記のように簡単。 セル的にデータが長方形的に集っていると仮定して (質問例では、下記でdは100,rは200となる) 下記テスト例では3行x4列。 下記では列数+2の列に結果を出した。 標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row r = Range("iv1").End(xlToLeft).Column MsgBox r k = 1 For i = 1 To d For j = 1 To r Cells(k, r + 2) = Cells(i, j) k = k + 1 Next j Next i End Sub 100=>3、200->4の例で A B C D E F(結果) 1 2 3 x 4 5 6 y 7 8 9 z 1 2 3 x 4 5 6 y 7 8 9 z --- 関数では持ってくるセルにどのセルから持ってくるか、規則性があるので、計算できて、計算問題にしか過ぎない。 関数を入れるセルの自分の列数を4で割る商と余りに分解すればしまい。ただし行数に対しー1して4で割ったりして、結果に+1するのがコツですが。 =INDEX($A$1:$D$100,INT((ROW()-1)/4)+1,MOD((ROW()-1),4)+1)
- mitarashi
- ベストアンサー率59% (574/965)
お勉強のために、実験してみました。 元データは最初のシートの、a1から存在するとします。 Sub test() Dim targetRange As Range, myCell As Range, element As Variant Dim buf() As Variant Dim buf2 As Variant Dim i As Long Set targetRange = Sheets(1).Range("a1").CurrentRegion ReDim buf(1 To targetRange.Cells.Count) i = 1 For Each myCell In targetRange.Cells buf(i) = myCell.Value i = i + 1 Next Sheets(2).Range("a1:a" & targetRange.Cells.Count) = Application.WorksheetFunction.Transpose(buf) buf2 = targetRange i = 1 For Each element In buf2 buf(i) = element i = i + 1 Next Sheets(3).Range("a1:a" & targetRange.Cells.Count) = Application.WorksheetFunction.Transpose(buf) End Sub
- xls88
- ベストアンサー率56% (669/1189)
出来ません。 Excel2007で列数が最大16384です。 何故、そうされたいのですか?
- goo39
- ベストアンサー率36% (13/36)
列の最大数は256なので無理だと思います。
補足
1行というのは間違いでした、 A列に縦に並べたいということです。
お礼
できました! ありがとうございます。