[[20170508211130]] 『列のデータを行にまとめたい』(ぐらたん) ページの最後に飛ぶ

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

 

『列のデータを行にまとめたい』(ぐらたん)

このようなデータがあります

   A       B        C
1 整理番号 親        子
2  580    田中太郎  田中ゆか
3  580    田中太郎  田中ありさ
4  580    田中太郎  田中りん
5  900    鈴木健一  鈴木りく
6  900    鈴木健一  鈴木たいき

A列の整理番号は、
1つの親に1つの番号がふられています。
この番号は重複しません。

このデータは、田中太郎さんは3人の子供がいて、
鈴木健一さんは2人の子供がいるというデータです。

これを

    A       B        C        D         E
1  整理番号  親       子1      子2        子3
2   580     田中太郎  田中ゆか  田中ありさ 田中りん
3   900     鈴木健一  鈴木りく  鈴木たいき

と、1行にまとめたいです。
どのようにしたらできますでしょうか。

< 使用 Excel:unknown、使用 OS:Windows8 >


携帯からなのでヒントだけ。

よく検討したわけではないですけど↓の応用でいけるかもしれません。

[[20170326090845]] 『小学校児童名簿から兄弟関係を抽出したい。』(nonvily)
(カリーニン) 2017/05/08(月) 21:53


カリーニン様
応用聞きそうですね、ありがとうございます
VBAを組まずに出来ればとても嬉しいのですが、やはり難しいのでしょうか

ちなみに本来のデータには名前にフリガナがふってあり、
VLOOKUPで抽出したところ、名前にフリガナが表示されなくなったので諦めました
(ぐらたん) 2017/05/08(月) 22:05


こんな感じでどうですか。

データは、2行目から仮に最大600行目までとして
それをE列(5列目)以降に並べ替えています。

見出しは手作業でお願いします。

 Option Explicit

 Sub test()
    Dim i As Long
    Dim y As Long
    Dim x As Long

    For i = 2 To 600
        If Cells(i, 1).Value <> Cells(i - 1, 1).Value Then
            x = 0
            y = y + 1
            Cells(i, 1).Copy Cells(y, 5)
            Cells(i, 2).Copy Cells(y, 6)
            Cells(i, 3).Copy Cells(y, 7 + x)
        Else
            x = x + 1
            Cells(i, 3).Copy Cells(y, 7 + x)
        End If
    Next

 End Sub

(マナ) 2017/05/08(月) 22:54


マナ様
ご丁寧に、ありがとうございます!
VBA知識が全くないので、きちんと生かせるか心配ではあります。

下の行のデータを上の行に移動か、コピーができれば
重複する値は手作業で消すのですが・・・
(兄弟の名前だけでなく、そっくり1行そのままコピーでも可)
手作業で切り取り&貼り付けしようかと思っているくらいです・・・

マクロも勉強してみます!
(ぐらたん) 2017/05/08(月) 23:44


そうかと思って出きるだけ単純なマクロにしてみたのですが。

手作業で頑張るならこんな感じですかね。

1)子のデータを E1セルに「行列を入れ替えてコピー」
2)A列で重複の削除
3)子のデータを1家族ずつD列に切り取り&貼り付け
4)D列とC列はおなじなので、D列削除

(マナ) 2017/05/09(火) 00:15


コメント返信:

[ 一覧(最新更新順) ]


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