[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『商品名の行を揃えます』(akio)
お世話になります。
質問:下記の商品名の項目詳細を今月と先月を比較して見やすくする為に、
今月と先月の同じ商品名の どちらか商品名の多いデータの最後の行から2行下
に空けて次の商品名を表示したいのです。
下記?@が元のデータ ?Aが希望するデータの並びです。(日付、購入者、金
額の詳細は省いています。)本来100行ほどデータ行があります。
よろしくお願いいたします。
A列 B列 C列 D列 E列 F列 G列 H列 1行 ?@今月 先月 2行日付 商品名 購入者 金額 日付 商品名 購入者 金額 水着a 水着a 水着a 水着a 水着a 水着a ゴーグルb 水着a ゴーグルb 水着a ゴーグルb ゴーグルb ゴーグルb ゴーグルb ゴーグルb ゴーグルb 鞄a 鞄a 鞄a 鞄a 鞄a 鞄a 鞄a 鞄a J列 K列 L列 M列 N列 0列 P列 Q列 1行?A今月 先月 2行日付商品名 購入者 金額 日付 商品名 購入者 金額 水着a 水着a 水着a 水着a 水着a 水着a 水着a 水着a
ゴーグルb ゴーグルb ゴーグルb ゴーグルb ゴーグルb ゴーグルb ゴーグルb ゴーグルb
鞄a 鞄a 鞄a 鞄a 鞄a 鞄a 鞄a 鞄a
< 使用 Excel:Excel2013、使用 OS:Windows10 >
ずれすぎてて分からないので、以下の仕様でいいですか? おそらくソートされた後のデータだと思います。
私の提案は元データを3)のような形にして、ピボットテーブルでの比較が一番簡単だと思います。 1)元データ |[A] |[B] |[C] |[D] |[E] |[F] |[G] |[H] [1] | 日付|商品名 |購入者| 金額| 日付|商品名 |購入者| 金額 [2] | |水着a | | | |水着a | | [3] | |水着a | | | |水着a | | [4] | |水着a | | | |水着a | | [5] | |ゴーグルb| | | |水着a | | [6] | |ゴーグルb| | | |水着a | | [7] | |ゴーグルb| | | |ゴーグルb| | [8] | |ゴーグルb| | | |ゴーグルb| | [9] | |ゴーグルb| | | |ゴーグルb| | [10]| |鞄a | | | |鞄a | | [11]| |鞄a | | | |鞄a | | [12]| |鞄a | | | |鞄a | | [13]| | | | | |鞄a | | [14]| | | | | |鞄a | |
2)整形後 |[J] |[K] |[L] |[M] |[N] |[O] |[P] |[Q] [1] | 日付|商品名 |購入者| 金額| 日付|商品名 |購入者| 金額 [2] | |水着a | | | |水着a | | [3] | |水着a | | | |水着a | | [4] | |水着a | | | |水着a | | [5] | | | | | |水着a | | [6] | | | | | |水着a | | [7] | |ゴーグルb| | | |ゴーグルb| | [8] | |ゴーグルb| | | |ゴーグルb| | [9] | |ゴーグルb| | | |ゴーグルb| | [10]| |ゴーグルb| | | | | | [11]| |ゴーグルb| | | | | | [12]| |鞄a | | | |鞄a | | [13]| |鞄a | | | |鞄a | | [14]| |鞄a | | | |鞄a | | [15]| | | | | |鞄a | | [16]| | | | | |鞄a | |
3)希望する元データ |[A] |[B] |[C] |[D] [1] | 日付 |商品名 |購入者| 金額 [2] |9月1日 |水着a | | [3] |9月1日 |水着a | | [4] |9月1日 |水着a | | [5] |9月1日 |ゴーグルb| | [6] |9月1日 |ゴーグルb| | [7] |9月1日 |ゴーグルb| | [8] |9月1日 |ゴーグルb| | [9] |9月1日 |ゴーグルb| | [10]|9月1日 |鞄a | | [11]|9月1日 |鞄a | | [12]|9月1日 |鞄a | | [13]|10月1日|水着a | | [14]|10月1日|水着a | | [15]|10月1日|水着a | | [16]|10月1日|水着a | | [17]|10月1日|水着a | | [18]|10月1日|ゴーグルb| | [19]|10月1日|ゴーグルb| | [20]|10月1日|ゴーグルb| | [21]|10月1日|鞄a | | [22]|10月1日|鞄a | | [23]|10月1日|鞄a | | [24]|10月1日|鞄a | | [25]|10月1日|鞄a | | (稲葉) 2017/09/26(火) 16:33
Dim dic As Object, dic1 As Object, dic2 As Object, i As Long, c As Range, r As Range, k Sheets("Sheet2").Cells.ClearContents Sheets("Sheet1").Range("A1:H2").Copy Sheets("Sheet2").Range("A1") Set dic = CreateObject("Scripting.Dictionary") Set dic1 = CreateObject("Scripting.Dictionary") Set dic2 = CreateObject("Scripting.Dictionary") For Each c In Sheets("Sheet1").Range("B3:B" & Rows.Count).SpecialCells(xlCellTypeConstants) dic1(c.Value) = dic1(c.Value) + 1 dic(c.Value) = True Next c For Each c In Sheets("Sheet1").Range("F3:F" & Rows.Count).SpecialCells(xlCellTypeConstants) dic2(c.Value) = dic2(c.Value) + 1 dic(c.Value) = True Next c Set r = Sheets("Sheet2").Range("B3") For Each k In dic For i = 1 To WorksheetFunction.Max(dic1(k), dic2(k)) If i <= dic1(k) Then r.Value = k If i <= dic2(k) Then r.Offset(, 4).Value = k Set r = r.Offset(1) Next i Set r = r.Offset(2) Next k Set r = Sheets("Sheet1").Range("A3") For Each c In Sheets("Sheet2").Range("B3:B" & Rows.Count).SpecialCells(xlCellTypeConstants) c.Offset(, -1).Resize(, 4).Value = r.Resize(, 4).Value Set r = r.Offset(1) Next c Set r = Sheets("Sheet1").Range("E3") For Each c In Sheets("Sheet2").Range("F3:F" & Rows.Count).SpecialCells(xlCellTypeConstants) c.Offset(, -1).Resize(, 4).Value = r.Resize(, 4).Value Set r = r.Offset(1) Next c End Sub (mm) 2017/09/26(火) 16:40
mm様、
マクロ、有難うございました。
希望通り行きました。
只、
実際に使って色々試して気づいたのですが、
商品別に小計を入れるのを忘れていました。すみませんでした。
商品別に小計を入れたとしましたら
コードの追加としてどこに何を入れたらいいのですか?
教えて下さい。
(akio) 2017/09/26(火) 23:35
For Each k In dic Set sr = r For i = 1 To WorksheetFunction.Max(dic1(k), dic2(k)) If i <= dic1(k) Then r.Value = k If i <= dic2(k) Then r.Offset(, 4).Value = k Set r = r.Offset(1) Next i r.Offset(, 1).Resize(, 2).Value = Array("小計", "=sum(D" & sr.Row & ":D" & r.Offset(-1).Row & ")") '小計 r.Offset(, 5).Resize(, 2).Value = Array("小計", "=sum(H" & sr.Row & ":H" & r.Offset(-1).Row & ")") '小計 Set r = r.Offset(2) Next k (mm) 2017/09/27(水) 10:23
本当に有難うございます。
(akio) 2017/09/27(水) 11:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.