본문 바로가기
PivotTable

피벗 테이블 분석

2023. 9. 23.

이 글은 피벗 테이블 분석 탭의 내용을 설명한 글입니다.

PivotTable

PivotTable.Name property

개체 이름을 나타내는 String 값을 반환하거나 설정합니다.

 

Syntax
expression.Name

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

다음 코드는 첫 번째 피벗테이블의 이름을 변경합니다.

Sub ChangePivotTableName()
'
' ChangePivotTableName Macro
'

'
    ActiveSheet.PivotTables(1).Name = "Product"
End Sub

 

Range.PivotTable property

지정한 범위의 왼쪽 위 모서리를 포함하는 피벗 테이블 보고서를 나타내는 PivotTable 개체를 반환합니다.

 

Syntax
expression.PivotTable

 

expression : Range 개체를 나타내는 변수입니다.

 

다음 코드는 활성 셀이 피벗테이블에 있으면, 해당 피벗테이블의 이름을 변경합니다.

Sub ChangePivotTableName()
    Dim pt As pivotTable

    On Error GoTo ErrorHandler
    Set pt = ActiveCell.pivotTable

    If Not pt Is Nothing Then
        pt.Name = "Product"
        Exit Sub    ' 피벗 테이블 이름 변경 후 코드 종료
    Else
    End If

    ' 활성화된 셀이 피벗 테이블 내에 없을 경우 이 부분으로 이동
ErrorHandler:
    MsgBox "활성화된 셀이 피벗 테이블 내에 없습니다.", vbExclamation
End Sub

피벗 테이블 옵션

피벗 테이블 옵션을 수정하는 내용은 PivotTable 개체의 속성에서 찾을 수 있습니다.

 

 

PivotTable object (Excel)

Office VBA reference topic

learn.microsoft.com

 

PivotTable.ShowPages method

페이지 필드에 있는 개별 항목에 대한 새 피벗 테이블 보고서를 만듭니다. 각 피벗 테이블 보고서는 새 워크시트에 만들어집니다.

 

Syntax
expression.ShowPages (PageField)

 

expression :  PivotTable 개체를 나타내는 변수입니다.

 

PageField : 피벗 테이블 보고서에 있는 단일 페이지 필드의 이름을 지정하는 문자열입니다.

비고

이 메서드는 OLAP 데이터 원본에는 사용할 수 없습니다.

 

다음은 이름이 "Color"인 페이지 필드의 개별 항목에 대해 새 피벗 테이블 보고서를 만드는 예제입니다.

Sub ShowPivotTablePages()
'
' ShowPivotTablePages Macro
'

'
    ActiveSheet.PivotTables("Product").ShowPages PageField:="Color"
End Sub

 

Application.GenerateGetPivotData property

 

Microsoft Excel에서 피벗 테이블 보고서 데이터를 가져올 수 있으면 True를 반환합니다. 읽기/쓰기가 가능한 Boolean입니다.

Syntax
expression.PivotTable

 

expression : Application 개체를 나타내는 변수입니다.

 

이 항목이 선택되어 있어야 피벗 테이블 내의 셀을 선택할 때 GETPIVOTDATA  함수를 이용한 수식이 나타납니다.

 

 

GETPIVOTDATA 함수 - Microsoft 지원

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다. Microsoft 365 구독 혜택 커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘

support.microsoft.com

Active Field

PivotField.Caption property

피벗 필드에 대한 레이블 텍스트를 나타내는 String 값을 반환합니다.

 

Syntax
expression.Caption

 

expression : PivotField 개체를 나타내는 변수입니다.

Sub FieldCaptionChange()
'
' FieldCaptionChange Macro
'

'
    ActiveSheet.PivotTables("PivotTable").PivotFields("Product").Caption = "제품"
End Sub

 

필드명을 찾을 수 없으면 에러가 납니다.아래 코드는 필드명 대신 인덱스 번호를 이용하여 캡션을 수정합니다.

Sub FieldCaptionChange()
'
' FieldCaptionChange Macro
'

