Comment modifier la source de données du tableau de pivotement dans Excel? [fermé]

je veux le changer d'une base de données à une autre.

il ne semble pas y avoir d'options pour faire cela dans le menu contextuel de la table de pivotement

24
demandé sur adolf garlic 2009-04-07 15:54:13

10 réponses

il suffit de le comprendre-cliquez n'importe où dans la table, puis allez aux onglets en haut de la page et sélectionnez Options-à partir de là, vous verrez une sélection de sources de données de changement.

21
répondu Zoe 2010-08-11 20:31:46

on dirait que cela dépend fortement de votre version D'Excel. J'utilise la version 2007 et elle n'offre aucune option de magicien lorsque vous faites un clic droit sur la table. Vous devez cliquer sur la table de pivotement pour faire apparaître des "outils pivotants" supplémentaires à la droite des autres onglets en haut de l'écran. Cliquez sur l'onglet "options" qui apparaît ici, puis il y a une grande icône au milieu du ruban nommé "change data source".

6
répondu Bilge Rat 2011-03-14 11:31:29

clic droit sur la table pivotante dans excel choisissez assistant cliquez sur 'retour' cliquez sur " obtenir les données...' dans la fenêtre de requête Fichier De Définition De La Table

alors vous pouvez créer une nouvelle connexion ou choisir une connexion différente

3
répondu adolf garlic 2009-04-07 11:55:32

afin de changer la source de données du ruban dans excel 2007...

cliquez sur votre table de pivotement dans la feuille de travail. Allez sur le ruban où il est indiqué de pivoter les outils de Table, onglet Options. Sélectionnez le bouton Modifier la Source des données. Une boîte de dialogue apparaîtra.

pour obtenir la bonne portée et éviter un message d'erreur... sélectionnez le contenu du champ existant et supprimez-le, puis passez à la nouvelle feuille de travail source de données et mettez en surbrillance la zone de données (la boîte de dialogue restera sur dessus de toutes les fenêtres). Une fois que vous avez sélectionné la nouvelle source de données correctement, il remplira le champ vide (que vous avez supprimé auparavant) dans la boîte de dialogue. Cliquez sur OK. Revenez à votre tableau croisé dynamique et devrait être mis à jour avec les nouvelles données de la nouvelle source.

3
répondu Angelcakes 2012-03-12 22:03:51
  • clic droit sur la table de pivotement, choisir L'Assistant pivotable.
  • cliquez deux fois sur le bouton "Retour".
  • choisir une Source de données externe, cliquez sur Suivant.
  • Cliquez Sur Obtenir Des Données
  • dans le premier onglet, bases de données la première option est 'New Data Source'
2
répondu Bravax 2009-04-07 12:22:16

cet Add-on fera l'affaire pour vous.

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

Il affiche la chaîne de connexion, et lui permet d'être changé. N'oubliez pas de changer le SQL de requête aussi, si nécessaire (avec le même outil).

2
répondu 2009-06-09 13:21:30

méfiez-vous de toute solution qui n'implique pas de recréer le pivot à partir de zéro. Il est possible que les noms des options de vos champs de pivot ne soient pas synchronisés avec les valeurs qu'ils présentent dans la base de données.

par exemple, dans un cahier où je traite des données démographiques, si vous essayez de sélectionner l'option "tranche d'âge de 20 à 24 ans", Excel vous présente en fait les chiffres pour les 25 à 29 ans. Ça ne vous dit pas qu'il fait ça, bien sûr.

Voir ci-dessous pour une approche programmatique (VBA) du problème qui résout ce problème entre autres. Je pense que c'est assez complet/robuste, mais je n'utilise pas pivotables beaucoup donc apprécierait la rétroaction.

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
répondu Alex Labram 2011-10-07 15:42:59

clic droit sur la table de pivotement excel choisir l'Assistant cliquer "retour" cliquer 'obtenir les données..."dans le fichier de la fenêtre de requête - Définition De La Table

alors vous pouvez créer un nouveau ou choisir un différents connexion

a parfaitement fonctionné.

le bouton get data est à côté du bouton minuscule avec une flèche rouge à côté de la zone de saisie du texte.

1
répondu ryan 2010-01-20 14:20:28

pour MS excel 2000 office version, cliquez sur le tableau croisé dynamique vous trouverez un onglet au - dessus du ribon, appelé outil pivotable-cliquez sur ce Vous pouvez changer la source de données à partir de l'onglet Données

1
répondu sreejith.vk 2011-07-13 11:51:31

dans le cas D'Excel 2007, vous pouvez modifier la source de données dans le menu Options / Modifier la Source de données

1
répondu Peter Horvath 2011-08-05 07:49:12