Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

How to filter Pivot table based on a specific cell value in Excel?

Normally, we are filtering data in a Pivot Table by checking values from the drop-down list as the left screenshot shown. If you want to make a Pivot Table more dynamic by filtering, you can try to filter it based on value in a specific cell. The VBA method in this article will help you solving the problem.

Filter Pivot Table based on a specific cell value with VBA code


Easily select entire rows based on cell value in a certian column:

The Select Specific Cells utility of Kutools for Excel can help you quickly select entire rows based on cell value in a certian column in Excel as below screenshot shown. After selecting all rows based on cell value, you can manually move or copy them to a new location as you need in Excel.

Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download the free trial Now!

Office Tab Enable Tabbed Editing and Browsing in Office, and Make Your Work Much Easier...
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
  • Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
  • More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
  • Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
  • Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
  • Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
  • Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
  • More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.

Filter Pivot Table based on a specific cell value with VBA code

The following VBA code can help you filtering a Pivot Table based on a specific cell value in Excel. Please do as follows.

1. Please enter a value you will filter Pivot Table based on into a cell in advance (here I select cell H6).

2. Open the worksheet contains the Pivot Table you will filter by cell value. Then right click the sheet tab and select View Code from the context menu. See screenshot:

3. In the opening Microsoft Visual Basic for Applications window, copy below VBA code into the Code window.

VBA code: Filter Pivot Table based on cell value

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 the code,

1) “Sheet1” is the name of the worksheet.

2) “PivotTable2” is the name of the Pivot Table.

3) The filtering field in the pivot table is called "Category".

4) The value you want to filter the pivot table is placed in cell H6.

You can change the above variable values as you need.v

4. Press the Alt + Q keys to close the Microsoft Visual Basic for Applications window.

Then the Pivot Table is filtering based on the value in cell H6 as below screenshot shown:

You can change the cell value to others as you need.

Note: Values you type in cell H6 should exactly match the values in the Category drop down list of Pivot Table.


Office Tab - Tabbed Browsing, Editing, and Managing of Workbooks in Excel:

Office Tab brings the tabbed interface as seen in web browsers such as Google Chrome, Internet Explorer new versions and Firefox to Microsoft Excel. It will be a time-saving tool and irreplaceble in your work. See below demo:

Click for free trial of Office Tab!

Office Tab for Excel


Related articles:


Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
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.
    Ignacia · 2 months ago
    Hey! Thanks for your macro.

    I was trying to use it for more than one pivot table in the same page, but it does not work. I wrote it like this:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xPTable1 As PivotTable
    Dim xPFile1 As PivotField
    Dim xStr1 As String
    On Error Resume Next
    If Intersect(Target, Range("D7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable1 = Worksheets("BUSCADOR").PivotTables("PV_ETAPA1")
    Set xPFile1 = xPTable1.PivotFields("ETAPA1")
    xStr1 = Target.Text
    xPFile1.ClearAllFilters
    xPFile1.CurrentPage = xStr1
    Application.ScreenUpdating = True

    Dim xPTable2 As PivotTable
    Dim xPFile2 As PivotField
    Dim xStr2 As String
    On Error Resume Next
    If Intersect(Target, Range("G7")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable2 = Worksheets("BUSCADOR").PivotTables("PV_ETAPA2")
    Set xPFile2 = xPTable2.PivotFields("ETAPA2")
    xStr2 = Target.Text
    xPFile2.ClearAllFilters
    xPFile2.CurrentPage = xStr2
    Application.ScreenUpdating = True

    End Sub

    Maybe you can help me out!

    Thanks in advance!
  • To post as a guest, your comment is unpublished.
    Justin · 1 years ago
    How would you do this with a report filter that has a hierarchy?

  • To post as a guest, your comment is unpublished.
    Daniel · 1 years 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?)