'
    ActiveSheet.PivotTables("PivotTable").PivotFields(1).Caption = "제품"
End Sub

Field Settings

PivotField 개체의 속성을 변경합니다.

 

 

PivotField object (Excel)

Office VBA reference topic

learn.microsoft.com

PivotTable.DrillDown method

OLAP 기반 또는 PowerPivot 기반 큐브 계층 내에서 데이터를 드릴다운할 수 있습니다.

 

Syntax
expression.DrillDown (PivotItem, PivotLine)

 

expression :  피벗 테이블 개체를 나타내는 변수입니다.

 

PivotItem : 드릴다운이 수행되는 멤버입니다.

PivotLine : 피벗 테이블에서 작업 시작 멤버가 있는 줄을 지정합니다. 피벗라인을 지정하지 않은 경우 기본값은 멤버가 나타나는 맨 위 피벗라인입니다.

 

다음 코드는 드릴다운을 매크로 기록한 예제입니다.

Sub DrillDownYearAndQuarter()
'
' DrillDownYearAndQuarter Macro
'

'
    ActiveSheet.PivotTables("PivotTable").DrillDown ActiveSheet.PivotTables( _
                                                     "PivotTable").PivotFields("[Date].[Date_Hierarchy].[Date (Year)]").PivotItems( _
                                                     "[Date].[Date_Hierarchy].[Date (Year)].&[2017]"), ActiveSheet.PivotTables( _
                                                                                                       "PivotTable").PivotRowAxis.PivotLines(1)
    ActiveSheet.PivotTables("PivotTable").DrillDown ActiveSheet.PivotTables( _
                                                     "PivotTable").PivotFields("[Date].[Date_Hierarchy].[Date (Quarter)]"). _
                                                     PivotItems("[Date].[Date_Hierarchy].[Date (Year)].&[2017].&[Qtr3]"), _
                                                     ActiveSheet.PivotTables("PivotTable").PivotRowAxis.PilotLines(1)


End Sub

 

PivotTable.DrillUp method

OLAP 기반 또는 PowerPivot 기반 큐브 계층 구조 내에서 데이터를 드릴업할 수 있습니다.

 


Syntax
expression.DrillUp (PivotItem, PivotLine, LevelUniqueName)

 

PivotItem : 드릴업이 수행되는 멤버입니다.

PivotLine : 피벗 테이블에서 작업 시작 멤버가 있는 줄을 지정합니다. PivotLine을 지정하지 않으면 기본적으로 멤버가 표시되는 위쪽 PivotLine이 사용됩니다.

LevelUniqueName : 다단계 드릴업의 대상입니다. 지정되지 않은 경우 기본 조치는 한 레벨 드릴업입니다.

 

다음 코드는 DrillUp을 매크로 기록한 코드입니다.

Sub DrillUpMonthAndQuarter()
'
' DrillUpMonthAndQuarter Macro
'

'
    ActiveSheet.PivotTables("PivotTable").DrillUp ActiveSheet.PivotTables( _
        "PivotTable").PivotFields("[Date].[Date_Hierarchy].[Date (Month)]").PivotItems _
        ("[Date].[Date_Hierarchy].[Date (Year)].&[2017].&[Qtr3].&[Jul]"), ActiveSheet. _
        PivotTables("PivotTable").PivotRowAxis.pilotlines(1), _
        "[Date].[Date_Hierarchy].[Date (Quarter)]"
    ActiveSheet.PivotTables("PivotTable").DrillUp ActiveSheet.PivotTables( _
        "PivotTable").PivotFields("[Date].[Date_Hierarchy].[Date (Quarter)]"). _
        PivotItems("[Date].[Date_Hierarchy].[Data (Year)].&[2017].&[Qtr3]"), _
        ActiveSheet.PivotTables("PivotTable").PivotRowAxis.pilotlines(1), _
       "[date].[date_hierarchy][date(year)]"
End Sub

PivotField.DrilledDown property

