[[20221129143731]] 『一列にまとまってる縦長のデータを横並びにする方』(TKG) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『一列にまとまってる縦長のデータを横並びにする方法』(TKG)

大量のデータが一列に全部まとまっていてそれらを横並びにしたいのですが、ただの横並びではないです一応見やすいようにある規則に従って空白のセルが入っています。それを利用して縦並びのデータに対して空白が来たら一つ右の列に空白より下のデータを全部移動させて、また空白が来たら右の列に移動してというのを一気に実行する方法が知りたいです。ショートカットでなくても一区切りずつ手作業でするのではなく一気にずらす方法が知りたいです。
(イメージ)

1
2

3
4

5
6
となっているのを

135
246

となるようにしたいです

< 使用 Excel:Excel2019、使用 OS:Windows10 >


ある規則っていうのがどのような規則なのか分からないけども、
例題のように同じ行ごとにスペースがあって、それをスペースで区切るごとに順番に結合するのなら・・・

A列にデータがあるとして、C列に出力した場合

Sub Test()

    Dim Target As Range, rng As Range
    Dim r As Long, rMax As Long
    Dim cnt As Long

    rMax = Cells(Rows.Count, 1).End(xlUp).Row
    Set rng = Range(Cells(1, 1), Cells(rMax, 1))
    cnt = Application.WorksheetFunction.CountBlank(rng)

    For Each Target In rng
        With Target
            If .Value <> "" Then
                r = .Row Mod ((rMax + 1) / (cnt + 1))
                Cells(r, 3).Value = Cells(r, 3).Value & .Value
            End If
        End With
    Next Target

End Sub

(ngk) 2022/11/29(火) 15:49:15


 A列にデータ、C列以降に出力として、

 Sub test()
    Dim rng As Range
    Set rng = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).SpecialCells(xlCellTypeConstants)

    Dim a As Range, c As Range
    Set c = Cells(1, 3)
    For Each a In rng.Areas
        a.Copy c
        Set c = c.Offset(, 1)
    Next
 End Sub
(hatena) 2022/11/29(火) 17:13:37

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.