Excel에서 피벗 테이블 데이터 소스를 변경하는 방법
하나의 데이터베이스에서 다른 데이터베이스로 변경하고 싶습니다.
피벗 테이블의 상황에 맞는 메뉴에 이 작업을 수행할 수 있는 옵션이 없는 것 같습니다.
표에서 아무 곳이나 클릭한 후 페이지 맨 위에 있는 탭으로 이동하여 [옵션]을 선택하면 [데이터 소스 변경]이 표시됩니다.
이것은 사용하시는 Excel 버전에 따라 크게 달라지는 것 같습니다.2007 버전을 사용하고 있는데 테이블을 우클릭해도 마법사 옵션이 제공되지 않습니다.화면 상단의 다른 탭 오른쪽에 추가 'PivotTable Tools'를 표시하려면 피벗 테이블을 클릭해야 합니다.여기에 나타나는 '옵션' 탭을 클릭하면 리본 중앙에 '데이터 원본 변경'이라는 큰 아이콘이 나타납니다.
Excel에서 피벗 테이블을 마우스 오른쪽 버튼으로 클릭하여 마법사를 선택하고 쿼리 창에서 '뒤로'를 클릭하여 '데이터 가져오기...'를 클릭합니다.파일 - 테이블 정의
새로운 접속을 작성하거나 다른 접속을 선택할 수 있습니다.
Excel 2007의 리본에서 데이터 소스를 변경하려면...
워크시트에서 피벗 테이블을 클릭합니다.피벗 테이블 도구, 옵션 탭이라고 표시된 리본으로 이동합니다.Change Data Source 버튼을 선택합니다.대화상자가 나타납니다.
올바른 범위를 지정하여 오류 메시지를 방지하려면...기존 필드의 내용을 선택하고 삭제한 다음 새 데이터 원본 워크시트로 전환하여 데이터 영역을 강조 표시합니다(대화 상자는 모든 창 맨 위에 유지됨).새 데이터 소스를 올바르게 선택하면 대화 상자의 빈 필드(이전에 삭제한 필드)가 채워집니다.[확인] 을 클릭합니다.피벗 테이블로 다시 전환하면 새 소스의 새 데이터로 업데이트됩니다.
- 피벗 테이블을 마우스 오른쪽 버튼으로 클릭하고 피벗 테이블 마법사를 선택합니다.
- '뒤로' 버튼을 두 번 클릭합니다.
- 외부 데이터 소스를 선택하고 다음을 클릭합니다.
- [ Get Data ]을 클릭합니다.
- 첫 번째 탭에서 데이터베이스 첫 번째 옵션은 '새 데이터 원본'입니다.
이 애드온으로 충분히 효과를 볼 수고를 덜 수 있습니다.
http://www.contextures.com/xlPivotPlayPlus01.html
연결 문자열을 표시하고 변경할 수 있습니다.(같은 툴을 사용하여) 필요한 경우 Query SQL도 변경해야 합니다.
PivotTable을 처음부터 다시 만들지 않는 솔루션에 대해서는 조금 주의해 주십시오.피벗 필드의 옵션 이름이 데이터베이스에 표시되는 값과 동기화되지 않을 수 있습니다.
예를 들어, 인구 통계 데이터에 관한 워크북에서 "20-24" 연령대 옵션을 선택하려고 하면 Excel은 실제로 25-29세의 수치를 보여줍니다.물론 이렇게 하고 있다고는 할 수 없습니다.
이 문제를 해결하는 문제에 대해서는, 이하를 참조해 주세요.완전하고 견고하다고 생각합니다만, PivotTables는 잘 사용하지 않기 때문에 피드백을 주시면 감사하겠습니다.
Sub SwapSources()
strOldSource = "2010 Data"
strNewSource = "2009 Data"
Dim tmpArrOut
For Each wsh In ThisWorkbook.Worksheets
For Each pvt In wsh.PivotTables
tmpArrIn = pvt.SourceData
' row 1 of SourceData is the connection string.
' rows 2+ are the SQL code broken down into 255-byte chunks.
' we need to concatenate rows 2+, replace, and then split them up again
strSource1 = tmpArrIn(LBound(tmpArrIn))
strSource2 = ""
For ii = LBound(tmpArrIn) + 1 To UBound(tmpArrIn)
strSource2 = strSource2 & tmpArrIn(ii)
Next ii
strSource1 = Replace(strSource1, strOldSource, strNewSource)
strSource2 = Replace(strSource2, strOldSource, strNewSource)
ReDim tmpArrOut(1 To Int(Len(strSource2) / 255) + 2)
tmpArrOut(LBound(tmpArrOut)) = strSource1
For ii = LBound(tmpArrOut) + 1 To UBound(tmpArrOut)
tmpArrOut(ii) = Mid(strSource2, 255 * (ii - 2) + 1, 255)
Next ii
' if the replacement SQL is invalid, the PivotTable object will throw an error
Err.Clear
On Error Resume Next
pvt.SourceData = tmpArrOut
On Error GoTo 0
If Err.Number <> 0 Then
MsgBox "Problems changing SQL for table " & wsh.Name & "!" & pvt.Name
pvt.SourceData = tmpArrIn ' revert
ElseIf pvt.RefreshTable <> True Then
MsgBox "Problems refreshing table " & wsh.Name & "!" & pvt.Name
Else
' table is now refreshed
' need to ensure that the "display name" for each pivot option matches
' the actual value that will be fed to the database. It is possible for
' these to get out of sync.
For Each pvf In pvt.PivotFields
'pvf.Name = pvf.SourceName
If Not IsError(pvf.SourceName) Then ' a broken field may have no SourceName
mismatches = 0
For Each pvi In pvf.PivotItems
If pvi.Name <> pvi.SourceName Then
mismatches = mismatches + 1
pvi.Name = "_mismatch" & CStr(mismatches)
End If
Next pvi
If mismatches > 0 Then
For Each pvi In pvf.PivotItems
If pvi.Name <> pvi.SourceName Then
pvi.Name = pvi.SourceName
End If
Next
End If
End If
Next pvf
End If
Next pvt
Next wsh
End Sub
Excel에서 피벗 테이블을 마우스 오른쪽 버튼으로 클릭하여 마법사를 선택하고 쿼리 창에서 '뒤로'를 클릭하여 '데이터 가져오기...'를 클릭합니다.파일 - 테이블 정의
새로운 접속을 작성하거나 다른 접속을 선택할 수 있습니다.
완벽하게 작동했습니다.
데이터 가져오기 버튼은 범위 텍스트 입력 상자 옆에 빨간색 화살표가 있는 작은 버튼 옆에 있습니다.
MS Excel 2000 Office 버전의 경우 피벗 테이블을 클릭합니다.리본 위에는 피벗 툴이라고 불리는 탭이 있습니다.데이터 탭에서 데이터 소스를 변경할 수 있습니다.
Excel 2007의 경우 옵션 메뉴/데이터 소스 변경에서 데이터 소스를 변경할 수 있습니다.
언급URL : https://stackoverflow.com/questions/725300/how-to-change-pivot-table-data-source-in-excel
'programing' 카테고리의 다른 글
| 파워셸에서 머리, 꼬리, 더, 덜, 더, 덜, 더, 더, 더, 더, 더, 더, 더, 더, 더, 더, 더, 어떻게 하는 (0) | 2023.04.14 |
|---|---|
| SQL Server - 클러스터된 인덱스와 비클러스터된 인덱스를 사용할 때 (0) | 2023.04.14 |
| SQL Server에서 MONEY 또는 DECIMAL(x,y) 데이터 유형을 선택해야 합니까? (0) | 2023.04.14 |
| 목표 C: 여러 인수를 사용하여 셀렉터를 호출합니다. (0) | 2023.04.14 |
| Linux bash: 다중 변수 할당 (0) | 2023.04.14 |