지정된 피벗 테이블 필드 또는 피벗 테이블 항목의 플래그가 "드릴됨"(확장 또는 표시)으로 설정되어 있으면 참입니다. 읽기/쓰기 Boolean입니다.

 

Syntax
expression.DrilledDown

 

비고
OLAP 데이터 원본에 대해서만 이 속성을 사용합니다.(데이터 모델에 추가한 경우)

필드 또는 항목이 숨겨져 있는 경우 이 속성을 설정할 수 없습니다.

 

다음코드는 확장하고 축소하는 작업을 매크로 기록한 것입니다.

Sub DrillDownYear()
'
' DrillDownYear Macro
'

'
    ActiveSheet.PivotTables("PivotTable").PivotFields( _
        "[Date].[Date_Hierarchy].[Date (Year)]").DrilledDown = True
End Sub
Sub DrillUpYear()
'
' DrillUpYear Macro
'

'
    ActiveSheet.PivotTables("PivotTable").PivotFields( _
        "[Date].[Date_Hierarchy].[Date (Year)]").DrilledDown = False
End Sub

PivotField.ShowDetail property

 

지정한 PivotField에 세부 정보가 표시되는지 여부를 가져오거나 설정하며 읽기/쓰기가 가능한 Boolean입니다.

 

Syntax
expression.ShowDetail

 

expression : PivotField 개체를 반환하는 식입니다.

PivotItem.ShowDetail property

True이면 지정한 범위의 윤곽선이 확장되어 열이나 행의 하위 수준을 볼 수 있습니다. 지정한 범위는 윤곽선 안에서 단일 요약 열이나 행이어야 합니다. 읽기/쓰기가 가능한 Variant입니다. PivotItem 개체 또는 Range 개체(범위가 피벗 테이블 보고서에 있는 경우)의 경우 이 속성이 True로 설정되면 항목에 하위 수준이 표시됩니다.

 

Syntax
expression.ShowDetail

 

expression : PivotItem 개체를 나타내는 변수입니다.

 

비고

OLAP 데이터 원본에는 이 속성을 사용할 수 없습니다.

지정된 범위가 피벗 테이블 보고서에 없으면 다음 문에 해당합니다.

  • 범위는 단일 요약 행 또는 열에 있어야 합니다.
  • 이 속성은 행 또는 열의 자식 중 하나라도 숨겨져 있는 경우 False를 반환합니다.
  • 이 속성을 True로 설정하는 것은 요약 행 또는 열의 모든 자식을 숨김 해제하는 것과 같습니다.
  • 이 속성을 False로 설정하는 것은 요약 행 또는 열의 모든 자식을 숨기는 것과 같습니다.

지정된 범위가 피벗 테이블 보고서에 있는 경우 범위가 연속적이면 한 번에 둘 이상의 셀에 대해 이 속성을 설정할 수 있습니다. 이 속성은 범위가 단일 셀인 경우에만 반환될 수 있습니다.

PivotItem.DrillTo method

DrillTo 메서드는 PivotItem에서 지정된 PivotField로 드릴링할 수 있도록 지원합니다.

 

Syntax
expression.DrillTo (PivotItemName)

 

PivotItemName : 드릴할 대상 PivotItem의 이름입니다.

 

비고

OLAP 데이터 원본의 경우 드릴링되는 PivotField는 드릴되는 PivotItem과 동일한 계층 구조에 있어야 하며, 여러 특성 계층이 행 또는 열에 나란히 배치된 경우 드릴되는 PivotField는 서로 옆에 있는 특성 계층 중 하나여야 합니다. 드릴링되는 PivotItem의 PivotField와 드릴링되는 PivotField 사이에는 사용자 계층을 배치할 수 없습니다. 이러한 조건이 충족되지 않으면 런타임 오류가 반환됩니다.

Group

Range.Group method

Range 개체가 피벗 테이블 필드의 데이터 범위에 있는 단일 셀을 나타내는 경우 Group 메서드는 해당 필드에서 숫자 또는 날짜 기반 그룹화를 수행합니다.

 

