web-dev-qa-db-fra.com

Filtre de rapport de tableau croisé dynamique utilisant "supérieur à"

J'ai un tableau croisé dynamique qui a l'un des champs (Probabilité) dans un filtre de rapport. Ses valeurs sont des pourcentages au pas de 5 (0,5,10,15, ..., 100). Je voudrais l'utiliser pour filtrer des probabilités supérieures ou égales à une certaine valeur, mais le filtre ne filtre que les choix exacts.

Pour l'instant, j'utilise une solution de contournement consistant à autoriser plusieurs valeurs, puis à sélectionner toutes les valeurs du seuil que je veux, jusqu'à 100. Cette solution, en plus d'être maladroite, ne montre pas ma sélection, ce qui est nécessaire car ce tableau est en cours La valeur d'affichage du filtre est "(plusieurs valeurs)" et je voudrais afficher toutes les valeurs sélectionnées, ou mieux, quelque chose comme "> = 20%". Peu m'importe s'ils apparaissent dans le champ lui-même ou dans une autre cellule en dehors du tableau croisé dynamique.

Mes questions: 1) puis-je faire filtrer le filtre sur> = de ma sélection? Sinon 2) Puis-je afficher les sélections multiples comme "> = 20%"

14
Lukasz

Je sais que c'est un peu tard, mais si cela aide quelqu'un, je pense que vous pourriez ajouter une colonne à vos données qui calcule si la probabilité est ">='PivotSheet'$D$2" (référence une cellule sur le pivot table drap).

Ensuite, ajoutez cette colonne à votre tableau croisé dynamique et utilisez la nouvelle colonne comme true/false filtre.

Vous pouvez ensuite modifier la valeur stockée dans la cellule référencée pour mettre à jour votre seuil de probabilité.

Si j'ai bien compris votre question, cela pourrait vous donner ce que vous vouliez. La valeur du filtre serait affichée sur la feuille avec le pivot et peut être modifiée pour s'adapter à toute modification rapide de votre seuil de probabilité. Le filtre T/F peut être étiqueté "Au-dessus/au seuil de probabilité" ou quelque chose comme ça.

Je l'ai utilisé pour faire quelque chose de similaire. C'était pratique d'avoir la référence de cellule sur la feuille du tableau croisé dynamique afin que je puisse mettre à jour la valeur et rafraîchir le pivot pour modifier rapidement les résultats. Les gens pour qui j'ai fait cela n'ont pas pu se décider sur ce que devrait être ce seuil.

8
OperativePanda

Dans un tableau croisé dynamique Excel, vous avez raison de penser qu'un filtre autorise uniquement les valeurs qui sont explicitement sélectionnées. Cependant, si le champ de filtre est placé sur les lignes ou colonnes du tableau croisé dynamique, vous obtenez un ensemble beaucoup plus large de conditions de filtre d'étiquette, y compris Supérieur à. Si vous avez fait cela dans votre cas, l'avantage supplémentaire serait que les différents niveaux de probabilité qui correspondent à votre condition sont affichés dans le corps du tableau.

4
MattClarke

Après quelques recherches, j'ai finalement obtenu un code VBA pour afficher la valeur du filtre dans une autre cellule:

Dim bRepresentAsRange As Boolean, bRangeBroken As Boolean
Dim sSelection As String
Dim tbl As Variant
bRepresentAsRange = False
bRangeBroker = False

With Worksheets("Forecast").PivotTables("ForecastbyDivision")
            ReDim tbl(.PageFields("Probability").PivotItems.Count)
            For Each fld In .PivotFields("Probability").PivotItems

                If fld.Visible Then
                    tbl(n) = fld.Name
                    sSelection = sSelection & fld.Name & ","
                    n = n + 1
                    bRepresentAsRange = True
                Else
                    If bRepresentAsRange Then
                        bRepresentAsRange = False
                        bRangeBroken = True
                    End If
                End If

            Next fld

            If Not bRangeBroken Then
                Worksheets("Forecast").Range("ProbSelection") = " >= " & tbl(0)
            Else
                Worksheets("Forecast").Range("ProbSelection") = Left(sSelection, Len(sSelection) - 1)
            End If

        End With
0
Lukasz

Peut-être que dans votre source de données, ajoutez une colonne qui fait un sumif sur toutes les lignes. Je ne sais pas à quoi ressemblent vos données, mais quelque chose comme = (sumif ([colonne contenant les têtes de ligne pivotantes), [valeur actuelle de la tête de ligne dans la ligne], colonne de probabilité)>. 2). Cela vous donnera une valeur True lorsque le tableau croisé dynamique affichera> 20%.
Ajoutez ensuite un filtre sur votre tableau croisé dynamique sur cette colonne pour les valeurs VRAIES

0
Lachlan Duncan