2013-02-27 1 views
4

하나의 Excel 시트에 여러 개의 피벗 테이블이있는 대시 보드를 만들어야합니다.Excel 2013 : 하나의 시트 (아래)에 여러 개의 피벗 테이블이 있습니다.

피벗 테이블을 새로 고칠 때 더 길어 (더 많은 행) 문제가 발생하여 필요한 아래의 행을 덮어 쓸 것이라고 경고합니다.

다음을 덮어 쓰지 않고 피벗 테이블에 행을 추가하기 위해 Excel 피벗 테이블을 구성하는 방법을 알고 싶습니다.

Microsoft Techdays 2013을 이미 보았지만 그 방법을 기억할 수 없습니다. Excel 2013에서 사용할 수있는 확인란이 있습니다.

감사합니다. 내가 워크 시트 당 하나 이상의 피벗 테이블이 있었다 때마다

+0

덮어 쓰기 경고를 해제하는 방법이 있습니다 있는지 피벗 테이블 새로 고침이 스타일 서식 봤는데 것 덮어 쓰지 않는 것, 심지어 자동 포맷 확인란이 있습니다 몇 년 동안 Excel 2013 용 개발자 베타 테스터이며 이러한 피벗 테이블을 자동 버퍼링하는 UI 방법을 보지 못했습니다. Microsoft에서 권장하는 바와 같이 각 피벗 테이블을 자체 시트로 만들 수 있으며 이러한 피벗 테이블을 요약 보고서 시트에 집계 할 수 있습니까? 문제를 피하기 위해 피벗 테이블을 나란히 놓을 수 있다는 것을 이미 알고 있다고 가정하고 있지만 아마도 옵션이 아닙니다. – KLDavenport

+0

SharePoint에서 Excel을 사용하여 대시 보드를 배포하려고하므로 시트에서 각 피벗 테이블을 사용할 수 없습니다. – Tlachtga

+0

최근에 Excel/SP 컨설턴트가 생겨서이 포스트를 상기 시켰습니다. 우리는 그것이 불가능하다는 것을 결정했다, 미안해 나는 도울 수 없었다. – KLDavenport

답변

0

I 중 하나

1) 그래서 나는 항상 6 행하지만 값을 가지고 6 개 개월의 값을 압연 필요 내가보고했다 피벗 테이블의 예를 들어 행의 수를 제한 매달 선진 이 경우 VBA를 사용하여 표시되는 값을 '확인'하고 '선택 취소'해야합니다. 등이 작업을 수행하기 위해 Google 검색에서 발견 된 것과 같은 사용 방법 :

2

https://www.google.com/search?q=find+last+used+row#q=excel+pivot+table+vba+to+filter+row+values) 각각 새로 고침시 후 기존 피벗 테이블을 삭제하여, 그에 따라 각 피벗 테이블의 위치를 ​​처음부터 각 피벗 테이블을 재 작성하고 피벗 테이블을 위에서 아래로 다시 생성합니다. 이 방법의 경우 피벗 테이블의 마지막 행을 결정해야 다음 피치 테이블 아래의 다음 행을 다시 작성할 수 있습니다. 구글 검색에서와 사용 방법은 마지막 피벗 테이블 행을 찾을 수 있습니다 : 나는 최근에이 문제를 가로 질러 와서 다음을 구축

https://www.google.com/search?q=find+last+pivot+table+row

0

. 물론 그것을 작동 시키려면 원칙적으로 두 테이블이 하나의 시트에 들어 맞아야한다는 전제 조건을 충족해야합니다. 내가하는 것보다, 두 테이블 사이에 충분한 공간 (= 행)을 구축하고, 새로 고친 후 테이블 사이에 남아있는 행을 숨 깁니다. 따라서 VBA가 필요하며 PivotTable_Update 이벤트에서 실행할 수 있습니다.

Private Sub hideRowsBetweenListObjects(sheetName As String) 
Dim tblRowPosition1 As Integer 
Dim tblNrOfRows1 As Integer 
Dim tblRowPosition2 As Integer 
Dim tblNrOfRows2 As Integer 

'Initialize 
Application.ScreenUpdating = False 

With Worksheets(sheetName).ListObjects(1) 
    tblRowPosition1 = .Range.Row 
    tblNrOfRows1 = .Range.Rows.Count 
End With 

With Worksheets(sheetName).ListObjects(2) 
    tblRowPosition2 = .Range.Row 
    tblNrOfRows2 = .Range.Rows.Count 
End With 

With Worksheets(sheetName) 
    If tblRowPosition1 < tblRowPosition2 Then 
     .Range(.Cells(tblRowPosition1 + tblNrOfRows1, 1), .Cells(tblRowPosition2 - 4, 1)).EntireRow.Hidden = True 
    ElseIf tblRowPosition2 < tblRowPosition1 Then 
     .Range(.Cells(tblRowPosition2 + tblNrOfRows2, 1), .Cells(tblRowPosition1 - 4, 1)).EntireRow.Hidden = True 
    End If 
End With 

최종 하위

관련 문제