Syntax
expression.Group (Start, End, By, Periods)

 

expression : Range 개체를 나타내는 변수입니다.

 

Parameters

비고

Periods 매개 변수에 대한 Boolean 배열에는 다음 요소가 포함됩니다.

도형 그룹은 단일 도형으로 처리되므로 도형을 그룹화하거나 그룹 해제하면 Shapes 컬렉션의 항목 수가 변경되고 컬렉션에서 영향을 받는 항목 뒤에 오는 항목의 인덱스 번호가 변경됩니다.

Range 개체는 피벗 테이블 필드의 데이터 범위에 있는 단일 셀이어야 합니다. 이 메서드를 둘 이상의 셀에 적용하려고 하면 오류 메시지가 표시되지 않고 실패합니다.

 

다음 코드는 연도,월을 선택해서 그룹화하는 과정을 매크로 기록한 것입니다.

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A5").Select
    Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
        False, True, False, True)
End Sub

그룹화할 셀의 위치는 고정된 것이 아니므로 다음과 같이 수정하면 편리합니다.

Sub GroupDatesByYearAndMonth()
' PivotTable과 PivotField 개체를 선언합니다.
    Dim pt As PivotTable
    Dim pf As PivotField

    ' "Pivot"이라는 이름의 워크시트에서 "PivotTable"이라는 이름의 피벗 테이블을 찾아 pt 변수에 할당합니다.
    Set pt = Worksheets("Pivot").PivotTables("PivotTable")

    ' 피벗 테이블에서 "Date"라는 필드를 찾아 pf 변수에 할당합니다.
    Set pf = pt.PivotFields("Date")


    With pf
        '  만약 Date 필드의 데이터 타입이 날짜가 아니면 프로시저를 종료합니다.
        If .DataType <> xlDate Then Exit Sub
        ' Date 필드를 연도와 월로 그룹화합니다.
        .LabelRange.Offset(1).Group Start:=True, End:=True, Periods:=Array(False, False, False, False, True, False, True)

    End With

End Sub

PivotField.DataType property

피벗 테이블 필드에 있는 데이터 형식을 나타내는 XlPivotFieldDataType 값을 반환합니다.

 

 

XlPivotFieldDataType enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

 

Syntax
expression.DataType

 

expression : PivotField 개체를 나타내는 변수입니다.

 

PivotField.LabelRange property

필드 레이블이 있는 셀을 나타내는 Range 개체를 반환하며 읽기 전용입니다.

 

Syntax
expression.LabelRange

 

expression : PivotField 개체를 나타내는 변수입니다.

 

Range.Ungroup method

윤곽선의 범위를 승격합니다(즉, 윤곽선 수준을 낮춥니다). 지정된 범위는 행 또는 열 또는 행 또는 열 범위여야 합니다. 범위가 피벗 테이블 보고서에 있는 경우 이 메서드는 범위에 포함된 항목의 그룹을 해제합니다.

 

Syntax
expression.Ungroup

 

expression : Range 개체를 나타내는 변수입니다.

 

비고

현재 셀이 상위 필드의 필드 머리글에 있으면 필드에 있는 모든 그룹을 해제하고 필드는 피벗 테이블 보고서에서 삭제됩니다. 상위 필드에 있는 마지막 그룹을 해제하면 해당 보고서에서 모든 필드가 삭제됩니다.

 

다음은 그룹 해제를 매크로 기록한 코드입니다.

Sub Macro1()
'
' Macro1 Macro
'

'
    Selection.UnGroup
End Sub

 

 

다음과 같이 코드를 수정할 수 있습니다.

Sub UnGroup()
    ' PivotTable과 PivotField 개체를 선언합니다.
    Dim pt As PivotTable
    Dim pf As PivotField

    ' "Pivot"이라는 이름의 워크시트에서 "PivotTable"이라는 이름의 피벗 테이블을 찾아 pt 변수에 할당합니다.
    Set pt = Worksheets("Pivot").PivotTables("PivotTable")

    On Error Resume Next   ' 오류가 발생해도 코드 실행 계속하기
    pt.RowFields(1).DataRange.UnGroup   ' 행 필드 그룹 해제
    ' pt.ColumnFields(1).DataRange.UnGroup 열필드 그룹 해제
    On Error GoTo 0        ' 오류 처리 끝, 이후 발생하는 오류는 정상적으로 처리하기

