Power Fx Function Reference for Canvas Apps: Find the Right Function Fast
Stop scrolling a 200-function alphabetical list. This hub groups every Power Fx function by the job makers hire it for, calls out the dozen you will use every week, and points to the official syntax whenever you need the full detail.
- Published
- Reading time
- 11 min read
What you’ll learn
- How to use this reference
- Functions that read and shape data
- Functions that change data
- Logic, variables, and flow control
- Text, math, and dates
On this page (31 sections)
Power Fx ships with more than 200 functions, and the official list is alphabetical — great for lookup, terrible for learning. This hub flips the index around: it groups functions by the job makers hire them for, so when you think "I need to shape this table" or "I need to save this form," you land on the right function in seconds. For detail on any single function, open its page in this reference.
How to use this reference
Each section below covers one maker job: what the functions do, the names you will reach for first, and a small example you can adapt. Function names link to their pages in this reference, with what each one does and an example you can adapt. If you are new to the language itself, start with What Is Microsoft Power Fx? and come back here when you need a specific tool.
Functions that read and shape data
Most canvas app formulas start here: take a table or data source, keep the rows you want, and reshape the columns for display.
- Filter, LookUp, Search — find rows: many, one, or free-text matches.
- Sort and SortByColumns — order rows for galleries and tables.
- AddColumns, DropColumns, ShowColumns, RenameColumns — reshape which columns travel with the data.
- GroupBy and Distinct — summarize and de-duplicate.
- Choices — list the allowed values of a lookup or choice column for dropdowns.
Filter(Orders, Status = "Open")
Functions that change data
These are behavior functions: they do something rather than compute something, so they run on events like a button OnSelect, not in a label Text property.
- Collect and ClearCollect — add rows to a local collection, optionally clearing it first.
- Patch — create or edit records in a data source without a form; pair it with Defaults for new rows.
- Remove and RemoveIf — delete one record or every record meeting a condition.
- Update and UpdateIf — replace records already in a data source.
- SubmitForm, NewForm, EditForm — drive form controls through their create, edit, and save lifecycle.
Patch(Tasks, Defaults(Tasks), { Title: "Follow up", Due: Today() })
Logic, variables, and flow control
Branching, looping, and state — the glue between reading data and changing it.
- If and Switch — branch on conditions or match one value against many.
- ForAll — run an action or calculation for every row of a table.
- With — name an intermediate result once and reuse it inside one formula.
- Set and UpdateContext — store global and screen-scoped variables.
- Navigate and Back — move users between screens, optionally passing context.
ForAll(Cart, Collect(Receipt, ThisRecord))
Text, math, and dates
Everyday formatting and calculation. If you know the Excel equivalents, most of these work the way you expect.
- Concatenate, Len, Left, Mid, Right, Upper, Lower, Trim — build and clean strings.
- Split — turn delimited text into a table of rows.
- Text and Value — convert between display text and typed values.
- Sum, Average, Min, Max and CountRows, CountIf — roll up tables.
- DateAdd and DateDiff, plus Today and Now — date math against the current day.
- Sequence — generate numbered rows for paging, loops, and test data.
Errors and blanks: the functions that save you
Blank values and failed operations flow silently through formulas, which is why apps "almost work." These functions make the invisible visible.
- IsBlank, IsEmpty, and Coalesce — detect missing values and substitute safe defaults.
- IfError — catch an error inline and provide a fallback value or action.
- Notify — tell the user what happened in plain language.
- User — personalize and troubleshoot with the current user's identity.
"Hello, " & Coalesce(txtName.Text, "guest")
The dozen you will use every week
Learn these twelve first. Everything else in the reference is a specialist you can meet on the day you need it.
| Function | The job | Try this |
|---|---|---|
| Filter | Keep matching rows | Filter(Orders, Status = "Open") |
| LookUp | Fetch one record | LookUp(Products, ID = 42) |
| Patch | Create or edit a record | Patch(Tasks, Defaults(Tasks), {Title: "New"}) |
| Collect | Stage rows locally | Collect(Cart, ThisItem) |
| ForAll | Repeat for every row | ForAll(Cart, Collect(Receipt, ThisRecord)) |
| If | Branch on a condition | If(Total > 100, "Big", "Small") |
| Sort | Order a gallery | Sort(Orders, Created, Descending) |
| Concatenate | Join text pieces | Concatenate(First, " ", Last) |
| Text | Format values as text | Text(Total, "$#,###") |
| Sum | Add up a column | Sum(Cart, Price * Qty) |
| Today | Stamp the current date | Patch(Tasks, Defaults(Tasks), {Due: Today()}) |
| Navigate | Move between screens | Navigate(DetailScreen) |
Complete A–Z index
Every function in the canvas-apps reference, grouped by letter. Each name links to its page in this reference with what it does and where it fits. Start with the task groups above when you are learning; use this index when you already know the name.
A
| Function | What it does |
|---|---|
| Abs | Absolute value of a number. |
| Acceleration | Live acceleration sensor reading. |
| Acos | Arccosine in radians. |
| Acot | Arccotangent in radians. |
| AddColumns | Adds calculated columns to a table. |
| And | True only when every check passes. |
| AIClassify | Sorts text into categories. |
| AIExtract | Pulls entities like names and numbers from text. |
| AIReply | Drafts a reply to a message. |
| AISentiment | Scores the mood of a piece of text. |
| AISummarize | Condenses text to its essentials. |
| AITranslate | Converts text between languages. |
| App | Info and control for the running app. |
| Asin | Arcsine in radians. |
| Assert | Pass-or-fail check used in tests. |
| As | Names the current record in scope functions. |
| AsType | Treats a record as a specific table type. |
| Atan | Arctangent in radians. |
| Atan2 | Angle from x,y coordinates. |
| Average | Mean of values or a column. |
B
| Function | What it does |
|---|---|
| Back | Returns to the previous screen. |
| Blank | A deliberate empty value. |
| Boolean | Converts text or numbers to true or false. |
C
| Function | What it does |
|---|---|
| Calendar | Calendar info for the current locale. |
| Char | Turns a character code into text. |
| Choices | Allowed values of a choice column. |
| Clear | Empties a collection. |
| ClearCollect | Empties a collection, then fills it. |
| ClearData | Wipes saved local data. |
| Clock | Clock info for the current locale. |
| Coalesce | First non-blank value wins. |
| Collect | Adds rows to a collection. |
| Color | Built-in color by name. |
| ColorFade | Fades a color toward transparent. |
| ColorValue | CSS name or hex code turned into a color. |
| Column | Reads fields from dynamic data. |
| ColumnNames | Lists the fields of dynamic data. |
| Compass | Live compass heading. |
| Concat | Joins every row's text into one string. |
| Concatenate | Joins pieces of text. |
| Concurrent | Runs formulas at the same time. |
| Confirm | Shows a yes-or-no dialog. |
| Connection | Live network connection info. |
| Copy | Sends text to the clipboard. |
| Count | Counts numeric entries. |
| Cos | Cosine of an angle in radians. |
| Cot | Cotangent of an angle in radians. |
| CountA | Counts non-empty entries. |
| CountIf | Counts rows that meet a condition. |
| CountRows | Counts rows, plain and simple. |
D
| Function | What it does |
|---|---|
| DataSourceInfo | Asks a data source about itself. |
| Date | Builds a date from year, month, and day. |
| DateAdd | Shifts a date by days, months, or years. |
| DateDiff | Measures the gap between two dates. |
| DateTime | Builds a date plus time value. |
| DateTimeValue | Reads date-and-time text into a value. |
| DateValue | Reads date-only text into a value. |
| Day | Day number from a date. |
| Dec2Hex | Number rewritten as hexadecimal text. |
| Defaults | Blank-row template of a data source. |
| Degrees | Radians converted to degrees. |
| Disable | Switches a signal off. |
| Distinct | Unique values only, duplicates removed. |
| Download | Saves a web file to the device. |
| DropColumns | Removes columns from a table. |
E
| Function | What it does |
|---|---|
| EDate | Same day, shifted by months. |
| EditForm | Opens a form to edit an item. |
| Enable | Switches a signal on. |
| EncodeHTML | Makes text safe for HTML. |
| EncodeUrl | Makes text safe for URLs. |
| EndsWith | Checks how text finishes. |
| EOMonth | Last day of a shifted month. |
| Error | Raises a custom error. |
| Errors | Explains failed data source writes. |
| exactin | Case-sensitive containment check. |
| Exit | Closes the app, optionally signing out. |
| Exp | The constant e raised to a power. |
F
| Function | What it does |
|---|---|
| Filter | Keeps rows that meet a condition. |
| Find | Locates text inside text. |
| First | Opening row of a table. |
| FirstN | Opening N rows of a table. |
| Float | Text converted to a decimal number. |
| ForAll | Repeats logic for every row. |
G
H
| Function | What it does |
|---|---|
| HashTags | Pulls hashtags out of text. |
| Hex2Dec | Hexadecimal text back to a number. |
| Host | Info about where the app runs. |
| Hour | Hour number from a time. |
I
| Function | What it does |
|---|---|
| If | Picks a result by condition. |
| IfError | Fallback when something fails. |
| in | Case-insensitive containment check. |
| Index | Row by its position number. |
| Int | Rounds down to a whole number. |
| IsBlank | Detects an empty value. |
| IsBlankOrError | Empty or failed — either way true. |
| IsEmpty | Detects an empty table. |
| IsError | Detects a failed result. |
| IsMatch | Tests text against a pattern. |
| IsNumeric | Detects a numeric value. |
| ISOWeekNum | ISO calendar week of a date. |
| IsToday | Checks whether a date is today. |
| IsType | Checks a record's table type. |
J
| Function | What it does |
|---|---|
| JSON | Value rewritten as JSON text. |
L
| Function | What it does |
|---|---|
| Language | Current user's language tag. |
| Last | Closing row of a table. |
| LastN | Closing N rows of a table. |
| Launch | Opens a web page or another app. |
| Left | Opening characters of text. |
| Len | Counts characters in text. |
| Ln | Natural logarithm. |
| LoadData | Brings saved local data back. |
| Location | Live GPS position. |
| Log | Logarithm in any base. |
| LookUp | First row that meets a condition. |
| Lower | Text forced to lowercase. |
M
| Function | What it does |
|---|---|
| Match | First substring fitting a pattern. |
| MatchAll | Every substring fitting a pattern. |
| Max | Largest value in play. |
| Mid | Middle slice of text. |
| Min | Smallest value in play. |
| Minute | Minute number from a time. |
| Mod | Remainder after division. |
| Month | Month number from a date. |
N
| Function | What it does |
|---|---|
| Navigate | Shows a different screen. |
| NewForm | Opens a form to create an item. |
| Not | Flips true to false and back. |
| Notify | Banner message for the user. |
| Now | Current date and time. |
O
| Function | What it does |
|---|---|
| Or | True when anything passes. |
P
| Function | What it does |
|---|---|
| Param | Reads launch parameters. |
| Parent | Reaches the container's properties. |
| ParseJSON | JSON text turned into usable data. |
| Patch | Creates or edits data source records. |
| Current screen exported for documents. | |
| Pi | The constant pi. |
| PlainText | Strips markup down to plain text. |
| Power | A number raised to a power. |
| Opens the print dialog for a screen. | |
| Proper | Capitalizes each word. |
R
| Function | What it does |
|---|---|
| Radians | Degrees converted to radians. |
| Rand | Random decimal between 0 and 1. |
| RandBetween | Random number inside your range. |
| ReadNFC | Reads a tap-to-connect NFC tag. |
| RecordInfo | Asks a data source about a record. |
| RecordOf | Reveals a table's record type. |
| Refresh | Re-reads a data source. |
| Relate | Links records across tables. |
| Remove | Deletes chosen records. |
| RemoveIf | Deletes records meeting a condition. |
| RenameColumns | Gives columns new names. |
| Replace | Swaps text by position. |
| RequestHide | Hides a SharePoint form. |
| Reset | Returns a control to its default. |
| ResetForm | Returns a form to edit mode. |
| Revert | Discards record errors and reloads. |
| RGBA | Color mixed from red, green, blue, and alpha. |
| Right | Closing characters of text. |
| Round | Rounds to the nearest value. |
| RoundDown | Always rounds downward. |
| RoundUp | Always rounds upward. |
S
| Function | What it does |
|---|---|
| SaveData | Stores a collection on the device. |
| Search | Free-text hunt across columns. |
| Second | Second number from a time. |
| Select | Triggers a control's OnSelect. |
| Self | The current control itself. |
| Sequence | Numbered rows on demand. |
| Set | Stores a global variable. |
| SetFocus | Moves the cursor to a control. |
| SetProperty | Drives an input control by formula. |
| ShowColumns | Keeps only chosen columns. |
| ShowHostInfo | Shows info inside the host app. |
| Shuffle | Randomizes row order. |
| Sin | Sine of an angle in radians. |
| Sort | Orders rows by a formula. |
| SortByColumns | Orders rows by columns. |
| Split | Text divided into rows. |
| Sqrt | Square root. |
| StartsWith | Checks how text begins. |
| StdevP | Standard deviation of values. |
| Substitute | Swaps text by matching. |
| SubmitForm | Saves a form's item. |
| Sum | Adds values up. |
| Switch | Picks a result by matching value. |
T
| Function | What it does |
|---|---|
| Table | Builds a small temporary table. |
| Tan | Tangent of an angle in radians. |
| Text | Formats any value as text. |
| ThisItem | The gallery or form row in context. |
| ThisRecord | The record inside a scope function. |
| Time | Builds a time from hour, minute, and second. |
| TimeValue | Reads time-only text into a value. |
| TimeZoneOffset | Minutes between local time and UTC. |
| Today | Today's date. |
| Trace | Leaves a note in test results. |
| Trim | Trims stray spaces everywhere. |
| TrimEnds | Trims stray spaces at the edges. |
| Trunc | Chops off the decimals. |
| Type | Defines your own data type. |
U
| Function | What it does |
|---|---|
| Ungroup | Flattens grouped rows back out. |
| UniChar | Unicode code turned into text. |
| Unrelate | Unlinks records across tables. |
| Update | Replaces a data source record. |
| UpdateIf | Replaces records meeting a condition. |
| UpdateContext | Stores screen-scoped variables. |
| Upper | Text forced to uppercase. |
| User | Identity of the current user. |
V
| Function | What it does |
|---|---|
| Validate | Checks a value against data source rules. |
| Value | Text converted to a number. |
| VarP | Variance of values. |
| ViewForm | Opens a form in read-only mode. |
W
| Function | What it does |
|---|---|
| Weekday | Day of the week from a date. |
| WeekNum | Calendar week of a date. |
| With | Names a result for reuse in one formula. |
Y
| Function | What it does |
|---|---|
| Year | Year number from a date. |
Keep this reference bookmarked
This hub answers "which function?" — and every function page answers "what does it do?" with what it does, the job makers hire it for, and an example you can adapt. Use them together: find the tool in the task groups above, open its page for the detail. And if the language itself is new to you, What Is Microsoft Power Fx? explains the spreadsheet thinking behind all of it.
Related resources
Topics covered
Power Fx · Low-code · Expressions · Variables
Frequently asked questions
Where is the official list of every Power Fx function?
Right here. This nextM365 hub organizes the complete canvas-apps function reference by the task makers hire each function for, so you can find the right one first and then open its page for what it does, where it fits, and an example.
How many Power Fx functions do makers actually use?
A dozen functions cover most canvas apps: Filter, LookUp, Patch, Collect, ForAll, If, Sort, Concatenate, Text, Sum, Today, and Navigate. Learn those deeply, then look up the rest on demand from the reference.
Are Power Fx functions the same as Excel functions?
Deliberately close, but not identical. Power Fx borrows Excel-style names and behavior for familiar jobs like Sum, If, and Concatenate, then adds app-specific behavior functions such as Patch, Navigate, and Collect that have no Excel equivalent.
What is the difference between behavior and data functions?
Data functions compute values and recalculate automatically, like Filter or Sum. Behavior functions do something — Patch a record, Navigate to a screen, Collect into a collection — and only run in response to events such as a button OnSelect.
Why does my Power Fx formula show an error or the wrong result?
Start with the usual suspects: a blank value where you expected text (guard with IsBlank or Coalesce), an error silently flowing through a chain (catch it with IfError), or a behavior function used where only data functions are allowed. Then confirm the exact syntax in the official reference.
Does this page list every Power Fx function?
Yes. The A–Z index above covers the complete canvas-apps function reference — every function, signal, and operator entry — with each name linking to its page in this reference for what it does, where it fits, and an example.
Sources
- Microsoft Learn: Canvas Apps, Microsoft
- Microsoft Learn: Power Apps, Microsoft
Have a Microsoft 365 topic idea?
Share article suggestions, community session ideas, corrections, or real-world scenarios for future nextM365 learning notes.
Keep learning Microsoft 365
Explore more practical tutorials for SharePoint, Power Platform, Copilot Studio, migration, automation, governance, and security.
Continue learning
Related tutorials
Related questions
Related comparisons