Power Fx explained

The Power Fx formula language — Excel-like syntax, where it's used in the Power Platform, and what's different from JavaScript.

Updated 2026-01-18

Power Fx is Microsoft's low-code formula language. It's the language used in Power Apps canvas apps, Dataverse formula columns, certain Power Automate scenarios, and is being adopted across more of the Power Platform every release. Designed deliberately to feel like Excel — strongly typed, declarative, functional — it's accessible to anyone who has ever written =SUMIF(...) in a spreadsheet.

Excel-like syntax. Power Fx looks like Excel formulas. = prefix isn't used in Power Apps but the syntax is Filter(Customers, Country = "Sweden"), Sum(Orders.Total), If(Status = "Active", "Yes", "No"). Anyone fluent in spreadsheets is productive in Power Fx within hours.

Declarative. Power Fx is declarative — you describe what you want, not how to compute it. The runtime decides evaluation order, caching, and dependencies. Variables are mostly avoided; named formulas and collections (in-memory tables) are the idiomatic way to manage state.

Functions. Hundreds of built-in functions cover text manipulation, math, dates, table operations (Filter, Sort, AddColumns, GroupBy, Sum, Count), navigation, controls, and data connection actions. Most have direct Excel equivalents.

Records and tables. First-class data types. A record is a JSON-like object: {Name: "Karen", Country: "Sweden"}. A table is a list of records. Table operations are vectorised — Filter(Customers, Country = "Sweden") returns a table without explicit looping.

Tables and connectors. When connected to Dataverse, SharePoint, SQL, or another data source, tables in Power Fx are backed by the underlying source. Delegation matters: functions that can be evaluated server-side (delegable) run efficiently on large datasets; non-delegable functions fall back to a 2000-row client-side limit. The maker is warned in the editor when they write a non-delegable expression.

Where it's used.

  • Canvas Power Apps — every property of every control is a Power Fx expression.
  • Dataverse formula columns — calculate values stored on records, similar to Excel formulas in a sheet column.
  • Power Apps custom pages — embedded in model-driven apps with Power Fx behaviour.
  • Power Automate desktop — increasingly in flow design.
  • Excel — the syntax is converging; some Power Fx functions are now in Excel directly.

Differences from JavaScript. No variables required, no statements, no loops. Side effects exist (Set, Patch, Collect, Navigate) but are expressions, not statements. Errors propagate as values rather than thrown exceptions.

Limits. Not Turing-complete in the traditional sense — there are no arbitrary loops. Heavy programmatic logic still belongs in JavaScript (in HTML web resources), Power Automate flows, or C# plug-ins.

Adoption. Excel-literate users build working apps in days. Microsoft is open-sourcing the language; a Power Fx command-line interpreter exists for testing expressions.

Related guides