|
こんにちは。かみちゃん です。
> sheet2にはA2からH2にロット、品名、不良内容、合計が表示されているのみです。
> 集計を行うとA3からH3以降に集計結果が表示されるようにしたいです。
> なお、同じロット内には違う品名は存在しません。
エラー処理は、していませんので、データによってはエラーが出るかもしれませんが、
Sub Macro1()
Dim lngRow As Long
Dim intCol As Integer
Dim vntData As Variant
Dim c As Range
Dim LastCell As Range
With Sheets("Sheet2")
ReDim vntData(1 To .Range("A65536").End(xlUp).Row - 1, _
1 To .Range("IV1").End(xlToLeft).Column - 2)
End With
Set LastCell = Range("A65536").End(xlUp).Value
For Each c In Range("A2", LastCell)
'「ロット」の位置を検索
lngRow = Application.Match(c.Value, Sheets("Sheet2").Columns(1))
'「不良内容」の位置を検索
intCol = Application.Match(c.Offset(, 2).Value, Sheets("Sheet2").Rows(1))
'内訳欄の計算
vntData(lngRow - 1, intCol - 2) = _
vntData(lngRow - 1, intCol - 2) + c.Offset(, 3).Value
'合計欄の計算
vntData(lngRow - 1, UBound(vntData, 2)) = _
vntData(lngRow - 1, UBound(vntData, 2)) + c.Offset(, 3).Value
Next
'集計結果を書き込む
Sheets("Sheet2").Range("C2").Resize(UBound(vntData, 1), UBound(vntData, 2)).Value = vntData
End Sub
|
|