Filter Pivot Table UiPath

Hello everyone,

I would like to know how can I filter a Pivot Table with two or more values in a column.
Do I have to use VBA code ?
If yes, what is the code to do that ?

Thanks in advance!

Hi @Maria_Ines_Almeida

It would be very helpful if you can share a sample input excel file.
A VBA approach can be worked out.

Also, LINQ would be useful for creating the pivot table from the raw data and then filtering it according to the requirements.

@Maria_Ines_Almeida Mostly it can be done using linq or read the data to a data table and filter using Filter Data Table Activity. If possible please share the sample input data

Hi @Maria_Ines_Almeida

you can use this example

remember to change the values on this line (table id and the column name)
Set myPivotField = ActiveSheet.PivotTables("PivotTable1").PivotFields("State")

and the values to filter line
FilterArray = Array("AZ", "NY")

then paste the code in a text file and call it like this

Function FilterMultipleArray(sheetName as string)
FilterArray = Array("AZ", "NY")

Dim myPivotField As PivotField
Dim ws as worksheet
Set ws = ActiveWorkbook.Sheets(sheetName)
Set myPivotField = ws.PivotTables("PivotTable1").PivotFields("State")
myPivotField.EnableMultiplePageItems = True

numberOfElements = UBound(FilterArray) - LBound(FilterArray) + 1

If numberOfElements > 0 Then
    With myPivotField
        For i = 1 To myPivotField.PivotItems.Count
        j = 0
        Do While j < numberOfElements
            If myPivotField.PivotItems(i).Name = FilterArray(j) Then
                myPivotField.PivotItems(myPivotField.PivotItems(i).Name).Visible = True
                Exit Do
                myPivotField.PivotItems(myPivotField.PivotItems(i).Name).Visible = False
            End If
            j = j + 1
        Next i
    End With
End If


End Function