작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
497
1
답변 1
0
안녕하세요, 곽송해님.
반갑습니다 :)
초창기 영상들이 녹화SW에 문제가 있어서
저렇게 잘리었더군요...ㅜ.ㅜ
보시는데 불편하실겁니다.
지금처럼 잘려서 도저히 혼자 코딩이 어려우면 댓글 남겨주세요.
코드 올려드리겠습니다.
Sub 고급필터로_데이터취합()
Dim sr As Worksheet, sd As Worksheet
Dim rng As Range
Set sr = Sheets("결과")
Set sd = Sheets("pv_data")
sr.Range("a6").CurrentRegion.Clear
sd.Cells.Clear
If Application.CountIf(sr.Range("a3:c3"), "선택") = 3 Then
MsgBox "행필드는 적어도 하나를 선택해야 합니다."
sr.Activate
sr.Range("a3").Select
End If
sd.Range("a1").Resize(1, 2) = Array("일자", "일자")
sd.Range("a2").Resize(1, 2) = Array(">=" & sr.Range("b1"), "<=" & sr.Range("c1"))
Set rng = Sheets("raw").Range("a1").CurrentRegion
rng.AdvancedFilter xlFilterCopy, sd.Range("a1").CurrentRegion, sd.Range("a6")
End Sub
Sub 피벗생성()
Dim pc As PivotCache
Dim pt As PivotTable
Dim sr As Worksheet
Dim rng As Range
Dim hang
Dim f As PivotField
Set sr = Sheets("결과")
Set rng = Sheets("pv_data").Range("a6").CurrentRegion
'혹시 기존 피벗이 있다면 삭제
On Error Resume Next
Set pt = sr.PivotTables(1)
pt.TableRange2.Clear
On Error GoTo 0
With sr
If .Range("b3") = "선택" And .Range("c3") = "선택" Then
hang = .Range("a3").Value
ElseIf .Range("c3") = "선택" Then
hang = Array(.Range("a3").Value, .Range("b3").Value)
Else
hang = Array(.Range("a3").Value, .Range("b3").Value, .Range("c3").Value)
End If
End With
Set pc = ThisWorkbook.PivotCaches.Create(xlDatabase, rng)
Set pt = pc.CreatePivotTable(sr.Range("a6"), "pv1")
With pt
On Error Resume Next
.AddFields hang, "연령"
If Err Then
pt.TableRange2.Clear
MsgBox "행필드 선택에 문제가 있습니다. 다시 선택하세요."
Exit Sub
End If
.AddDataField .PivotFields("통화건수"), , xlSum
.RowAxisLayout xlTabularRow
.RowGrand = False
.ColumnGrand = False
.MergeLabels = True
For Each f In .PivotFields
f.Subtotals(1) = False
Next
On Error GoTo 0
End With
End Sub
Sub main_pivot()
Application.ScreenUpdating = False
Call 고급필터로_데이터취합
Call 피벗생성
Application.ScreenUpdating = True
End Sub