|
▼まるん さん:
こんばんは。
>1月 2月 3月・・・ 12月 担当
>100 200 100 田中
>50 45 80 佐藤
>80 78 90 池田
>400 30 50 田中
>200 36 40 清水
>80 34 67 佐藤
>70 12 45 平井
>
>上記のようなエクセルがあります。
↑このシートをアクティブにした状態で以下のコードを実行してください。
標準モジュールに
'===========================================================
Sub main()
Dim rngA As Range
Dim rngB As Range
Set rngA = Range("m1", Cells(Rows.Count, "m").End(xlUp))
rngA.AdvancedFilter xlFilterCopy, , Worksheets("一覧").Range("a1"), True
With Worksheets("一覧")
With .Range("b1:m1")
.Formula = "=column()-1&""月"""
.Value = .Value
End With
Set rngB = .Range("a2", .Cells(.Rows.Count, "A").End(xlUp))
If rngB.Row > 1 Then
With rngB.Offset(0, 1).Resize(, 12)
.Formula = "=sumif(" & rngA.Address(, , , True) & ",$a2," & _
rngA.Offset(, -12).Address(, False, , True) & ")"
'セルb2には、=SUMIF(元データシート名!$M$1:$M$8,$A2,元データシート名!A$1:A$8)
.Value = .Value
End With
End If
End With
End Sub
|
|