End Sub

Filter

슬라이서는 아래 게시물에 별도로 적었습니다.

 

 

슬라이서를 사용하여 데이터 필터링

슬라이서 추가 SlicerCaches.Add2 method 컬렉션에 새 SlicerCache 개체를 추가합니다. Syntax expression.Add2 (Source, SourceField, Name, SlicerCacheType) expression : SlicerCaches 컬렉션을 나타내는 변수입니다. Source : 필수

vbaplayground.tistory.com

Data

새로 고침

PivotCache.Refresh method

지정된 피벗 캐시를 즉시 다시 그립니다.

 

Syntax
expression.Refresh

 

expression : PivotCache 개체를 나타내는 변수입니다.

 

아래 코드는 매크로 기록한 코드입니다.

Sub RefreshPivotTable()
'
' RefreshPivotTable Macro
'

'  "PivotTable1" 이라는 이름의 피벗테이블 캐시를 새로 고칩니다.
    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh

End Sub

 

Workbook.RefreshAll method

지정된 통합 문서에서 모든 외부 데이터 범위 및 피벗 테이블 보고서를 새로 고칩니다.

 

Syntax
expression.RefreshAll

 

expression : Workbook 개체를 나타내는 변수입니다.

 

비고

BackgroundQuery 속성이 True로 설정된 개체는 백그라운드에서 새로 고쳐집니다.

 

아래 코드는 매크로 기록한 코드입니다.

Sub RefreshAllWorkbooks()
'
' RefreshAllWorkbooks Macro
'

'
    ' 활성 워크북의 모든 연결된 데이터를 새로 고칩니다.
    ActiveWorkbook.RefreshAll
    
End Sub

 

PivotTable.RefreshTable method

원본 데이터에서 피벗 테이블 보고서를 새로 고칩니다. 성공하면 True를 반환합니다.

 

Syntax
expression.RefreshTable

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

다음 코드는 이전 코드를 수정한 것입니다.

Sub RefreshPivotTable()
'
' RefreshPivotTable Macro
'

'  "PivotTable1" 이라는 이름의 피벗테이블을 새로 고칩니다.
    ActiveSheet.PivotTables("PivotTable1").RefreshTable

End Sub

원본 데이터 변경

PivotTable.ChangePivotCache method

지정된 피벗 테이블의 피벗 캐시 개체를 변경합니다.

 

Syntax
expression.ChangePivotCache (bstr)

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

Parameters

bstr : 지정된 피벗 테이블에 대한 새 피벗 캐시를 나타내는 피벗 테이블 또는 피벗 캐시 객체입니다.

 

비고

ChangePivotCache 메서드는 워크시트에 저장된 데이터를 데이터 원본으로 사용하는 피벗 테이블에만 사용할 수 있습니다. 외부 데이터 원본에 연결된 피벗 테이블에 ChangePivotCache 메서드를 사용하는 경우 런타임 오류가 발생합니다.

 

다음 코드는 원본 데이터를 변경하는 간단한 코드입니다.

Sub ChangePivotTableCache()

    Dim pt As PivotTable
    Dim pc As PivotCache

    ' 원하는 워크시트와 피벗테이블을 설정합니다.
    Set pt = Worksheets("Sheet2").PivotTables("PivotTable1")

    ' 새로운 피벗캐시를 생성합니다.
    ' 이 예에서는 "Sheet1"의 "Product"라는 이름의 ListObject를 사용합니다.
    Set pc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, _
                                               SourceData:=Worksheets("Sheet1").ListObjects("Product").Range)

    ' ChangePivotCache 메소드를 사용하여 피벗테이블의 캐시를 변경합니다.
    pt.ChangePivotCache pc

