To filter Excel rows in Power Automate, use List rows present in a table and enter a condition in its Filter Query field, such as Status eq 'Open'. For filtering after the rows have been retrieved—or for conditions that the Excel connector cannot handle—use the Filter array action.
What filtering Excel data in Power Automate means
Power Automate does not open Excel’s ribbon filter menu and apply a worksheet filter. Instead, a flow reads records from an Excel table and narrows the records it processes. This distinction matters: a filtered flow result does not necessarily hide rows in the workbook or change its saved filter settings.
The usual starting point is the Excel Online (Business) connector action List rows present in a table. It returns table rows as data that later actions can use. You can filter at the connector stage with the action’s Filter Query field, or retrieve rows and pass them to a separate Filter array action. The first method can reduce the amount of data returned; the second offers a flexible way to filter the returned array.
The workbook must be in a location accessible to the connector, such as OneDrive for Business or SharePoint, and the data must be formatted as an Excel table. A plain cell range is not enough for this action. In Excel for Microsoft 365 on Windows, select the data and choose Insert > Table, confirm whether the table has headers, and give the table a clear name under Table Design.
Choose between Filter Query and Filter array
Use the Filter Query field when the condition is straightforward and supported by the Excel connector. It is configured on the row-listing action, so records that do not meet the condition are not returned to the rest of the flow. This is often the more efficient choice for a large table.
Choose Filter array when you need to inspect the rows already returned, combine conditions in the flow designer, or work around a connector query that does not behave as needed. It is a separate action: set its From input to the value output from List rows present in a table, then configure the condition. Because it runs after retrieval, it does not reduce the number of rows the Excel action reads.
- Use Filter Query for simple supported comparisons and fewer records to process.
- Use Filter array for more flexible flow logic or filtering an existing array.
- Use both when a simple query can reduce the initial result set and a later condition can refine it further.
Set up a flow to read and filter a table
- Create or edit a cloud flow and add a trigger, such as a scheduled trigger or a trigger from another service.
- Add Excel Online (Business) > List rows present in a table.
- Select the file location, document library if applicable, workbook, and table. Use a stable workbook location and a table with meaningful header names.
- For connector-side filtering, enter a query in Filter Query. For example, if a table has a text column named Status, enter
Status eq 'Open'to request rows whose Status is Open. - Add the action that should use the matching rows, such as sending an email for each result. If filtering with Filter array, add it after the listing action and select the listing action’s value output as its input.
- Save the flow and run it with representative data. Check the action’s run history to see what the connector returned and what the later actions received.
Column names in a query need to match the table’s headers. If a header contains spaces or punctuation, connector handling can be less intuitive; inspect the action’s available dynamic content and test the query rather than assuming a display label will work unchanged. Renaming a header to a simple, stable name can make a flow easier to maintain.
Write a Filter Query with practical examples
Filter Query uses OData-style conditions, not an Excel worksheet formula. A basic text comparison uses a column name, an operator, and a quoted text value. For a table with a Region column, Region eq 'West' selects rows whose region is West. Text values are enclosed in single quotes; do not put an equals sign at the beginning as you would with a worksheet formula.
Common comparison operators include eq (equals), ne (not equal), gt (greater than), ge (greater than or equal to), lt (less than), and le (less than or equal to). For example, if Amount is a numeric column, Amount gt 100 requests rows with amounts above 100. Numeric values are not written in quotes in that example.
Some connector environments support additional OData-style functions or combinations, but support can depend on the action and the data. Treat a query that looks valid on paper as something to verify in a flow run. If a compound condition is rejected or gives unexpected results, start with one comparison, test it, and then add conditions incrementally. Filter array is a useful fallback when the connector query cannot express the required logic.
Filter array conditions and examples
In Filter array, set From to the rows array from the listing action. In the basic condition builder, choose a column from the current item, select an operator, and enter the comparison value. For example, choose Status, set the comparison to equal, and enter Open. The output is a smaller array containing only matching records.
For more involved logic, the action’s advanced expression editor can use expressions such as @equals(item()?['Status'], 'Open'). Here, item() refers to the row currently being considered. If a header name differs from the example, replace Status with the actual property name shown in the action output. Check run history if the property is missing or the condition returns no rows.
Suppose a table contains three records with Status values Open, Closed, and Open. Filtering for Open returns the first and third records. A later Apply to each can process each returned record separately, while an email action outside the loop could use the filtered array in a different way. Choose the downstream action based on whether you need one operation per row or one operation for the set.
Power Automate filtering versus Excel’s FILTER function
The Excel FILTER worksheet function and Power Automate’s Filter Query or Filter array are different tools. The worksheet function returns matching values into a spill range in a worksheet; a flow action filters records for subsequent steps. A formula result can be useful for people viewing a workbook, but it does not replace a flow’s connector-side query.
For example, with names in A2:A5 and statuses in B2:B5, where the rows are Mina/Open, Leo/Closed, Ana/Open, and Sam/Pending, enter =FILTER(A2:A5,B2:B5="Open","No matches") in a cell outside the source range. It returns Mina and Ana, in that order. FILTER is available in Microsoft 365 and Excel 2021 or later. If the flow needs the matching records, use the connector or Filter array rather than expecting the worksheet formula itself to configure the flow’s filtering.
Limits, pagination, and workbook design
Excel is convenient for modest, human-managed lists, but it is not a database service. Large or heavily updated workbooks can be slower and more vulnerable to file locks or conflicting edits. Keep the workbook structured as a table, avoid changing its headers while a flow depends on them, and avoid having several processes write to the same file at the same time.
Also check pagination when a table has more rows than the listing action returns by default. Open the action’s settings and configure pagination where appropriate; then test that the flow processes the expected number of records. A successful run does not prove that every row was retrieved if the result was capped. Pagination increases the data the flow must handle, so narrow the query when possible.
- Use consistent data types in each column: do not mix numbers, dates, and explanatory text in the same field.
- Keep header names unique and stable, and avoid blank rows or columns inside the table.
- Use a real Excel date or number value where a query compares dates or amounts, and verify how the connector exposes that value in run history.
- For substantial volumes, frequent concurrent updates, or more demanding query needs, consider a data source designed for shared application data, such as Dataverse or a database.
Common problems and how to fix them
The action cannot find the table. Confirm that the data is formatted as a table, that the correct workbook was selected, and that the connection account can access the file. If the table was renamed or the workbook replaced, reselect the file and table in the action.
The query returns no rows. Check spelling and capitalization in the column header and compare the query value with the actual cell contents. Leading or trailing spaces, inconsistent values, and a text-versus-number mismatch can make a comparison fail. Temporarily remove the query and inspect a returned row in run history to confirm the property name and value.
Filter array is empty. Verify that its From field is the listing action’s rows array, usually exposed as value, rather than the whole action body. Then confirm the condition references the correct property. If the array is empty before filtering, investigate the Excel action, table selection, and pagination first.
The flow misses later rows. Review pagination settings and the number of rows shown in run history. If the table is large, use a connector-side Filter Query where possible so the flow does not need to retrieve and inspect every record.
The workbook is locked or updates appear delayed. Another flow, user, or application may be using the file. Reduce simultaneous writes, keep actions focused, and allow for connector processing time. If multiple users or automated processes need frequent concurrent changes, Excel may not be the best storage choice.
Frequently Asked Questions
Can Power Automate filter an Excel range without a table?
No, the standard List rows present in a table action reads an Excel table. Format the range as a table first, or choose a different method or data source that fits the workbook structure.
Where do I put the filter condition?
Put a supported OData-style condition in the Excel action’s Filter Query field to filter as rows are retrieved. To filter the returned array afterward, add Filter array and use the listing action’s value output as its From input.
Is Filter Query the same as Excel’s filter dropdown?
No. Filter Query restricts the records returned to the flow; it does not necessarily apply a visible worksheet filter or hide rows in the workbook.
Can I filter for a date or a blank cell?
Often, but the result depends on the column’s stored values and connector query support. Confirm the actual value in run history and test a simple condition first. For complex blank or date logic, Filter array may be easier to validate.
Why does my flow return only some of the table rows?
The listing action may be subject to a row limit or pagination setting. Check the action’s settings and run history, enable pagination if needed, and test the total returned count against the table.
Related
- Excel Day Care in Clementi: Location and Enrolment Guide
- Excel Day Care in Jurong East: Location, Fees and Checks
- Excel Day and Date Formats: Codes, Examples, and Fixes
Try it: the Formula Explainer: paste any formula and see each function and reference in plain English.
More in Formulas & functions
- Excel Formula Bar: What It Shows and How to Use ItIn Excel, the Formula Bar is the field above the worksheet that shows the contents of the selected…
- ROUNDUP Excel Cell Reference: 10 Useful Formula PatternsWith 12.31 in A2, enter =ROUNDUP(A2,0) to return 13; the formula reads the number from a cell and…
- Excel Day Timeline: Build a Daily Schedule or Date FilterAn Excel day timeline can mean either a daily schedule laid out across worksheet columns or a PivotTable…
- Excel Sum Same Cell Across Tabs: The 3-D Formula GuideIf the sheets you want to total are next to one another in the workbook, use a 3-D…
- INDIRECT in Excel: Create Dynamic Cell ReferencesIn Excel, INDIRECT turns text that looks like a cell or range address into a usable reference. For…
- Filter Excel Table by Color: Steps and TroubleshootingYes. In Excel for Microsoft 365 on Windows, open the filter arrow in the table column containing the…
Sources: Function behaviour and menu paths: Microsoft Support documentation for Excel. Method & sources
Spotted an error in this guide? Let us know.