Spécifications de filtrage facile pour un tableau croisé dynamique (Microsoft Excel)
David a de nombreux tableaux croisés dynamiques qui sont filtrés par année. Dans ses données, il y a un champ séparé pour l’année (valeurs 2016, 2017, 2018, etc., dérivées via la fonction Année). Il exclut les années plus âgées dans la plupart des cas et les rapports sur les années plus récentes. Quand une nouvelle année arrive, c’est un processus fastidieux pour David de modifier chaque tableau croisé dynamique et de sélectionner l’année la plus récente. Il se demande s’il existe un moyen de spécifier les valeurs de sélection pour un filtre de tableau croisé dynamique afin qu’il n’ait pas besoin de passer par l’édition fastidieuse.
Le moyen le plus simple de le faire serait peut-être d’ajouter une seule colonne aux données source de votre tableau croisé dynamique. La colonne peut contenir une formule simple qui indique si la ligne se trouve dans la plage souhaitée pour l’inclusion dans le tableau croisé dynamique. Par exemple, si la colonne A contient la date de transaction pour la ligne, vous pouvez inclure les éléments suivants dans la colonne ajoutée:
=YEAR(A2)>YEAR(NOW())-3
Le résultat de la formule est Vrai ou Faux, selon que l’opération a eu lieu dans les trois années précédentes ou non. Ainsi, si cette formule est évaluée en 2018, toutes les transactions entre 2016, 2017 et 2018 renverront True; tous les autres seraient faux. Ensuite, dans votre définition de tableau croisé dynamique, vous pouvez filtrer en fonction du contenu de cette colonne particulière, garantissant ainsi que seules ces lignes True sont incluses dans le tableau croisé dynamique.
Si vous préférez une solution basée sur des macros, vous pouvez facilement en développer une qui examine chacun des tableaux croisés dynamiques et modifie le champ PivotField nommé « Year »
de sorte qu’il était égal à une année souhaitée. Ce qui suit montre à quel point il est facile de faire un tel changement:
Sub ChangePivotYear() Dim sht As Worksheet Dim pvt As PivotTable Dim iYear as Integer iYear = 2018 ' Change to desired year For Each sht In Worksheets For Each pvt In sht.PivotTables pvt.PivotFields("Year").ClearAllFilters pvt.PivotFields("Year").CurrentPage = iYear Next pvt Next sht End Sub
La macro définit le champ sur 2018; si vous souhaitez utiliser une année différente, modifiez simplement ce qui est affecté à la variable Année. Notez également que la macro affecte tous les tableaux croisés dynamiques de l’ensemble du classeur.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (12571) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.