End Sub

Actions

Clear

PivotTable.ClearTable method

ClearTable 메서드는 피벗테이블을 초기화하는 데 사용됩니다. 피벗테이블을 초기화하면 모든 필드가 제거되고, 피벗테이블에 적용된 모든 필터링과 정렬이 삭제됩니다. 이 메서드를 사용하면 피벗테이블은 어떠한 필드도 추가되지 않은, 생성 직후의 상태로 되돌아갑니다.

 

Syntax
expression.ClearTable

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

비고

ClearTable 함수는 인수를 사용하지 않으며 관계형 및 OLAP 피벗 테이블 모두에 사용할 수 있습니다.

 

다음 코드는 Clear All을 매크로 기록한 것입니다.

Sub ClearPivotTable()
'
' ClearPivotTable Macro
'

'
    ActiveSheet.PivotTables("PivotTable1").ClearTable
End Sub

PivotTable.ClearAllFilters method

ClearAllFilters 메서드는 피벗테이블에 현재 적용된 모든 필터를 삭제하는 데 사용됩니다. 이는 PivotFilters 컬렉션의 모든 필터를 삭제하고, 수동으로 적용된 필터링을 제거하며, 보고서 필터 영역의 모든 PivotFields를 기본 항목으로 설정하는 것을 포함합니다.

 

다음 코드는 Clear Filters를 매크로 기록한 것입니다.

Sub ClearAllPivotFilters()
'
' ClearAllPivotFilters Macro
'

'
    ActiveSheet.PivotTables("PivotTable1").ClearAllFilters
End Sub

 

Select

PivotTable.PivotSelect method

피벗 테이블 보고서의 일부를 선택합니다.

 

Syntax
expression.PivotSelect (Name, Mode, UseStandardName)

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

Parameters

 

 

XlPTSelectionMode enumeration (Excel)

Office VBA reference topic

learn.microsoft.com

 

Application.PivotTableSelection property

True이면 피벗 테이블 보고서에 구조화된 선택 영역이 사용됩니다. 읽기/쓰기가 가능한 Boolean입니다.

 

Syntax
expression.PivotTableSelection

 

expression : Application 개체를 나타내는 변수입니다.

 

PivotTable.SelectionMode property

피벗 테이블 보고서의 구조화된 선택 모드를 반환하거나 설정합니다. 읽기/쓰기가 가능한 XlPTSelectionMode입니다.

 

Syntax
expression.SelectionMode

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

비고

피벗 테이블 필드가 윤곽선 형식이 아닌 경우 상수와 xlFirstRow의 합계를 지정하는 것은 상수만 지정하는 것과 동일합니다.

 

다음 코드는 각 기능을 매크로 기록한 것입니다.

Sub SelectDataOnly()
'
' SelectDataOnly Macro
'

'
    ActiveSheet.PivotTables("PivotTable2").PivotSelect "", xlDataOnly, True
End Sub

Sub SelectLabelOnly()
'
' SelectLabelOnly Macro
'

'
    ActiveSheet.PivotTables("PivotTable2").PivotSelect "", xlLabelOnly, True
End Sub

Sub SelectDataAndLabel()
'
' SelectDataAndLabel Macro
'

'
    ActiveSheet.PivotTables("PivotTable2").PivotSelect "", xlDataAndLabel, True
End Sub

Sub EnablePivotTableSelection()
'
' EnablePivotTableSelection Macro
'

'
  
    Application.PivotTableSelection = True
  
End Sub

 

다음 코드는 SelectionMode속성을 이용한 예제입니다.

Sub SelectLabelOnly()
'
' SelectLabelOnly Macro
'

'
    ActiveSheet.PivotTables("PivotTable2").SelectionMode = xlLabelOnly
End Sub

다음 코드는 일부만 선택한 예제입니다.

Sub SelectDataAndLabel()
'
' SelectDataAndLabel Macro
'

'
    ActiveSheet.PivotTables("PivotTable2").PivotSelect "France", xlDataAndLabel, _
                                                       True
