web-dev-qa-db-ja.com

Excelでピボットテーブルのデータソースを変更する方法は?

あるデータベースから別のデータベースに変更したい。

ピボットテーブルのコンテキストメニューには、これを行うためのオプションはないようです。

24
adolf garlic

excelでピボットテーブルを右クリックし、ウィザードを選択します。[戻る]をクリックし、クエリウィンドウで[データを取得...]をクリックします。ファイル-テーブル定義

次に、新しい接続を作成するか、別の接続を選択できます

3
adolf garlic

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

21
Zoe

これは、Excelのバージョンに大きく依存しているようです。 2007バージョンを使用していますが、テーブルを右クリックしてもウィザードオプションは提供されません。ピボットテーブルをクリックして、画面上部のその他のタブの右側に追加の[ピボットテーブルツール]を表示する必要があります。ここに表示される[オプション]タブをクリックすると、リボンの中央に[データソースの変更]という名前の大きなアイコンが表示されます。

6
Bilge Rat

Excel 2007のリボンからデータソースを変更するには...

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

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

3
Angelcakes

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

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

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

2
Peter Runhardt
  • ピボットテーブルを右クリックして、[ピボットテーブルウィザード]を選択します。
  • 「戻る」ボタンを2回クリックします。
  • [外部データソース]を選択し、[次へ]をクリックします。
  • [データを取得]をクリックします
  • 最初のタブの[データベース]最初のオプションは[新しいデータソース]です
2
Bravax

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

たとえば、ある人口統計データを扱っているワークブックで、「20-24」年齢層オプションを選択しようとすると、Excelは実際に25〜29歳の数値を表示します。もちろん、これを実行していることはわかりません。

特にこの問題を解決する問題へのプログラム(VBA)アプローチについては、以下を参照してください。かなり完全/堅牢だと思いますが、Pivo​​tTablesはあまり使用しないので、フィードバックに感謝します。

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
2
Alex Labram

mS Excel 2000 Officeバージョンの場合、ピボットテーブルをクリックすると、リボンの上にあるピボットテーブルツールというタブがあります。クリックすると、[データ]タブからデータソースを変更できます

1
sreejith.vk

Excel 2007の場合、[オプション]メニューの[データソースの変更]でデータソースを変更できます。

1
Peter Horvath

excelでピボットテーブルを右クリックし、ウィザードを選択します。[戻る]をクリックし、クエリウィンドウで[データを取得...]をクリックします。ファイル-テーブル定義

次に、新しい接続を作成するか、別の接続を選択できます

完璧に働きました。

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

1
ryan