dポイントプレゼントキャンペーン実施中!

セルA1からH1までで折り返しのデータ

1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24


このデータを
1
2
3
4
5
6


というデータに変換したいのですが,
方法はあるのでしょうか?
よろしくお願いします。

A 回答 (4件)

正規表現の使えるテキストエディタ(「秀丸エディタ」や「さくらエディタ」)にセルA1からH1までをコピーして貼り付け、


置換を選択し、「正規表現」にチェックを入れた状態で、
  検索: \t
  置換: \n
で実行し、タブを改行に置き換えることができます。
あとは、エクセルに貼り付けるだけです。
    • good
    • 1
この回答へのお礼

回答ありがとうございます.
テキストエディタでできるのですね.

お礼日時:2016/04/20 10:07

=OFFSET(A$1,(ROW(A1)-1)/8,MOD(ROW(A1)-1,8))

    • good
    • 2
この回答へのお礼

回答ありがとうございます.
参考にさせていただきます.

お礼日時:2016/04/22 09:01

こんにちは



1回だけの作業なら関数併用で手作業で、同じ作業を何回もやる必要があるのならマクロが宜しいかと。
マクロの例はNo2様がすでに回答して下さっているので、関数利用の方法を・・・

そのシートの好きな列(J列とかK列など)の1行目に
 =INDEX(A:H,INT((ROW()-1)/8)+1,MOD(ROW()-1,8)+1)
を入力して、下方にフィルコピーで1列に変換されると思います。

上記は関数なので値として固定させたければ、列をコピーして「形式を選択してペースト」で値をペーストすればよろしいです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます.
式でいけるのですね.

お礼日時:2016/04/22 09:02

VBA で良かったでしょうか


ダメならスルーということで・・・

以下を標準モジュールに記述して、
アクティブシートを処理対象に、
そのものを書き換えます


Public Sub Samp1()
  Dim i As Long, j As Long
  Const CCOLW As Long = 8 ' 列数

  j = CCOLW - 1
  Application.ScreenUpdating = False
  For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1
    With Cells(i, "A")
      .Offset(, 1).Resize(, j).Copy
      .Offset(1).PasteSpecial xlPasteValues, Transpose:=True
      .Offset(, 1).Resize(, j).ClearContents
      If (i = 1) Then Exit For
      .Resize(j).EntireRow.Insert
    End With
  Next
  Range("A1").Select
  Application.ScreenUpdating = True
End Sub
    • good
    • 0
この回答へのお礼

早々にありがとうございます。
参考にさせていただきます.

お礼日時:2016/04/20 10:06

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

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


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