2009-04-07 6 views
24

한 데이터베이스에서 다른 데이터베이스로 변경하고 싶습니다.Excel에서 피벗 테이블 데이터 원본을 변경하는 방법?

바로 '뒤로'마법사 클릭을 선택 엑셀 에서 피벗 테이블에 클릭 '얻을 데이터를 클릭하여 피벗 테이블 상황에 맞는 메뉴

+2

어떻게 주제에서 벗어 났습니까?! 저는 BI 개발자로서 많은 사람들이 같은 대답을 찾고 있습니다. –

답변

3

에서이 작업을 수행 할 수있는 옵션이있을 나타나지 않습니다 ... '쿼리 창 파일에서 - 당신이

+0

Excel 2007에서는 이러한 메뉴 옵션이 없습니다. – Sam

2
  • 오른쪽 피벗 탭을 클릭 다른 연결을 새로 만들거나 선택할 수 있습니다 다음

    테이블 정의 파일 메뉴에서 피벗 테이블 마법사를 선택하십시오.

  • '뒤로'버튼을 두 번 클릭하십시오.
  • 외부 데이터 원본을 선택하고 다음을 클릭하십시오.
  • 을 클릭하여 첫 번째 탭에서
  • 데이터
  • 가져 오기 첫 번째 옵션입니다 데이터베이스, '새 데이터 원본'
+0

이 방법은 작동하지 않습니다. 마법사의 '외부 데이터 원본 선택'페이지에는 getdata 단추가 없습니다. 다음 페이지에서 '데이터 가져 오기'를 클릭하면 바로 연결을 편집 할 수있는 확실한 방법이 없습니다. –

+0

수정 됨, 마지막 지점을 참조하십시오. – Bravax

2

이 부가 기능은 당신을 위해 트릭을 할 것입니다.

http://www.contextures.com/xlPivotPlayPlus01.html

그것은 연결 문자열을 표시하고,은 변경 될 수있다. 필요한 경우 동일한 도구로 쿼리 SQL을 변경하는 것을 잊지 마십시오.

1

바로 '다시'마법사 클릭을 선택 엑셀의 피벗 테이블을 클릭 '데이터를 얻을 ...' 을 클릭 쿼리 창 파일 에서 - 테이블 정의

다음 새를 만들거나 다른 연결

을 선택하십시오.

데이터 가져 오기 버튼은 범위 텍스트 입력 상자 옆에 빨간색 화살표가있는 작은 버튼 옆에 있습니다.

21

테이블의 아무 곳이나 마우스로 클릭 한 다음 페이지 상단의 탭으로 이동하여 옵션을 선택하면 데이터 소스 변경 선택 항목이 표시됩니다.

6

이 모양은 Excel의 버전에 따라 크게 달라집니다. 2007 버전을 사용하고 있으며 테이블을 마우스 오른쪽 버튼으로 클릭 할 때 마법사 옵션이 제공되지 않습니다. 피벗 테이블을 클릭하면 화면 상단의 다른 탭 오른쪽에 '피벗 테이블 도구'가 추가로 표시됩니다. 여기에 나타나는 '옵션'탭을 클릭하면 '데이터 소스 변경'이라는 리본 중간에 큰 아이콘이 나타납니다.

MS 엑셀 2000 Office 버전에 대한
1

, 피벗 테이블 도구라는 ribon 위의 탭을 찾을 수 피벗 테이블 에 클릭 - 당신의 경우 데이터 탭에서

1

을 데이터 소스를 변경할 수 있습니다 것을 클릭 Excel 2007 옵션 메뉴/데이터 소스 변경에서 데이터 소스를 변경할 수 있습니다.

2

피벗 테이블을 처음부터 다시 만드는 작업을 포함하지 않는 솔루션을 염두에 두십시오. 피벗 필드의 옵션 이름이 데이터베이스에 표시된 값과 동기화되지 않을 수 있습니다.

예를 들어 인구 통계 학적 데이터가 포함 된 통합 문서에서 "20-24"연령대 옵션을 선택하면 Excel에서 실제로 25-29 세의 숫자를 표시합니다. 물론이 일을한다고 말하지는 않습니다.

이 문제를 해결하는 문제에 대한 프로그래밍 방식 (VBA) 접근법은 아래를 참조하십시오. 필자는 이것이 완전하고 강건하다고 생각하지만 피벗 테이블을 많이 사용하지 않아 피드백을 높이 평가할 것입니다. Excel 2007에서 리본에서 데이터 소스를 변경하려면

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 
3

... 워크 시트에 피벗 테이블에

을 클릭합니다. 피벗 테이블 도구, 옵션 탭이 표시된 리본으로 이동하십시오. 데이터 소스 변경 버튼을 선택하십시오. 대화 상자가 나타납니다.

올바른 범위를 얻고 오류 메시지가 표시되지 않도록하려면 ... 기존 필드의 내용을 선택하고 삭제 한 다음 새 데이터 원본 워크 시트로 전환하고 데이터 영역을 강조 표시합니다 (대화 상자는 모든 창). 새 데이터 소스를 올바르게 선택하면 대화 상자에서 이전에 삭제 한 빈 필드가 채워집니다. 확인을 클릭하십시오. 피봇 테이블로 다시 전환하면 새 소스의 새 데이터로 업데이트되어야합니다.