End Sub

Move PivotTable

PivotTable.Location property

지정한 PivotTable의 본문에서 맨 왼쪽 위 셀을 나타내는 String을 가져오거나 설정하며 읽기/쓰기가 가능합니다.

 

Syntax
expression.Location

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

다음 코드는 피벗 테이블 이동 명령을 매크로 기록한 코드입니다.

Sub MovePivotTable()
'
' MovePivotTable Macro
'

'
    ActiveSheet.PivotTables("PivotTable2").Location = "Sheet3!B5"
End Sub

Calculations

Fields,Items,& Sets

CalculatedFields.Add method

새 계산된 필드를 만듭니다. PivotField 개체를 반환합니다.

 

Syntax
expression.Add (Name, Formula, UseStandardFormula)

 

expression : CalculatedFields 개체를 나타내는 변수입니다.

 

Parameters

 

반환 값
새 계산 필드를 나타내는 PivotField 개체입니다.

 

다음 코드는 SalesAmount라는 계산 필드를 삽입합니다.

Sub CalculateSalesAmount()
'
' CalculateSalesAmount Macro
'

'
    ActiveSheet.PivotTables("PivotTable1").CalculatedFields.Add "SalesAmount", _
        "=Quantity*Price", True
   
End Sub

 

CalculatedItems.Add method

새 계산 항목을 만듭니다. PivotItem 개체를 반환합니다.

 

Syntax
expression.Add (Name, Formula, UseStandardFormula)

 

다음 코드는 Avg-P1-P7 Sales라는 계산 항목을 추가합니다.

Sub AddAverageSales()
'
' AddAverageSales Macro
'

'
    ActiveSheet.PivotTables("PivotTable4").PivotFields("Sales_Period"). _
        CalculatedItems.Add "Avg P1-P7 Sales", "=AVERAGE(P01,P02,P03,P04,P05,P06,P07 )", True
End Sub

PivotFormula.Index property

PivotFormulas 컬렉션 내에서 PivotFormula 개체의 인덱스 번호를 나타내는 Long 값을 반환하거나 설정합니다.

(빨간색 네모는 한글판에서는 계산 순서입니다. 즉 계산 항목이 여러 개 있을 경우 계산 순서를 변경합니다.)

 

Syntax
expression.Index

 

expression : PivotFormula 개체를 나타내는 변수입니다.

Sub ChangePivotFormulaIndex()
'
' ChangePivotFormulaIndex Macro
'

'
    ActiveSheet.PivotTables("PivotTable4").PivotFormulas(1).Index = 2
End Sub

 

PivotTable.ListFormulas method

별도의 워크시트에 계산된 피벗 테이블 항목과 필드의 목록을 만듭니다.

 

Syntax
expression.ListFormulas

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

비고
이 메서드는 OLAP 데이터 원본에는 사용할 수 없습니다.

 

다음 코드는 매크로 기록한 예제입니다.

Sub ListPivotTableFormulas()
'
' ListPivotTableFormulas Macro
'

'
    ActiveSheet.PivotTables("PivotTable1").ListFormulas
End Sub

 

아래 그림처럼 새로운 시트를 만들고 수식 보고서를 작성합니다.

 

Create a named set in an OLAP PivotTable

 

이 항목은 데이터 모델에 추가한 후 피벗 테이블을 만들면 활성화됩니다.

 

관련 내용은 아래 도움말에 있습니다.

 

 

OLAP 피벗 테이블에서 명명된 집합 만들기 - Microsoft 지원

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다. Microsoft 365 구독 혜택 커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘

support.microsoft.com

 

OLAP Tools

PivotTable.ConvertToFormulas method

 

ConvertToFormulas method는 피벗 테이블을 큐브 수식으로 변환하는 데 사용됩니다. 읽기/쓰기 Boolean입니다.

 

Syntax
expression.ConvertToFormulas (ConvertFilters)

 

expression : 피벗 테이블 개체를 나타내는 변수입니다.

 

