Power Apps Delegation: Delegable vs. Non-Delegable Functions

Spread the love

Delegable function for Power Apps + SharePoint List data sources

Overview

Delegation determines whether Power Apps pushes a Filter, Sort, or aggregation operation to the data source (SharePoint) for processing, or pulls records locally first and processes them on the device. Delegation support varies by data source — SharePoint is one of the more limited connectors, so the tables below are scoped to it. This is what your dummy Sales Data list (3,000 rows, above the default 2,000-row delegation limit) is designed to help you test.

Delegable Functions & Operators

These are pushed down to SharePoint and evaluated against the full list, regardless of size.

Function / OperatorNotes
Filter, LookUpDelegable when the predicate uses only delegable operators/columns below.
=  ,  <>Works on Number, Date, Choice, single-line Text, and Yes/No columns.
<  ,  <=  ,  >  ,  >=Works on Number and Date/DateTime columns.
StartsWithSingle-line Text columns only.
And, Or, NotDelegable only if every sub-condition inside is also delegable.
Sort, SortByColumnsDelegable on Number, Date, single-line Text, and Choice columns.
IsBlank (on a column)Delegable in most cases.
Sum, Average, Min, Max (via Filter)Delegable on Number columns in recent versions — historically limited, verify against your app version.
In (Choice / Lookup columns)Delegable in current versions of Power Apps.

Non-Delegable Functions & Operators

These are processed locally after Power Apps retrieves data — results are capped at the app’s data row limit (default 500, configurable up to 2,000 in App Settings > Advanced).

Function / OperatorWhy It’s Non-Delegable
Search()Never delegable to SharePoint.
Filter on multi-line Text columnsMulti-line text (e.g. “Notes”) is never delegable.
Len()Not delegable.
Left, Right, Mid, Concatenate, &Text manipulation inside a filter predicate is not pushed down.
Filter(Sort(…)) / Sort(Filter(…))Nesting can break delegation depending on order — test explicitly.
CountRows(Filter(…))Inherits non-delegability if the inner Filter is not delegable.
DistinctNot delegable against SharePoint.
GroupByNot delegable.
Any calculated / computed column referenceFormula columns are not delegable.
Mixed And/Or with one non-delegable branchThe whole expression becomes non-delegable, even if the other branch alone would qualify.
<> on Choice columns (older versions)Historically an exception — worth testing directly on your environment.

Example Test Formulas

Try these directly against the SalesData list to see delegation warnings in action:

FormulaExpected Result
Filter(SalesData, TotalAmount > 5000)Delegable
Sort(SalesData, OrderDate)Delegable
Filter(SalesData, “gift” in Notes)Not delegable (multi-line text)
SortByColumns(Filter(SalesData, “gift” in Notes), “TotalAmount”, Descending)Not delegable (inherits from Filter)

Practical Notes

  • The blue warning triangle in the Power Apps formula bar is ground truth — trust it over any static reference, including this one.
  • Microsoft has actively expanded delegation support over recent releases (e.g. more aggregate functions became delegable) — verify current behavior against the official Power Apps delegation documentation for your app’s version.
  • Mixing a delegable and a non-delegable condition inside the same And/Or makes the entire expression non-delegable, even though each half might work fine on its own.
  • Multi-line text columns (like “Notes” in the sample data) are never delegable — useful as a deliberate negative test case.

Similar Article

Leave a Comment