21 Stimmen

PivotTable's Report Filter mit "größer als" verwenden

Ich habe eine Pivot-Tabelle, die eines der Felder (Wahrscheinlichkeit) in einem Berichtsfilter hat. Die Werte sind Prozentsätze in Schritten von 5 (0,5,10,15,...,100). Ich möchte sie verwenden, um Wahrscheinlichkeiten zu filtern, die größer oder gleich einem bestimmten Wert sind, aber der Filter filtert nur exakte Auswahlmöglichkeiten.

Derzeit verwende ich einen Workaround, indem ich mehrere Werte zulasse und dann alle Werte ab dem Schwellenwert auswähle, bis zu 100 Diese Lösung, abgesehen davon, dass sie umständlich ist, zeigt meine Auswahl nicht an, was notwendig ist, da diese Tabelle ausgedruckt wird. Der Anzeigewert des Filters lautet "(Mehrere Werte)" und ich möchte alle ausgewählten Werte anzeigen oder noch besser etwas wie ">=20%". Es ist mir egal, ob sie im Feld selbst oder in einer anderen Zelle außerhalb der Pivot-Tabelle angezeigt werden.

Meine Fragen: 1) Kann ich den Filter auf >= meiner Auswahl filtern lassen? Wenn nicht 2) Kann ich die mehrfachen Auswahlen wie ">=20%" anzeigen?

15voto

OperativePanda Punkte 151

Ich weiß, dass es etwas spät ist, aber wenn das jemandem hilft, denke ich, dass Sie eine Spalte zu Ihren Daten hinzufügen könnten, die berechnet, ob die Wahrscheinlichkeit ">='PivotSheet'$D$2" beträgt (verweisen Sie auf eine Zelle auf dem Blatt Pivot-Tabelle).

Fügen Sie dann diese Spalte Ihrer Pivot-Tabelle hinzu und verwenden Sie die neue Spalte als Wahr/Falsch-Filter.

Sie können dann den Wert, der in der referenzierten Zelle gespeichert ist, ändern, um Ihre Wahrscheinlichkeitsschwelle zu aktualisieren.

Wenn ich Ihre Frage richtig verstanden habe, könnte Ihnen das weiterhelfen. Der Filterwert würde auf dem Blatt mit der Pivot-Tabelle angezeigt und kann geändert werden, um schnelle Anpassungen an Ihrer Wahrscheinlichkeitsschwelle vorzunehmen. Der W/F-Filter kann mit "Über/Auf Wahrscheinlichkeitsschwelle" oder ähnlich beschriftet werden.

Ich habe das verwendet, um etwas Ähnliches zu tun. Es war praktisch, die Zellreferenz auf dem Pivot-Tabellenblatt zu haben, damit ich den Wert aktualisieren und die Pivot-Tabelle schnell ändern konnte. Die Leute, für die ich das gemacht habe, konnten sich nicht entscheiden, wie hoch die Schwelle sein sollte.

4voto

MattClarke Punkte 1682

In einer Excel-Pivottabelle ist es korrekt, dass ein Filter nur Werte zulässt, die explizit ausgewählt wurden. Wenn das Filterfeld jedoch in den Zeilen oder Spalten der Pivottabelle platziert wird, erhalten Sie eine viel breitere Palette von Bedingungen für den Etikettenfilter, einschließlich Größer Als. Wenn Sie das in Ihrem Fall getan haben, wäre der zusätzliche Vorteil, dass die verschiedenen Wahrscheinlichkeitsstufen, die Ihrer Bedingung entsprechen, im Tabellenkörper angezeigt werden.

1voto

Jerry Boettcher Punkte 11

Eine Möglichkeit, dies zu tun, besteht darin, Ihr Feld aus dem Filterbereich in den Zeilenabschnitt der Pivot-Tabelle zu ziehen. Gruppieren Sie dann die Werte, die Sie behalten möchten, in einer Gruppe, indem Sie die Gruppenoption im Menü verwenden. Nachdem dies abgeschlossen ist, ziehen Sie Ihr Feld zurück in den Filterbereich. Die Gruppierung bleibt erhalten und Sie können ein Häkchen setzen oder entfernen, um viele Werte zu entfernen.

0voto

Lukasz Punkte 547

Nach einigen Recherchen habe ich endlich einen VBA-Code erhalten, um den Filterwert in einer anderen Zelle anzuzeigen:

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

0voto

Lachlan Duncan Punkte 11

Vielleicht sollten Sie in Ihrer Datenquelle eine Spalte hinzufügen, die eine Sumif über alle Zeilen durchführt. Ich bin mir nicht sicher, wie Ihre Daten aussehen, aber etwas wie =(sumif([Spalte, die Pivot-Zeilenüberschriften enthält],[aktueller Zeilenüberschriftenwert in der Zeile], Wahrscheinlichkeitsspalte)>.2). Dies wird Ihnen ein 'True' geben, wenn die Pivottabelle >20% anzeigt.
Fügen Sie dann einen Filter in Ihrer Pivottabelle für die TRUE-Werte hinzu

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X