convertFilters : ReportFilter 영역의 상태를 나타내는 참 또는 거짓을 포함합니다.

 

다음 코드는 Convert to Formulas 명령을 매크로 기록한 것입니다.

Sub ConvertPivotToFormulas()
'
' ConvertPivotToFormulas Macro
'

'
    ActiveSheet.PivotTables("PivotTable1").ConvertToFormulas True
End Sub

 

 

 

큐브 함수(참조) - Microsoft 지원

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다. Microsoft 365 구독 혜택 커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘

support.microsoft.com

 

MDX(Multidimensional Expressions)가 궁금한 분은 아래 링크를 참고해보세요.

 

다차원 모델 데이터 액세스(Analysis Services - 다차원 데이터)

프로그래밍 방식 메서드, 스크립트 또는 클라이언트 애플리케이션을 사용하여 Analysis Services 다차원 데이터에 액세스하는 방법을 알아봅니다.

learn.microsoft.com

Relationships

데이터 모델에 있는 테이블과의 관계를 나타냅니다.

 

데이터 모델과 관계가 궁금한 분은 아래 링크를 참고하세요.

 

 

메모리 효율적 데이터 모델 만들기 Excel 및 Power Pivot 추가 기능 - Microsoft 지원

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다. Microsoft 365 구독 혜택 커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘

support.microsoft.com

 

 

Excel에서 데이터 모델 만들기 - Microsoft 지원

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다. Microsoft 365 구독 혜택 커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘

support.microsoft.com

 

 

 

Excel에서 테이블 간에 관계 만들기 - Microsoft 지원

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다. Microsoft 365 구독 혜택 커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘

support.microsoft.com

 

 

데이터 모델의 테이블 간 관계 - Microsoft 지원

데이터 모델에서는 두 테이블 간에 여러 개의 관계를 만들 수 있습니다. 정확한 계산을 빌드하기 위해 Excel 테이블에서 다음으로의 단일 경로가 필요합니다. 따라서 각각의 테이블 쌍에 존재하

support.microsoft.com

 

Show

Field List

Workbook.ShowPivotTableFieldList property

피벗 테이블 필드 목록을 표시할 수 있으면 True(기본값)입니다. 읽기/쓰기가 가능한 Boolean입니다.

 

Syntax
expression.ShowPivotTableFieldList

 

expression : Workbook 개체를 나타내는 변수입니다.

 

다음코드는 피벗 테이블 필드 목록을 표시할 수 있는지 확인하여 사용자에게 알리는 예제입니다.

Sub UseShowPivotTableFieldList()

    Dim wkbOne As Workbook

    Set wkbOne = Application.ActiveWorkbook

    '피벗 테이블 필드 리스트 설정을 확인합니다.
    If wkbOne.ShowPivotTableFieldList = True Then
        MsgBox "피벗 테이블 필드 리스트를 볼 수 있습니다."
    Else
        MsgBox "피벗 테이블 필드 리스트를 볼 수 없습니다."
    End If

End Sub

 

PivotTable.ShowDrillIndicators property

ShowDrillIndicators 속성은 피벗 테이블에서 확장/축소 단추의 표시를 설정/해제하는 데 사용되며 읽기/쓰기가 가능한 Boolean입니다.

 

Syntax
expression.ShowDrillIndicators

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

비고
확장/축소 단추가 피벗 테이블에 표시되면 True를 반환하고 확장/축소 단추가 피벗 테이블에 표시되지 않으면 False를 반환합니다. 

 

PivotTable.DisplayFieldCaptions property

행과 열에 대한 필터 단추가 눈금에 표시될지 여부를 제어하며 읽기/쓰기가 가능합니다.

 

Syntax
expression.DisplayFieldCaptions

 

expression : PivotTable 개체를 나타내는 변수입니다.

 

관련 글

피벗 테이블 생성하기 - PivotTableWizard 메서드

피벗 테이블 생성하기 - Add 메서드

피벗 테이블 생성하기

슬라이서를 사용하여 데이터 필터링