Power FX: Formulas, Not Code
Power FX is the Excel-like formula language behind Power Platform.
What is Power FX?
Power FX is Excel formulas β but for apps.
You know how in Excel you write =SUM(A1:A10) to add up numbers? Power FX works the same way. Instead of cell references, you use table names and column names. Instead of calculating in a spreadsheet, your formulas run inside apps, flows, and chatbots.
If you have ever written an IF statement, a VLOOKUP, or a CONCATENATE in Excel, you already know the basics of Power FX. Microsoft designed it that way on purpose β because hundreds of millions of people already know Excel.
Excel to Power FX translation
If you know Excel, you know Power FX. The syntax is nearly identical:
| What You Want | Excel Formula | Power FX Formula |
|---|---|---|
| Add numbers | =SUM(A1:A10) | Sum(Expenses, Amount) |
| Count items | =COUNTA(B:B) | CountRows(Employees) |
| Conditional logic | =IF(A1>100, "Over", "Under") | If(Amount > 100, "Over", "Under") |
| Find text | =SEARCH("error", A1) | "error" in Lower(Message) |
| Look up a value | =VLOOKUP(A1, Table, 2) | LookUp(Products, ID = selectedID, Name) |
| Filter rows | Not built-in (use filters) | Filter(Orders, Status = "Active") |
| Sort data | Sort button in ribbon | SortByColumns(Products, "Price", SortOrder.Ascending) |
| Today's date | =TODAY() | Today() |
The biggest differences: Power FX uses table and column names instead of cell references, and it has built-in functions for navigation, forms, and app behaviour that Excel does not need.
Where is Power FX used?
Power FX is not limited to Power Apps. It appears across the platform:
| Where | How Power FX Is Used |
|---|---|
| Canvas apps | Every formula bar, button action, visibility rule, and data filter |
| Dataverse | Calculated columns and formula columns in tables |
| Copilot Studio | Conditions and variable expressions in chatbot topics |
| Power Automate desktop flows | Expressions for data manipulation in desktop flow steps |
| Dataverse for Teams | Same as canvas apps, inside the Teams environment |
Priya writes Power FX every time she builds a canvas app. She uses Filter to show only active campaigns, If to change a label colour based on budget status, and Navigate to move between screens. She did not learn βprogrammingβ β she learned formulas.
Declarative vs imperative: why it matters
Traditional coding is imperative β you write step-by-step instructions. βGet the list. Loop through each item. Check the condition. If true, add to results.β
Power FX is declarative β you state what you want. βFilter(Campaigns, Status = Active)β means βgive me all active campaigns.β You never write a loop. The system figures out how to get the result.
This is why Power FX is accessible to non-developers. You describe the outcome, not the process.
Why Power FX matters for the exam
The PL-900 exam does not ask you to write Power FX formulas. But it does test whether you understand why Power FX is valuable as a low-code approach. Here are the key points:
- Familiar β Based on Excel, so hundreds of millions of users can adopt it quickly
- Declarative β You describe what you want, not how to do it
- Reactive β Formulas recalculate automatically when data changes (no refresh button)
- Strongly typed β The editor catches errors before you run anything
- Open source β Published on GitHub, so anyone can inspect and contribute
Exam tip: Low-code vs no-code vs pro-code
The exam may test this distinction:
- No-code means no formulas or expressions at all β pure drag-and-drop
- Low-code means some formulas or configuration, but no traditional programming β this is Power FX
- Pro-code means full programming languages like C-sharp, JavaScript, or Python
Power Platform is low-code because you write formulas (Power FX) but you never write traditional code. Copilot makes it even more accessible by writing the formulas for you.
Copilot writes formulas for you
Here is the best part: you do not even need to memorise Power FX syntax. Inside Power Apps, Copilot writes formulas from plain English.
Priya types: βShow only campaigns where the budget is over 5000 and the status is Active.β
Copilot generates: Filter(Campaigns, Budget > 5000 && Status = "Active")
She reviews it, clicks accept, and moves on. Over time, she starts recognising patterns and tweaking formulas herself. That is the learning curve working as designed β start with Copilot, graduate to writing your own formulas.
Tom uses the same approach for his model-driven app business rules. He describes the rule in English, Copilot suggests the formula, and he validates it against test data.
Power FX is reactive β just like Excel
One of Power FXβs biggest strengths is reactivity. When data changes, every formula that depends on that data recalculates automatically.
In Excel, when you change cell A1, every formula referencing A1 updates instantly. Power FX works the same way. When a Dataverse record changes, any app showing that data refreshes automatically. No βreloadβ button. No manual fetch.
This means Priyaβs campaign tracker always shows live data. When a team member updates a budget number in Dataverse, the dashboard in her canvas app reflects the change within seconds.
π¬ Video walkthrough
π¬ Video coming soon
Power FX: Formulas, Not Code β PL-900 Domain 1
Power FX: Formulas, Not Code β PL-900 Domain 1
~7 minFlashcards
Knowledge Check
Why is Power FX considered a 'low-code' language rather than a 'no-code' or 'pro-code' approach?
Priya wants to filter her campaign list to show only records where the status is Active. She has never written a Power FX formula before. What is the fastest way for her to create this formula?
Which of the following are key properties of Power FX? (Select TWO)
Next up: How Power Platform and Microsoft 365 work together β Teams, SharePoint, Outlook, and more. Everything connects.