[[20140605101246]] 『データの形を変えて表示したい』(ららら) ページの最後に飛ぶ

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

 

『データの形を変えて表示したい』(ららら)

CSV出力で出された大量のデータの形を変えたいです。
自分なりに探してみたのですが、質問の仕方がわるいよでなかなか見つからず、質問させていただきました。

    A      B          C        D         E         F
 1 取引番号 日時   会社名   支店   商品名  個数 
 2  1   4/1  鈴木商店   東京   りんご      3
 3   2   4/1    鈴木商店   東京   みかん    4
 4   3   4/2    鈴木商店   千葉   ぶどう    2
 5   4   4/2    田中商店     埼玉   りんご    5
このように出力されたのもを

      A        B        C         D         E        F     G
 1 取引番号  日時  会社名   支店   りんご  みかん  ぶどう  
 2     1     4/1  鈴木商店   東京     3
 3     2     4/1    鈴木商店   東京          4
 4     3     4/2    鈴木商店   千葉                       2
 5     4      4/2    田中商店     埼玉     5
という形に変えたいです。
ピポットテーブルではなく、関数やマクロでできないでしょうか。
宜しくお願い致します。

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


D1:G5をコピー
貼り付けメニューから行列入れ替えを選択
これでどうでしょう
(すし) 2014/06/05(木) 10:42

 マクロでしたら、こんな感じで。

 Sub Sample()
    Dim 項目辞書
    Set 項目辞書 = CreateObject("Scripting.Dictionary")

    Dim 最終行 As Long
    最終行 = Cells(Rows.Count, "A").End(xlUp).Row

    Dim 行 As Long
    For 行 = 2 To 最終行
        If Cells(行, "E").Value <> "" Then 項目辞書(Cells(行, "E").Value) = True
    Next

    Range("G1").Resize(1, UBound(項目辞書.keys) + 1) = 項目辞書.keys
    Dim 列 As Long
    For 列 = 0 To UBound(項目辞書.keys)
        項目辞書(Cells(1, 列 + 7).Value) = 列 + 7  '// G列 = 7
    Next

    For 行 = 2 To 最終行
        If Cells(行, "E").Value <> "" Then
            Cells(行, 項目辞書(Cells(行, "E").Value)).Value = Cells(行, "F").Value
        End If
    Next

    Columns("E:F").Hidden = True
  ' Columns("E:F").Delete    '// If you don't need original data
 End Sub
(Mook) 2014/06/05(木) 11:09

すし様

早速の返信ありがとうございました。
しかし、私のやり方がおかしかったのか行列の入れ替えはできたのですが、個数も一列になってしまいうまくできませんでした。
(ららら) 2014/06/05(木) 11:15


Mook様

教えたいていただいたマクロを試してみました。
うまくできました!!
ありがとうございました。
今まで時間がかかっていたものが一気にできるので助かりました。

(ららら) 2014/06/05(木) 11:19


コメント返信:

[ 一覧(最新更新順) ]


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