Let's POWER Automate

From no-code to low-code

Menu
  • Expressions
  • Filters
  • General
  • Application specific solutions
    • Dataverse
    • Excel
    • Forms
    • Planner
    • Outlook
    • SharePoint
    • Teams
  • Triggers
  • Resources
  • ABOUT ME
  • Get help with your flow
Menu

How to apply multiple conditions in the ‘Filter array’ Power Automate action

Posted on July 4, 2021July 4, 2021 by Tom

“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.

Power Automate filter array multiple conditions

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.


Do you struggle with the various expressions, conditions, filters, or HTTP requests available in Power Automate?

I send one email per week with a summary of the new solutions, designed to help even non IT people to automate some of their repetitive tasks.

All subscribers have also access to resources like a SharePoint Filter Query cheat sheet or Date expressions cheat sheet.

Zero spam, unsubscribe anytime.

4 thoughts on “How to apply multiple conditions in the ‘Filter array’ Power Automate action”

  1. Steve Guthrie says:
    January 3, 2023 at 5:31 pm

    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?

    Reply
    1. Tom says:
      January 9, 2023 at 4:25 pm

      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)))

      Reply
  2. S. Sprague says:
    March 6, 2023 at 5:51 pm

    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))

    Reply
    1. Tom says:
      March 19, 2023 at 3:28 pm

      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)))

      Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Do you know what to do, but not how to do it?

Get The Ultimate Power Automate expressions cheat sheet and translate your thoughts into flows with ease!


There's also the HTTP requests to SharePoint cheat sheet to help you overcome limitations of some standard actions!

Do you struggle with the various expressions, conditions, filters, or HTTP requests available in Power Automate?

I send one email per week with a summary of the new solutions, designed to help even non IT people to automate some of their repetitive tasks.

All subscribers have also access to resources like a SharePoint Filter Query cheat sheet or Date expressions cheat sheet.

Zero spam, unsubscribe anytime.

  • How to find Excel rows missing in SharePoint list (Power Automate)March 29, 2023
  • Check whether user exists in AAD with Power AutomateMarch 26, 2023
  • How to highlight whole SharePoint row based on calculated dateMarch 22, 2023
  • Why is your Power Automate flow running so slow?March 19, 2023
  • How to add multiple links to the Power Automate approval taskMarch 15, 2023

Power Automate blogs worth visiting

Damien Bird
Dennis (Expiscornovus)
Paul Murana

©2023 Let's POWER Automate | Theme by SuperbThemes