Microsoft Excel

Herbers Excel/VBA-Archiv

Pivot .. enthält | Herbers Excel-Forum


Betrifft: Pivot .. enthält von: Mike
Geschrieben am: 19.11.2009 12:28:39


Hey Cracks,

bin leider mit Pivot immer noch etwas auf Kriegsfuss, daher folgende
Frage:

Mit dem Autofilter kann man ja benutzerdefiniert angeben "enthält"
z.B. "ülle" (aus Müller oder Mülleberg oder ...)

Kann ich bei Pivot eine solche Einschränkung auch definieren, um
schnell Teile einer grossen Datenmenge anzuzeigen? Oder wär das
dann vorgelagert zu Pivot eben wieder mit Autofilter?

Danke und Gruss, Mike

  

Betrifft: Pivot-Tabelle filtern : Ansatz per VBA von: NoNet
Geschrieben am: 19.11.2009 14:00:53

Hallo Mike,

das lässt sich per VBA lösen.
Hier ein kleines Beispiel : Auf dem aktuellen Tabellenblatt wird die 1.PivotTabelle nach dem Zeilenfeld "Ort" gefiltert. Es werden nur die Orte angezeigt, die den Wortteil "burg" enthalten (z.B. Augsburg, Burghausen, Freiburg, Hamburg, Wolfsburg, etc.), alle anderen Zeilen werden ausgeblendet :

Option Explicit
'19.11.2009, NoNet - www.excelei.de

Sub PivotFiltern()
    Dim pivT As PivotTable, pivFeldZ As PivotField, pivItem As PivotItem
    Set pivT = ActiveSheet.PivotTables(1)   'Erste PivotTabelle des Blattes
    Set pivFeldZ = pivT.RowFields("Ort")    'Zeilenfeld "Ort"
    
    For Each pivItem In pivFeldZ.PivotItems
        '"burg" bitte in Kleinbuchstaben angeben !!
        If InStr(LCase(pivItem), "burg") Then  'Wenn der Ort "burg" enthält
            pivItem.Visible = True          'Ort anzeigen
        Else
            pivItem.Visible = False         'Ansonsten : Ort ausblenden
        End If
    Next
End Sub

Sub PivotAlleAnzeigen()
    'Zeigt alle Orte an und löscht nicht mehr existierende Orte aus der Auswahl
    Dim pivT As PivotTable, pivFeldZ As PivotField, pivItem As PivotItem
    Set pivT = ActiveSheet.PivotTables(1)   'Erste PivotTabelle des Blattes
    Set pivFeldZ = pivT.RowFields("Ort")    'Zeilenfeld "Ort"
    
    For Each pivItem In pivFeldZ.PivotItems
        If pivItem.RecordCount > 0 Then
            pivItem.Visible = True      'Ort anzeigen
        Else
            pivItem.Delete 'Ort löschen, wenn kein Datensatz dazu existiert
        End If
    Next
End Sub
Beachte, dass der zu suchende Wortteil (hier: "burg") im Code in KLEINBUCHSTABEN angegeben werden muss !

Gruß, NoNet


  

Betrifft: AW: Pivot-Tabelle filtern : Ansatz per VBA von: Mike
Geschrieben am: 19.11.2009 15:18:04


Hey NoNet,

danke für das Beispiel, das System ist immer noch am Rechnen,
sieht spassig aus .. ;-)

Gruss
Mike


  

Betrifft: AW: Pivot .. enthält von: Andre´
Geschrieben am: 19.11.2009 14:55:12

Hallo Mike,

du kannst auch einen Autofilter über die Pivot-Daten legen.

MFG Andre


  

Betrifft: AW: Pivot .. enthält von: Mike
Geschrieben am: 19.11.2009 15:19:31


Hey André,

danke, das war auch mein erster Gedanke, den Autofilter direkt über Pivot
wollte er nicht akzeptieren, überlappend funktionierts jedoch.

Gruss
Mike


  

Betrifft: AW: Pivot .. enthält von: Andre ´
Geschrieben am: 19.11.2009 18:14:02

Hallo Mike,
nachfolgend ein Bsp.:

https://www.herber.de/bbs/user/66055.xls

MFG Andre


Beiträge aus den Excel-Beispielen zum Thema "Pivot .. enthält"