[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『集計結果の表を加工』(まりん)
ExcelのVBAにて質問させて下さい。
A列には日付(B列には書式が"yyyy/m/d h:ss"が入っており、そこから日付を取り出しています)
B列には集計の開始時間
C列には集計の終了時間
D列、E列には集計した結果が入っています。
日付が異なるデータを一括で集計している為、同じ列に異なる日付の集計結果が入っています。
A列 B列 C列 D列 E列
日付 集計の開始時間 集計の終了時間 集計結果1 集計結果2
・
・
・
やりたいこと↓
集計結果を日付ごとに表示させたいです。
A列〜C列省略
D列 E列 F列 G列 ・・・
集計結果1(5/1) 集計結果2(5/1) 集計結果1(5/2) 集計結果2(5/2) ・・・
1日だけの集計であれば何も処理はせず、複数の場合はそれぞれをF列G列/H列I列・・・の様に列を追加させるにはどのような処理を書けばいいでしょうか?
拙い説明で申し訳ございませんが、よろしくお願いいたします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
(マナ) 2020/05/20(水) 18:06
Sub main() 'Sheet1をSheet2に集計 Dim sh1 As Worksheet, sh2 As Worksheet, i As Long, r As Range Set sh1 = Sheets("Sheet1") Set sh2 = Sheets("Sheet2") sh1.Cells.Copy sh2.Range("A1") If WorksheetFunction.CountA(sh1.Range("A:A")) - 1 = WorksheetFunction.CountIf(sh1.Range("A:A"), sh1.Range("A2")) Then Exit Sub i = 2 Do While sh2.Range("A" & i).Value <> "" Set r = sh2.Rows(1).Find("集計結果1(" & sh2.Range("A" & i).Text & ")", , , xlWhole) If r Is Nothing Then Set r = sh2.Cells(1, Columns.Count).End(xlToLeft).Offset(, 1) r.Resize(, 2).Value = Array("集計結果1(" & sh2.Range("A" & i).Text & ")", "集計結果2(" & sh2.Range("A" & i).Text & ")") End If sh2.Cells(i, r.Column).Resize(, 2).Value = sh2.Range("D" & i & ":E" & i).Value i = i + 1 Loop sh2.Range("D:E").Delete End Sub (mm) 2020/05/21(木) 10:26
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.