Wskazówka: inne języki są tłumaczone przez Google. Możesz odwiedzić English wersja tego linku.
Zaloguj Się
x
or
x
x
Zarejestruj
x

or

Jak filtrować tabelę przestawną na podstawie określonej wartości komórki w programie Excel?

Zwykle filtrujemy dane w tabeli przestawnej, sprawdzając wartości z rozwijanej listy, jak pokazano na lewym ekranie. Jeśli chcesz, aby tabela przestawna była bardziej dynamiczna przez filtrowanie, możesz spróbować filtrować ją na podstawie wartości w określonej komórce. Metoda VBA w tym artykule pomoże ci rozwiązać problem.

Filtruj tabelę przestawną na podstawie określonej wartości komórki z kodem VBA


Łatwo wybieraj całe wiersze w oparciu o wartość komórki w kolumnie certian:

. Wybierz określone komórki użyteczność Kutools dla programu Excel może pomóc Ci szybko wybrać całe wiersze na podstawie wartości komórki w kolumnie certykatu w Excelu, jak pokazano na zrzucie ekranu. Po wybraniu wszystkich wierszy na podstawie wartości komórki można ręcznie przenieść lub skopiować je do nowej lokalizacji, zgodnie z potrzebami w programie Excel.

Kutools dla programu Excel: z więcej niż 200 poręcznymi dodatkami do Excela, możesz wypróbować bez ograniczeń w 60 dniach. Pobierz bezpłatną wersję próbną teraz!


Filtruj tabelę przestawną na podstawie określonej wartości komórki z kodem VBA

Poniższy kod VBA może pomóc w filtrowaniu tabeli przestawnej na podstawie określonej wartości komórki w programie Excel. Wykonaj następujące czynności.

1. Wprowadź wartość, którą wcześniej będziesz filtrować tabelę przestawną na podstawie komórki (tutaj wybieram komórkę H6).

2. Otwórz arkusz roboczy zawiera tabelę przestawną, którą będziesz filtrować według wartości komórki. Następnie kliknij kartę arkusza prawym przyciskiem myszy i wybierz opcję Wyświetl kod z menu kontekstowego. Zobacz zrzut ekranu:

3. W otwarciu Microsoft Visual Basic for Applications okno, skopiuj poniższy kod VBA do okna kodu.

Kod VBA: Filtr tabeli przestawnej na podstawie wartości komórki

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

Uwagi: W kodzie,

1) "Sheet1"Jest nazwą arkusza roboczego.

2) "PivotTable2"Jest nazwą tabeli przestawnej.

3) Pole filtru w tabeli przestawnej nosi nazwę "Kategoria".

4) Wartość, którą chcesz odfiltrować tabelę przestawną, umieszczana jest w komórce H6.

Możesz zmienić powyższe wartości zmiennych, jak potrzebujesz.v

4. wciśnij inny + Q klucze do zamknięcia Microsoft Visual Basic for Applications okno.

Następnie tabela przestawna filtruje na podstawie wartości w komórce H6, jak pokazano na poniższym zrzucie ekranu:

Możesz zmienić wartość komórki na inną, zgodnie z potrzebą.

Uwagi: Wartości wpisywane w komórce H6 powinny dokładnie odpowiadać wartościom z rozwijanej listy Kategoria tabeli przestawnej.


Karta Office - Przeglądanie w kartach, edycja i zarządzanie skoroszytami w programie Excel:

Office Tab wprowadza interfejs z kartami w przeglądarkach takich jak Google Chrome, nowe wersje przeglądarki Internet Explorer i Firefox do Microsoft Excel. Będzie to narzędzie oszczędzające czas i niezastąpione w Twojej pracy. Zobacz poniżej demo:

Kliknij, aby pobrać bezpłatną wersję próbną pakietu Office!

Karta Office dla programu Excel


Podobne artykuły:


Zalecane narzędzia zwiększające wydajność

Wstążka Excela (z zainstalowanym Kutools for Excel)

Zaawansowane funkcje 300 + zwiększają produktywność 71% i pomagają wyróżniać się z tłumu!

Czy chcesz zakończyć swoją codzienną pracę szybko i idealnie? Kutools do programu Excel przynosi 300 + fajne i zaawansowane funkcje zaawansowane (Połącz skoroszyt, sumuj według koloru, podziel zawartość komórki, konwertuj datę itd.) Dla Scenariusze pracy 1500 +, pomaga ci rozwiązać 82% Problemy z programem Excel.

  • Zajmij się wszystkimi skomplikowanymi zadaniami w kilka sekund, aby zwiększyć swoją zdolność do pracy, odnieś sukces w zaciekłej rywalizacji i nigdy nie martw się, że zostaniesz zwolniony.
  • Zaoszczędź dużo czasu pracy, zostaw wiele czasu, aby kochać i dbać o rodzinę i cieszyć się komfortowym życiem teraz.
  • Zmniejsz tysiące kliknięć klawiatury i myszy każdego dnia, odciąż zmęczone oczy i ręcei daj ci zdrowe ciało.
  • Zostań ekspertem Excela w minutach 3 i uzyskaj zachwycające spojrzenie kolegów lub znajomych.
  • Nie trzeba już pamiętać żadnych bolesnych formuł i kodów VBA, miej odprężający i przyjemny umysł, daj dreszczyk emocji, jakiego nigdy wcześniej nie miałeś.
  • Wydawaj tylko $ 39, ale warto trenować innych niż $ 4000. Wykorzystywane przez elity 110,000 i znane firmy 300 +.
  • 60-day nieograniczony bezpłatny okres próbny. Gwarancja zwrotu pieniędzy 60-day. Bezpłatne uaktualnienie i wsparcie dla 2 lat. Kup raz, używaj na zawsze.
  • Zmień sposób, w jaki pracujesz teraz i natychmiast daj lepsze życie!

Karta Office przynosi wydajne i poręczne karty do pakietu Office (w tym Excel), Just Like Chrome, Firefox i New IE

  • Zwiększa produktywność 50% podczas przeglądania i edycji wielu dokumentów.
  • Zmniejsz setki kliknięć myszą każdego dnia, pożegnaj się z ręką myszy.
  • Otwórz i utwórz dokumenty w nowych kartach tego samego okna, a nie w nowych oknach.
  • Pomóż pracować szybciej i łatwo wyróżnić się z tłumu! Jedna sekunda, aby przełączać się między dziesiątkami otwartych dokumentów!
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?)