Wenk: Ander tale is Google-vertaal. U kan die English weergawe van hierdie skakel.
Teken aan
x
or
x
x
registreer
x

or

Hoe kan jy 'n pivot tabel filter op grond van 'n spesifieke celwaarde in Excel?

Gewoonlik filter ons data in 'n draaitafel deur die waardes van die keuselys te keur as die linkerskermkiekie wat vertoon word. As jy 'n draaitafel meer dinamies wil maak deur te filter, kan jy probeer om dit te filter op grond van die waarde in 'n spesifieke sel. Die VBA-metode in hierdie artikel sal u help om die probleem op te los.

Filter Pivot Table gebaseer op 'n spesifieke selwaarde met VBA-kode


Maklik kies die hele rye gebaseer op selwaarde in 'n sertiese kolom:

Die Kies spesifieke selle nut van Kutools for Excel kan u help om die volledige rye gebaseer op selwaarde in 'n sertiese kolom in Excel te kies, soos hieronder aangedui. Nadat u alle rye gebaseer op selwaarde gekies het, kan u dit handmatig skuif of kopieer na 'n nuwe plek soos u in Excel nodig het.

Kutools for Excel: met meer as 200 handige Excel invoegtoepassings, kan u sonder beperking in 60 dae probeer. Laai die gratis proeflopie nou af!


Filter Pivot Table gebaseer op 'n spesifieke selwaarde met VBA-kode

Die volgende VBA-kode kan u help om 'n draaitabel te filter wat gebaseer is op 'n spesifieke selwaarde in Excel. Doen asseblief as volg.

1. Voer asseblief 'n waarde in wat u sal verander Pivot Tabel gebaseer op 'n sel vooraf (hier kies ek sel H6).

2. Open die werkblad bevat die draaitafel wat jy sal selekteer volgens celwaarde. Klik met die rechtermuisknop op die blad oortjie en kies Kode Wys in die konteks kieslys. Sien skermkiekie:

3. In die opening Microsoft Visual Basic vir toepassings venster, kopieer onder VBA kode in die kode venster.

VBA-kode: Filter Pivot Tabel gebaseer op selwaarde

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6:H7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

Notes: In die kode,

1) "Sheet1"Is die naam van die werkblad.

2) "PivotTable2"Is die naam van die draaipunt.

3) Die filterveld in die spiltafel word "kategorie".

4) Die waarde wat u die draaitafel wil filter, word in sel geplaas H6.

U kan die bogenoemde veranderlike waardes verander soos u nodig het

4. Druk die alt + Q sleutels om die Microsoft Visual Basic vir toepassings venster.

Dan is die draaitafel filter gebaseer op die waarde in sel H6 soos hieronder aangedui skermkiekie:

U kan die selwaarde na ander verander soos u benodig.

nota: Waardes wat jy in sel H6 invoer, moet presies ooreenstem met die waardes in die keuselys Kategorie van die draaitafel.


Office Tab - Tabbed navigeer, redigering en bestuur van werkboeke in Excel:

Office Tab bring die oortjie koppelvlak soos gesien in webblaaiers soos Google Chrome, Internet Explorer nuwe weergawes en Firefox na Microsoft Excel. Dit sal 'n tydbesparende hulpmiddel wees en onvervangbaar in jou werk. Sien onderstaande demo:

Kliek vir gratis toets van die Office Tab!

Office Tab vir Excel


Verwante artikels:


Aanbevole Produktiviteitsinstrumente

Lint van Excel (met Kutools vir Excel geïnstalleer)

300 + Gevorderde funksies Verhoog jou produktiwiteit deur 71%, en help jou om uit die menigte te staan!

Wil jy jou daaglikse werk vinnig en perfek voltooi? Kutools vir Excel bring 300 + koel en kragtige gevorderde funksies (Kombineer werkboeke, som volgens kleur, verdeel selinhoud, verander datum, en so aan ...) vir 1500 + werk scenario's, help jou om op te los 82% Excel probleme.

  • Hanteer alle ingewikkelde take in sekondes, help om jou werksvermoë te verbeter, kry sukses uit die strawwe kompetisie, en moenie bekommerd wees dat jy ontslaan word nie.
  • Bespaar baie werk tyd, laat baie tyd vir jou om die familie lief te hê en te versorg en nou 'n gemaklike lewe te geniet.
  • Verminder duisende sleutelbord- en muiskliek elke dag, verlig jou moeg oë en hande, en gee jou 'n gesonde liggaam.
  • Word 'n Excel-deskundige in 3 minute en kry 'n bewonderende blik van jou kollegas of vriende.
  • Moet nie meer pynlike formules en VBA-kodes onthou nie, 'n ontspannende en aangename gees, gee jou 'n opwinding wat jy nog nooit tevore gehad het nie.
  • Spandeer slegs $ 39, maar die moeite werd as $ 4000 opleiding van ander. Word gebruik deur 110,000 elites en 300 + bekende maatskappye.
  • 60-dag onbeperkte gratis proeflopie. 60-dag geld terug waarborg. Gratis opgradering en ondersteuning vir 2 jaar. Koop een keer, gebruik vir ewig.
  • Verander die manier waarop jy nou werk en gee jou dadelik 'n beter lewe!

Office Tab Bring Doeltreffende En Handige Tabs Office (insluitend Excel), Net soos Chrome, Firefox, en Nuwe IE

  • Verhoog jou produktiwiteit deur 50% wanneer jy verskeie dokumente bekyk en redigeer.
  • Verminder elke dag honderde muis klik vir jou, sê totsiens aan die hand van die muis.
  • Maak en skep dokumente in nuwe oortjies van dieselfde venster, eerder as in nuwe vensters.
  • Help jou om vinniger en makliker uit die skare uit te kom! Een sekonde om te wissel tussen dekades oop dokumente!
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Justin · 8 months ago
    How would you do this with a report filter that has a hierarchy?

  • To post as a guest, your comment is unpublished.
    Daniel · 9 months ago
    Using this code (updated for my variables of course), when changing the field, the filter changes momentarily to the correct one, and then clears itself almost immediately. Trying to figure out why it's doing this (wondering if it has something to do with the ClearAllFilters at the end of the sub?)