“I know I can use the ‘Filter array’ action in Power Automate to do this, but how do I set it up to use multiple conditions?”
When you need to filter data in Power Automate, you’ve got two options. Filter the data right away in some ‘Get…’ action, e.g. ‘Get items’, or filter them later with the ‘Filter array’ action. It’s always better to filter them right away, but sometimes you don’t have such an option. It can be an action that doesn’t include a filter, e.g. to get Planner buckets, or an unsupported data type, e.g. the SharePoint Multiple lines of text column. In such situations you must get all the data, and filter it later. But the interface of the ‘Filter array’ action has fields only for a single condition.

Is there a way to use more than just one condition in the action?
Use the advanced mode
The limitation on a single filter is only in the user interface, not in the action itself. If you switch to the advanced mode, you’ll avoid any limitation on the number of conditions. It has a downside though, in the advanced mode you lose access to any dynamic content. You must define the conditions manually.

Luckily, you can use the same workaround as with trigger conditions. Add a second ‘Filter array’ action just to help you create the conditions. Define the condition using the dynamic content and expressions, and switch to the advanced mode. You’ll get the condition to use in the original ‘Filter array’ action.

All that’s left is to remove the @ from the conditions and define their relation, if it’s AND or OR. Use @and(…) or @or(…) to group the conditions.
@and(condition1, condition2, condition3,...)
@or(condition1, condition2, condition3,...)
For example:
@and(equals(item()?['DateTime'], utcNow('yyyy-MM-dd')),equals(item()?['MultipleLoT'], null))
This way you can add as many conditions as you need into a single ‘Filter array’ action.

Note: the @ is always only once at the beginning, no matter how many conditions you use.
Summary
When you need multiple conditions in the Power Automate ‘Filter array’ action, you must use the advanced mode. It might look complicated at first, but you can use another to ‘Filter array’ to define the conditions in the user interface. Add the relation between the condition and that’s it. Get back the dynamic content after the ‘Filter array’ (if needed) and use the filtered data in your flow.
I would like to see and example that has both an “or” and and “and” condition combined as this does not see to work. Would you provide this for me?
Hello Steve,
start from the lowest level and connect them together, e.g.
1 or 2
@or(1, 2)
(1 or 2) and (2 or 3)
@and(or(1,2),or(2,3))
((1 or 2) and (2 or 3)) or ((4 and 5) or (5 and 6))
@or(and(or(1,2),or(2,3)),or(and(4,5),and(5,6)))
Hello,
I have two filter arrays but I’m receiving errors when I try to combine them. Can you help?
@contains(item()?[‘importance’], ‘high’)
@not(equals(item()?[‘completedDateTime/dateTime’], null))
Hello S. Sprague,
remove the @, create the condition and add the @ back, e.g.
@and(contains(item()?[‘importance’], ‘high’),not(equals(item()?[‘completedDateTime/dateTime’], null)))
@or(contains(item()?[‘importance’], ‘high’),not(equals(item()?[‘completedDateTime/dateTime’], null)))