Live Developer Training: next batch coming soon. Be the first to know.Live training: next batch soonJoin the waitlist →Join →

Filter vs Search vs LookUp in Power Apps (Complete Guide)

Three functions, one job that sounds identical: find records. That is exactly why new Power Apps makers pick the wrong one, and then spend an afternoon wondering why the gallery is empty or why the delegation warning refuses to go away.

I have lost count of how many Power Apps apps I have opened where someone used Filter to grab a single record, then wrapped the whole thing in First() to make it behave. It works, but it is the long way round.

In this tutorial, I will show you exactly what each of these three functions returns, when to reach for each one, how they behave with delegation, and the mistakes that cause the most support tickets.

What Filter, Search, and LookUp Actually Do in Power Apps

All three functions belong to the same family in Power Fx. They all reduce a table down to the rows you care about.

The difference is what comes back out.

  • Filter returns a table. It can be zero rows, one row, or ten thousand rows.
  • Search returns a table too, but you do not write a condition. You hand it a search string and a list of text columns.
  • LookUp returns a single record, or a single value if you give it a third argument.

That one distinction, table versus record, causes most of the confusion, because Power Fx will not let you use a table where a record is expected.

Use them when:

  • Filter – you need many matching rows, or you need precise logic (>, <, And, Or, date ranges).
  • Search – you are building a search box and want a “contains” match across a few text columns.
  • LookUp – you need one record, usually to read a property off it, like an email address, a price, or an ID.

Don’t use them when:

  • Don’t use Filter to get one record and then wrap it in First(). Use LookUp.
  • Don’t use Search for numeric, choice, or boolean comparisons. It only works on text columns.
  • Don’t use LookUp when more than one row can match and you actually care about all of them. It silently returns only the first.

The Short Answer

If you only read one section, read this one.

  1. Do you need more than one row back? → Filter
  2. Is the user typing into a text box and expecting “contains” behavior? → Search
  3. Do you n