J'ai un tableau croisé dynamique dans Excel qui utilise un tableau brut comme source de données. Ce tableau croisé dynamique regroupe et résume des lignes.
J'aimerais maintenant utiliser le résultat de ce nouveau tableau croisé dynamique en tant que source de données pour un nouveau tableau croisé dynamique qui modifiera davantage ces données.
Est-ce possible avec Excel? Je suppose que vous pourriez l'appeler 'tableaux croisés dynamiques imbriqués'
Dans une nouvelle feuille (où vous souhaitez créer un nouveau tableau croisé dynamique), appuyez sur la combinaison de touches (Alt + D + P). Dans la liste des options de source de données, sélectionnez "Liste de bases de données Microsoft Excel". Cliquez sur Suivant et sélectionnez le tableau croisé dynamique que vous souhaitez utiliser en tant que source (sélectionnez en commençant par les en-têtes des champs). Je suppose que cette plage est plutôt statique et si vous actualisez le pivot source et que sa taille change, vous devrez également redimensionner la plage. J'espère que cela t'aides.
Je suppose que votre objectif final est d'afficher des valeurs distinctes (uniques) dans votre tableau croisé dynamique d'origine.
Par exemple, vous pouvez avoir un ensemble de données avec OrderNumber, OrderDate, OrderItem, orderQty.
Le premier tableau croisé dynamique vous indiquera la date et la somme de OrderQty et vous souhaiterez probablement voir le nombre de commandes uniques dans le même pivot . Vous ne pourrez pas le faire dans le tableau croisé standard.
Si vous souhaitez le faire, vous aurez besoin d'Office 2016 (ou peut-être que pover Pivot pourrait fonctionner). Dans office 2016, sélectionnez vos données> Insertion> Tableau croisé dynamique> cochez la case "Ajouter ces données au modèle de données"
Ensuite, vous pourrez sélectionner une méthode de regroupement en tant que Distinct (Count)
Personnellement, j’ai abordé cette question d’une manière légèrement différente: j’avais un tableau croisé dynamique interrogeant une source de serveur SQL et j’utilisais le découpeur de la timeline pour limiter les résultats à une plage de dates. Je souhaitais ensuite résumer les résultats du pivot dans un autre tableau.
J'ai sélectionné le tableau croisé dynamique «source» et créé une plage nommée appelée «SourcePivotData».
Créez vos tableaux croisés dynamiques croisés en utilisant la plage nommée comme source.
Dans les événements de la feuille de calcul pour le tableau croisé dynamique source, j'ai mis le code suivant:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
'Update the address of the named range
ThisWorkbook.Names("SourcePivotData").RefersTo = "='" & Target.TableRange1.Worksheet.Name & "'!" & Target.TableRange1.AddressLocal
'Refresh any pivot tables that use this as a source
Dim pt As PivotTable
Application.DisplayAlerts = False
For Each pt In Sheet2.PivotTables
pt.PivotCache.Refresh
Next pt
Application.DisplayAlerts = True
End Sub
Fonctionne bien pour moi! :)
Vous devez d'abord convertir le pivot en valeurs avant de pouvoir le faire:
voici comment j'ai fait cela avant.
Comme @nutsch l'indique, Excel ne fera pas directement ce dont vous avez besoin. Vous devez donc d'abord copier vos données du tableau croisé dynamique. Plutôt que d’utiliser des valeurs telles que copier puis coller, il est préférable de créer des colonnes masquées ou une feuille masquée entière qui copie les valeurs à l’aide de simples formules. L'approche copier-coller n'est pas très utile lorsque le tableau croisé dynamique d'origine est actualisé.
Par exemple, si Sheet1 contient le tableau croisé dynamique d'origine, alors:
=Sheet1!A1
dans une feuille Sheet2! A1=IF(Sheet1!A1="","",Sheet1!A1)
à la place.