- ベストアンサー
エクセルの改行を改列にしたい
エクセルで、 87 64 25 33 98 52 45 72 19 といったデータを、 87 33 45 64 98 72 25 52 19 というように、改行部分を改列にしたいのですが、どのように操作すればよろしいでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>改行部分を改列に もしかしてこれ? A1 =87 64 25 として B1 =LEFT(A1,2) C1 =MID(A1,4,2) D1 =MID(A1,7,2) 又は =RIGHT(A1,2)
その他の回答 (3)
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 1セル内に改行されたデータを横列に抽出します。 (1)仮にA列として、A列を選択 (2)データ→区切り位置→次へ→区切り文字で「その他」を選択、コード欄にctrl+Jキーを同時押下(コード表示されませんがデータプレビュー欄に区切り表示される)→完了
任意のセルに次式を入力して、下方および右方2列ドラッグ&ペースト =OFFSET($A$1,ROW(A1)-1+(COLUMN(A1)-1)*4,)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAでやるような課題。 標準モジュールに Sub test01() d = Range("A65536").End(xlUp).Row j = 3 'D列から右行に書き出し K = 1 '1行目から書き出し blk = "N" '今までの塊の中で無い For i = 1 To d '第1行からd行まで繰り返し処理 If Cells(i, "A") = "" Then '空白なら blk = "N" '今までの塊の続きの中で無くなった Else If blk = "N" And Cells(i, "A") <> "" Then '塊が切れて後の初の非空白 blk = "Y" '塊の状態の始まり K = 1 '第1行目に書き出し用意 j = j + 1 '列を右行へ書き出し用意 Cells(K, j) = Cells(i, "A") '書きだし K = K + 1 '1行下へ書き出し用意 Else Cells(K, j) = Cells(i, "A") '書き出し K = K + 1 '次回は1行下へ書き出し用意 End If End If Next i End Sub 例データ 87 64 25 33 98 52 45 72 19 11 23 41 ーー 結果 87 33 45 11 64 98 72 23 25 52 19 41 ========== 関数でやると I1に式 =INDEX($A$1:$A$100,(COLUMN()-9)*4+ROW(),1) I3まで式を複写。 I1:I3までを横方向に式を複写。 上式で、I列から書き出し始めるのでI列は9番めの列であるので、9という数字が出てくる。 結果 87 33 45 11 64 98 72 23 25 52 19 41