Power Fx explained
By Emil Björk · Microsoft business apps consultant, Gothenburg
The Power Fx formula language — Excel-like syntax, where it's used in the Power Platform, and what's different from JavaScript.
On this page (8)
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.
Frequently asked questions
Where is Power Fx used?
- Every property of every control in canvas Power Apps, Dataverse formula columns, custom pages embedded in model-driven apps, increasingly Power Automate, and the syntax is converging with Excel itself.
How is Power Fx different from Excel formulas?
- The syntax is deliberately Excel-like — Filter, Sum, If — but expressions run against tables backed by data sources, records are first-class JSON-like values, and side effects such as Set, Patch, and Collect exist as expressions rather than statements.
What is delegation in Power Fx?
- Whether a function can be evaluated server-side by the data source. Delegable expressions run efficiently on large tables; non-delegable ones fall back to a client-side limit of 2,000 rows, and the editor warns when you write one.
Can Power Fx replace JavaScript or C#?
- Not for heavy programmatic logic. Power Fx has no arbitrary loops or statements; complex logic still belongs in JavaScript web resources, Power Automate flows, or C# plug-ins.
Further reading
Related guides
- Power Apps modern controlsHow the modern control set in canvas apps differs from classic controls — Fluent UI styling, accessibility defaults, theming, and migration considerations.
- Power Fx named formulasHow named formulas in Power Fx differ from variables — declarative, recomputed, no side effects — and how they reshape canvas app code organisation.
- Power Apps vs Dynamics 365 CRMPower Apps vs Dynamics 365 CRM: both run on Dataverse — when to buy the packaged Sales or Service app and when to build a custom model-driven app instead.
- Power Apps performance tuningHow to make Power Apps canvas and model-driven apps fast — startup time, screen render, data fetching, formula optimisation, and the patterns that matter.
- PCF controls in Power AppsWhat Power Apps Component Framework (PCF) controls are, when to use them, and the developer toolchain to build, package, and deploy.
Browse every guide in Power Platform or just Power Apps.
Power Platform for makers
Was this helpful?
Signals which guides land and which need work. No account, no comment box — corrections go through the contact page.
Spot something wrong or want a topic covered? Send a correction or a topic request — both are welcome.