2009-04-07 11 views
24

あるデータベースから別のデータベースに変更したいのですが。Excelでピボットテーブルのデータソースを変更するにはどうすればよいですか?

は、右の「戻る」ウィザード クリックを選択エクセル でピボットテーブルの上に クリック「取得データをクリックして、ピボットテーブルのコンテキストメニュー

+2

これはどのように話題ですか?私はBI開発者であり、他の多くの人々が同じ答えを探して来ているようです。 –

答えて

3

上でこれを行うにはどんなオプションがあるように表示されません... 「クエリウィンドウ ファイルで - あなたは

+0

Excel 2007でそのようなメニューオプションがありません – Sam

2
  • 右ピボット]タブをクリックして別の接続を、新規に作成したり、選択することができ、その後

    テーブル定義ピボットテーブルウィザードを選択します。

  • 「戻る」ボタンを2回クリックします。
  • 外部データソースを選択し、次へをクリックします。
  • クリックして、最初のタブ内のデータ
  • を取得し、最初のオプションをデータベース「新しいデータソース」
+0

これは機能しません。ウィザードの[外部データソースの選択]ページには、getdataボタンはありません。そして次のページで「データを取得」をクリックするとすぐに接続を編集する明白な方法はありません –

+0

改訂、最後の点を参照してください。 – Bravax

2

あるこのアドオンあなたのためのトリックを行います。

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

これは、接続文字列を示しており、それを変更することができます。 必要に応じて(同じツールを使用して)クエリSQLを変更することを忘れないでください。

1

右の[戻る]ウィザードクリックを選択 Excelのピボットテーブルをクリックして「データを取得...」 をクリックしてクエリウィンドウファイル で - テーブル定義

、あなたは新しいを作成することができますか 別の接続を選択する

を完全に選択してください。

get dataボタンは、範囲テキスト入力ボックスの横に赤い矢印が付いた小さなボタンの横にあります。

21

テーブルの任意の場所をクリックして、ページ上部のタブに移動して[オプション]を選択すると、[データソースの変更]の選択が表示されます。

6

このように見えるのは、使用しているExcelのバージョンによって大きく異なります。私は2007バージョンを使用しており、テーブルを右クリックするとウィザードオプションは表示されません。ピボットテーブルをクリックすると、画面の上部にある他のタブの右側に追加の「ピボットテーブルツール」が表示されます。ここに表示される「オプション」タブをクリックすると、「データソースの変更」というリボンの中央に大きなアイコンが表示されます。ピボットテーブルツールと呼ばれるribon上記のタブを、見つけるMS Excel 2000でOfficeのバージョン、 クリックピボットテーブル のため

1

- あなたがする場合は、[データ]タブ

1

からのデータソースを変更することができます ことでクリックExcel 2007 [オプション]メニュー/データソースの変更でデータソースを変更することができます

2

ピボットテーブルを最初から再作成する必要がないソリューションには少し注意してください。ピボット・フィールドのオプション名は、データベースに表示されている値と同期しなくなる可能性があります。

たとえば、私は人口統計データを扱う1つのワークブックで、「20-24」年齢帯のオプションを選択しようとすると、実際には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

を...

クリックしてワークシートにあなたのピボットテーブルの上に。ピボットテーブルツール、オプションタブが表示されているリボンに移動します。 [データソースの変更]ボタンを選択します。ダイアログボックスが表示されます。

正しい範囲を取得してエラーメッセージを表示しないようにするには...既存のフィールドの内容を選択して削除し、新しいデータソースワークシートに切り替えてデータ領域を強調表示します(ダイアログボックスはすべてのウィンドウ)。新しいデータソースを正しく選択すると、ダイアログボックスの空白のフィールド(前に削除したもの)が入力されます。 [OK]をクリックします。ピボットテーブルに戻り、新しいソースの新しいデータで更新されているはずです。

関連する問題