[[20160425001951]] 『複数列のデーターを区切って縦1列に転記』(恭兵) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数列のデーターを区切って縦1列に転記』(恭兵)

 お世話になります。
 下記のようにしたいのですが、よろしくお願いします。
 手作業でしているのですがデーター量が多く困っています。
 ご教授お願いします。

    |[A]      |[B]|[C]|[D]|[E]|[F]|[G]|[H]|[I]|[J]|[K]|[L]|[M]|[N]|[O]|[P]|[Q]|[R]|[S]
 [1]|日付     |  1|  2|  3|  4|  5|  6|  1|  2|  3|  4|  5|  6|  1|  2|  3|  4|  5|  6
 [2]|4月1日   |A  |A  |A  |A  |A  |A  |B  |B  |B  |B  |B  |B  |C  |C  |C  |C  |C  |C  
 [3]|4月2日   |D  |D  |D  |D  |D  |D  |E  |E  |E  |E  |E  |E  |F  |F  |F  |F  |F  |F  
 [4]|4月3日   |G  |G  |G  |G  |G  |G  |H  |H  |H  |H  |H  |H  |I  |I  |I  |I  |I  |I  
 [5]|200行まで|   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   | 

下記のように転記したいです。

     |[A]   |[B]|[C]|[D]|[E]|[F]|[G]
 [1] |日付  |  1|  2|  3|  4|  5|  6
 [2] |4月1日|A  |A  |A  |A  |A  |A  
 [3] |4月1日|B  |B  |B  |B  |B  |B  
 [4] |4月1日|C  |C  |C  |C  |C  |C  
 [5] |4月2日|D  |D  |D  |D  |D  |D  
 [6] |4月2日|E  |E  |E  |E  |E  |E  
 [7] |4月2日|F  |F  |F  |F  |F  |F  
 [8] |4月3日|G  |G  |G  |G  |G  |G  
 [9] |4月3日|H  |H  |H  |H  |H  |H  
 [10]|4月3日|I  |I  |I  |I  |I  |I      

< 使用 Excel:Excel2007、使用 OS:win10 >


 こんばんわ。

 丁度同時並行のスレと似たようなケースですね。
 参考になると思います。

[[20160424204409]] 00:26 『範囲ごと並び替えられますか』(pinkfloyd)

(sy) 2016/04/25(月) 00:37


(sy)さん ありがとうございます
 隣にヒントがあるとは・・調べもせずに質問してしまいました。
 
 Sub 区切って転記()

    Dim i As Long
    Dim r As Long
    Const 追加 As Long = 2
    r = Range("A" & Rows.Count).End(xlUp).Row
    Application.ScreenUpdating = False
    For i = r To 2 Step -1
        If Range("A" & i).Value <> "" Then
            Range("A" & i + 1).Resize(追加).EntireRow.Insert
        End If
    Next
  With Range("A2", Range("A" & Rows.Count).End(xlUp))
        On Error Resume Next
        .SpecialCells(4).Formula = "=r[-1]c"
        On Error GoTo 0
        .Value = .Value
    End With

    Application.ScreenUpdating = True
 End Sub

 行挿入と日付のコピーまでは何とか出来ています、参考にして頑張ります。
 ありがとうございました。
(恭兵) 2016/04/25(月) 01:05

 カバ丸、参上!

 別シート

 A2: =INDEX(Sheet1!$A$2:$A$200,ROUNDUP(ROW(A1)/3,0))

 表示形式を日付にして下へコピー

 B2: =INDEX(Sheet1!$B$2:$S$200,ROUNDUP(ROW(A1)/3,0),MOD((ROW(A1)-1)*6+COLUMN(A1)-1,18)+1)&""

 右と下へコピー

 参考にしてくれい。では!ε=ε=ε= ヘ(*¨)ノ
 
(カバ丸) 2016/04/25(月) 03:04

(カバ丸)さん ありがとうございます
 出来ました、思った通りの結果がでました感激です。

 ありがとうございました。

(恭兵) 2016/04/25(月) 10:37


コメント返信:

[ 一覧(最新更新順) ]


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