Ich möchte es von einer Datenbank in eine andere ändern.
Im Kontextmenü der Pivot-Tabelle gibt es anscheinend keine entsprechenden Optionen
klicken Sie mit der rechten Maustaste auf die Pivot-Tabelle in Excel. Wählen Sie den Assistenten. Klicken Sie auf 'Zurück'. Klicken Sie auf 'Daten abrufen ...' im Abfragefenster Datei - Tabellendefinition
dann können Sie eine neue Verbindung erstellen oder eine andere auswählen
Klicken Sie einfach mit der Maus auf eine beliebige Stelle in der Tabelle, gehen Sie zu den Registerkarten oben auf der Seite und wählen Sie Optionen. Von dort wird eine Auswahl zum Ändern der Datenquelle angezeigt.
Das hängt stark von Ihrer Excel-Version ab. Ich verwende die Version 2007 und es bietet keine Assistentenoption an, wenn Sie mit der rechten Maustaste auf die Tabelle klicken. Sie müssen auf die Pivot-Tabelle klicken, damit rechts neben den anderen Registerkarten am oberen Bildschirmrand zusätzliche PivotTable-Tools angezeigt werden. Klicken Sie auf die Registerkarte "Optionen", die hier angezeigt wird. In der Mitte des Menübands befindet sich ein großes Symbol mit dem Namen "Datenquelle ändern".
Um die Datenquelle aus dem Menüband in Excel 2007 zu ändern ...
Klicken Sie im Arbeitsblatt auf Ihre Pivot-Tabelle. Wechseln Sie zu der Multifunktionsleiste mit der Aufschrift Pivot Table Tools, Options Tab. Klicken Sie auf die Schaltfläche Datenquelle ändern. Ein Dialogfeld wird angezeigt.
Um den richtigen Bereich zu ermitteln und eine Fehlermeldung zu vermeiden ... wählen Sie den Inhalt des vorhandenen Felds aus und löschen Sie es. Wechseln Sie dann zum neuen Datenquellen-Arbeitsblatt und markieren Sie den Datenbereich (das Dialogfeld bleibt in allen Fenstern im Vordergrund). Sobald Sie die neue Datenquelle korrekt ausgewählt haben, wird das leere Feld (das Sie zuvor gelöscht haben) im Dialogfeld ausgefüllt. OK klicken. Wechseln Sie zurück zu Ihrer Pivot-Tabelle, und sie sollte mit den neuen Daten aus der neuen Quelle aktualisiert worden sein.
Dieses Add-on erledigt den Trick für Sie.
http://www.contextures.com/xlPivotPlayPlus01.html
Hier wird die Verbindungszeichenfolge angezeigt und kann geändert werden. Vergessen Sie nicht, bei Bedarf auch die Abfrage-SQL zu ändern (mit demselben Tool).
Seien Sie vorsichtig bei Lösungen, bei denen die PivotTable nicht von Grund auf neu erstellt wird. Es ist möglich, dass die Optionsnamen Ihrer Pivot-Felder nicht mehr mit den Werten übereinstimmen, die sie in der Datenbank darstellen.
Wenn Sie beispielsweise in einer Arbeitsmappe mit demografischen Daten versuchen, die Altersgruppenoption "20-24" auszuwählen, zeigt Excel die Zahlen für die Altersgruppen 25-29 an. Es sagt dir natürlich nicht, dass es das tut.
Im Folgenden finden Sie einen programmatischen Ansatz (VBA) für das Problem, mit dem dieses Problem unter anderem behoben wird. Ich denke, es ist ziemlich vollständig/robust, aber ich benutze PivotTables nicht so sehr, würde mich über Feedback freuen.
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
klicken Sie für die Office-Version von MS Excel 2000 auf die Pivot-Tabelle. Über der Multifunktionsleiste befindet sich eine Registerkarte mit der Bezeichnung Schwenkbares Werkzeug. Klicken Sie auf die Registerkarte Daten, um die Datenquelle zu ändern
Im Falle von Excel 2007 können Sie die Datenquelle im Menü Optionen/Datenquelle ändern ändern
klicken Sie mit der rechten Maustaste auf die Pivot-Tabelle in Excel. Wählen Sie den Assistenten. Klicken Sie auf 'Zurück'. Klicken Sie auf 'Daten abrufen ...' im Abfragefenster Datei - Tabellendefinition
dann können Sie eine neue Verbindung erstellen oder eine andere auswählen
hat einwandfrei funktioniert.
die Schaltfläche zum Abrufen von Daten befindet sich neben der kleinen Schaltfläche mit einem roten Pfeil neben dem Bereichstext-Eingabefeld.