Excel & VBA---Brain Training
각각의 대리점의 정보가 각각의 시트로 여러장이 구성되어 있다, 다중통합범위 피벗테이블
일반적으로 엑셀에서 피벗을 사용할때
[Microsoft Excel 목록이나 데이타베이스]으로 데이타소스를 사용한다
하지만 아래의 그림과 같이 같은 형식의 테이블이 여러시트에 있을때
이것을 통합하여 하나의 피벗으로 표현을 할 수도 있다
아래 코드로 쌤플시트와 테이블을 만든후
다중통합범위 피벗테이블을 만들어 보시는 자동화를 해보시기를..
Sub createSampleData()
Dim iSheet As Integer
Dim iRow As Integer
Dim sShtName As String
Dim rCurrent As Range
Dim sProduct As String
Dim sSheet() As String
On Error Resume Next
For iSheet = 1 To 5
With Worksheets.Add
sShtName = "Sheet_" & Choose(iSheet, "A", "B", "C", "D", "E")
Application.DisplayAlerts = False
Worksheets(sShtName).Delete
Application.DisplayAlerts = True
.Name = sShtName
With .Range("A1")
.Resize(, 5) = Array("상품", "1분기", "2분기", "3분기", "분기")
For iRow = 1 To Int(Rnd() * 10) + 5
With .Offset(iRow)
Set rCurrent = .Cells(1)
GoTo NO_DUPE
BACK:
With .Offset(-1, 1).Cells(2).Resize(, 4)
.Formula = "=ROUND(INT(RAND()*200000)+50000,-2)"
.Value = .Value
End With
End With
Next
End With
' 정렬하기
Dim rData As Range
Set rData = .UsedRange
rData.Sort rData.Cells(1), xlAscending, , , , , , xlYes
End With
Next
Exit Sub
NO_DUPE:
Do
sProduct = Chr(Int(Rnd() * 26) + 65)
Loop While Application.CountIf(Range(rCurrent.EntireColumn.Cells(2), rCurrent), sProduct) > 0
rCurrent = sProduct
GoTo BACK
End Sub
위의 것을 아래의 그림과 같이 피벗으로 통합하기가 코딩하여야할 문제!!
***[LOG-IN]***