[[20190315091053]] 『データの並び替え』(がんばる事務員) ページの最後に飛ぶ

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

 

『データの並び替え』(がんばる事務員)

エクセルで膨大なデータ量を扱っているのですが、
データを整理するのに行も列も多すぎて困っているところです。

行の初めの見出しは、「1〜2000」ぐらいまでの連番です
列の初めの見出しは「名前、成分、時間、濃度、温度、湿度 等」の項目があります。

下記の図の
「-」は数字が入ってます
「*」は英字が入っています。(*の英字は必ず行に1つしかないです。)
「_」は空白と考えてください。

【現状】
 列→→→→→→→→→→→→→→
1行-----*-----
2行--*--------
3行-------*---
4行-*-----------
5行--------------*------
6行----------*--------

【やりたいこと】*の英字データを同じ列に統一したいです。

今回のやりたいことを実現するには、エクセルの機能などで可能でしょうか。
また別のソフトになってしまいますが、
マイクロソフトのAccessとかできそうでしょうか?
その辺ご存知の方いらっしゃれば、できるできないだけでも教えて頂きたいです。

よろしくお願いします。

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


すいません、文中に

「_」は空白と考えてください。

と記載ありますが、今回は「_」はないです。のでこの文は無視してください。

(がんばる事務員) 2019/03/15(金) 09:51


>【やりたいこと】*の英字データを同じ列に統一したいです。

統一したいとは、どういう意味でしょうか。
仮にこんなデータなら、どういう結果になるとよいのでしょうか?

  	-A-	-B-	-C-	-D-	-E-
 1	名前	成分	時間	濃度	温度
 2	1	10	a	20	30
 3	2	10	10	10	20
 4	3	10	b	10	10
 5	4	10	10	10	a

(マナ) 2019/03/15(金) 21:20


マナさま
仮のデータありがとうございます。
説明が上手く伝えられなくて申し訳ございません。
列の見出しは【名前・成分・時間】が繰り返し横に並んでいます
やりたいことは、成分aの位置がバラバラになっているため、列を統一させたいのです。

【仮データ】(少し変更させていただきました)
  -A- -B- -C- -D- -E- -F-

 1	名前	成分	時間	名前	成分    時間	
 2      1	a	30	20	30       10     
 3     	2	a	10	10	20       10     
 4	3	10	10	10	a        20      
 5	4	10	10	10	a        20      

【完成データ】

   	-A-	-B-	-C-	-D-	-E-     -F-	
 1	名前	成分	時間	名前	成分    時間	
 2                          	1	a	 30	20	30       10     
 3                      	2	a	 10	10	20       10     
 4	3	10	10	10	a        20      
 5	4	10	10	10	a        20      

(がんばる事務員) 2019/03/18(月) 10:06


 横から失礼します。
 こういう風にしちゃだめなんですか?

    |[A] |[B] |[C] 
 [1]|名前|成分|時間
 [2]|   1|a   |  30
 [3]|   2|a   |  10
 [4]|  20|  30|  10
 [5]|  10|  20|  10
 [6]|   3|  10|  10
 [7]|   4|  10|  10
 [8]|  10|a   |  20
 [9]|  10|a   |  20
(稲葉) 2019/03/18(月) 10:43

稲葉様

回答ありがとうございます。

あとでフィルタ掛ければ良いので、
下記のような形でも大丈夫です!

    |[A] |[B] |[C] 
 [1]|名前|成分|時間
 [2]|   1|a   |  30
 [3]|   2|a   |  10
 [4]|  20|  30|  10
 [5]|  10|  20|  10
 [6]|   3|  10|  10
 [7]|   4|  10|  10
 [8]|  10|a   |  20
 [9]|  10|a   |  20

(がんばる事務員) 2019/03/18(月) 11:37


 こんな感じでどうでしょう?
 最初の条件
 >列の初めの見出しは「名前、成分、時間、濃度、温度、湿度 等」の項目があります。 
 が変わってきているので、同じ項目名のところに出力する、という感じにしました。
 「名前」という項目をキーにして、行を増やしていくイメージです。
 ★印のところを実際のデータに合わせて調整してください。

    Option Explicit
    Sub test()
        Dim dic As Object
        Dim fld As Long
        Dim i As Long
        Dim w As Variant, tmp As Variant, idx As Long
        Dim r As Range
        Set dic = CreateObject("Scripting.Dictionary")
        idx = -1
        With Sheets("Sheet1") '★
            For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
                For fld = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column
                    If .Cells(1, fld).Value = "名前" Then idx = idx + 1 '★
                    ReDim w(0)
                    If dic.exists(.Cells(1, fld).Value) Then w = dic(.Cells(1, fld).Value)
                    ReDim Preserve w(idx)
                    w(idx) = .Cells(i, fld).Value
                    dic(.Cells(1, fld).Value) = w
                Next fld
            Next i
        End With
        Sheets.Add after:=Sheets(1)
        With Sheets(2)
            .Range("A1").Resize(, dic.Count).Value = dic.keys
            For Each r In .Range("A1").Resize(, dic.Count)
                w = dic(r.Value)
                r.Offset(1).Resize(UBound(w)).Value = Application.Transpose(w)
            Next r
        End With
    End Sub

 データ表(Sheet1)
    |[A] |[B] |[C] |[D] |[E] |[F] |[G] |[H]     
 [1]|名前|成分|時間|名前|成分|時間|濃度|温度湿度
 [2]|   1|a   |  30|  20|  30|  10|10% |        
 [3]|   2|a   |  10|  10|  20|  10|10% |        
 [4]|   3|  10|  10|  10|a   |  20|    |1℃     
 [5]|   4|  10|  10|  10|a   |  20|    |1℃     

 出力結果
    |[A] |[B] |[C] |[D] |[E]     
 [1]|名前|成分|時間|濃度|温度湿度
 [2]|   1|a   |  30|    |        
 [3]|  20|  30|  10| 0.1|        
 [4]|   2|a   |  10|    |        
 [5]|  10|  20|  10| 0.1|        
 [6]|   3|  10|  10|    |        
 [7]|  10|a   |  20|    |1℃     
 [8]|   4|  10|  10|    |        
(稲葉) 2019/03/18(月) 12:07

稲葉様

さっそくマクロ試してみたところ、
思い通りの結果になりました!

膨大なデータだった為、本当に大変助かりました!

マクロは自分のものにしたら最強ですね!!
作成して頂いたマクロを理解できるように、もっと私も勉強したいと思います。

ありがとうございました。
(がんばる事務員) 2019/03/19(火) 09:55


コメント返信:

[ 一覧(最新更新順) ]


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