PowerFX Toolkit

Preview

Generate complex PowerFX formulas instantly. Select a function below to get started.

Device Acceleration (Signal)

Get device acceleration in X, Y, Z axes

Returns the device acceleration in three dimensions measured in g units (9.81 m/s²). Works on native iOS/Android players, returns zero in the browser

Acceleration()

Arccosine (Inverse Cosine)

Get the angle whose cosine is the given number

Returns the arccosine of a number in radians (range 0 to π). Input must be between -1 and 1, otherwise returns blank

Acos()

Arccotangent (Inverse Cotangent)

Get the angle whose cotangent is the given number

Returns the arccotangent of a number in radians (range 0 to π). Works with any number

Acot()

Add Calculated Columns

Add new calculated columns to a table

Adds one or more calculated columns to a table or record. The original table is not modified — a new table is returned. Use formulas referencing existing columns

AddColumns()

AI Text Classification

Classify text into categories using AI

Uses AI to classify text into one of the provided categories. Great for sorting customer issues, feedback, or support tickets automatically

AIClassify()

AI Entity Extraction

Extract entities like names or phone numbers from text

Uses AI to extract specified entities (names, phone numbers, states, etc.) from text. Returns a table of matching results. Still in development

AIExtract()

AI Auto-Reply

Generate an AI reply to a message

Uses AI to draft a contextual reply to the provided text. Perfect for auto-responding to customer reviews, emails, or messages

AIReply()

AI Sentiment Analysis

Detect if text is positive, negative, or neutral

Uses AI to detect the sentiment of text. Returns "Positive", "Neutral", or "Negative". Great for analyzing customer reviews or feedback

AISentiment()

AI Text Summarization

Summarize text using AI

Uses AI to summarize the provided text into a shorter version. Perfect for condensing emails, documents, or long descriptions

AISummarize()

AI Record Summarization

Summarize a Dataverse record using AI

Uses AI to summarize the information in a Dataverse record. Pass a record reference like First(Accounts) and get a human-readable summary

AISummarizeRecord()

AI Translation

Translate text to another language using AI

Uses AI to translate text into a target language. Source language is auto-detected. Supports dozens of languages via language codes like "fr", "de", "es"

AITranslate()

Absolute Value

Get the non-negative value of a number

Returns the number without the negative sign. Abs(-55) returns 55. Works with single values or tables

Abs()

Active Screen (App Signal)

Check which screen is currently showing

Returns the currently displayed screen. Compare against a screen name, or read screen properties like Fill or Height

App()

Arcsine (Inverse Sine)

Get the angle whose sine is the given number

Returns the arcsine of a number in radians (range -π/2 to π/2). Input must be between -1 and 1, otherwise returns blank

Asin()

Arctangent (Inverse Tangent)

Get the angle whose tangent is the given number

Returns the arctangent of a number in radians (range -π/2 to π/2). Works with any number

Atan()

Arctangent from X,Y Coordinates

Get the angle from X and Y coordinates

Returns the angle (in radians, -π to π) from the x-axis to a line from the origin to point (X,Y). Handles all four quadrants correctly, even when X is 0

Atan2()

All Conditions Must Be True (And)

Combine multiple conditions with AND logic

Returns true only if all conditions are true. Perfect for checking multiple requirements at once

And()

Go to Previous Screen

Return to the last displayed screen

Returns to the previously displayed screen with optional transition. Perfect for back buttons

Back()

Create Blank Value

Return a blank/NULL value

Returns a blank value representing "no value" or NULL. Use to clear fields or store NULL in databases

Blank()

Clear Collection

Remove all items from a collection

Delete all records from a collection, leaving it empty

Clear()

Replace Collection Data

Clear and add new records

Remove all items from a collection and add new ones in one action

ClearCollect()

Return First Non-Blank Value

Get first non-empty value from a list

Returns the first value that is not blank or empty. Perfect for providing fallback or default values

Coalesce()

Add to Collection

Append records to a collection

Add new records to an existing collection without removing current items

Collect()

Compass Heading (Signal)

Get the compass direction of the device

Returns the compass heading (0–360 degrees) of the top of the screen based on magnetic north. 0 = North, 90 = East, 180 = South, 270 = West

Compass()

Network Connection (Signal)

Check if device is online, metered, or syncing

Returns network connection info: whether connected (Wi-Fi/cellular), if the connection is metered, and the current sync state for offline-enabled apps

Connection()

Cosine

Get the cosine of an angle in radians

Returns the cosine of an angle specified in radians. Use Radians() to convert degrees first. Works with single values or tables

Cos()

Cotangent

Get the cotangent of an angle in radians

Returns the cotangent (1/tangent) of an angle specified in radians. Use Radians() to convert degrees first. Works with single values or tables

Cot()

Combine Table Strings

Merge strings from all rows in a table

Summarizes text from a table or collection into one string. Like Sum but for text instead of numbers

Concat()

Combine Individual Strings

Join multiple text values together

Combines individual strings into one text value. Works like the & operator for merging text

Concatenate()

Run Formulas Simultaneously

Execute multiple formulas at the same time

Speeds up your app by running multiple formulas concurrently instead of sequentially. Perfect for OnStart

Concurrent()

Convert Radians to Degrees

Convert an angle from radians to degrees

Converts radians to degrees. π radians = 180 degrees. Use to make results from Acos, Asin, Atan human-readable

Degrees()

Remove Columns from Table

Exclude specific columns from a table

Excludes one or more columns from a table or record. All other columns remain. The original table is not modified. The opposite of ShowColumns

DropColumns()

Raise e to a Power

Calculate e raised to the specified power

Returns e (2.71828...) raised to the power of its argument. Exp(2) returns 7.389. Works with single values or tables

Exp()

Filter Multiple Records

Find all items matching conditions

Get multiple records that match your search criteria

Filter()

Get First Record

Return the first record from a table

Returns the first record from a table or collection. Perfect for getting the top item or most recent entry

First()

Get First N Records

Return the first set of records

Returns a table containing the first N records. Great for top results, pagination, or limiting data

FirstN()

Conditional Logic (If-Then-Else)

Show different results based on conditions

Test conditions and return different values or actions based on the result

If()

Get Record by Position

Return a specific record by index

Returns a record from a table based on its position. Record numbering starts at 1

Index()

Check If Value Is Blank

Test for blank or empty values

Returns true if a value is blank (NULL) or empty string. Essential for form validation

IsBlank()

Check If Table Is Empty

Test if table has no records

Returns true if a table or collection contains no records. Perfect for checking if data exists

IsEmpty()

Get Last Record

Return the last record from a table

Returns the last record from a table or collection. Perfect for getting the bottom item or most recent addition

Last()

Get Last N Records

Return the last set of records

Returns a table containing the last N records. Great for recent items, reverse pagination, or showing latest entries

LastN()

Natural Logarithm

Get the natural log (base e) of a number

Returns the natural logarithm (base e) of its argument. Ln(100) returns 4.605. The inverse of Exp. Works with single values or tables

Ln()

Logarithm (Any Base)

Calculate the logarithm in any base

Returns the logarithm of a number in a specified base. Defaults to base 10. Log(100) returns 2, Log(64, 2) returns 6

Log()

GPS Location (Signal)

Get device latitude, longitude, and altitude

Returns the device location based on GPS, cell towers, and IP address. Includes latitude, longitude, and altitude. User must grant permission

Location()

Find One Record

Search and retrieve a single item

Get a specific record from your data source based on conditions

LookUp()

Reverse a Condition (Not)

Negate or flip a Boolean value

Returns the opposite of a condition. Turns true to false and false to true

Not()

Go to a Screen

Navigate to a specific screen

Changes which screen is displayed with optional transitions and context variables. Essential for app navigation

Navigate()

Any Condition Can Be True (Or)

Check if at least one condition is true

Returns true if any condition is true. Perfect for checking if any requirement is met

Or()

Raise Number to a Power

Calculate a number raised to an exponent

Returns a number raised to a power. Power(5, 3) returns 125 (5 Ɨ 5 Ɨ 5). Equivalent to using the ^ operator

Power()

Pi Constant (Ļ€)

Returns the value of π (3.14159...)

Returns the transcendental number π (3.141592...). Takes no arguments. Use in trig calculations like Sin(Pi()/2) or to compute circumferences

Pi()

Save Data to Database

Create or update records

Send data to SharePoint, Dataverse, SQL, or any data source

Patch()

Convert Degrees to Radians

Convert an angle from degrees to radians

Converts degrees to radians. 180 degrees = π radians. Use to prepare degree values for trig functions like Sin, Cos, Tan which expect radians

Radians()

Delete Specific Records

Remove record(s) from a data source

Removes specific record(s) from a data source or collection. Perfect for delete buttons and item removal

Remove()

Delete Records by Condition

Remove records matching criteria

Removes records from a data source based on conditions. Great for bulk deletion and data cleanup

RemoveIf()

Rename Table Columns

Rename one or more columns in a table

Renames columns of a table or record using old/new name pairs. The original table is not modified. Old name must exist, new name must not exist

RenameColumns()

Global Variable (Set)

Store values across all screens

Create or update a global variable that persists throughout your entire app

Set()

Search Text in Columns

Find records by text matching

Searches for a text string across multiple columns. Case-insensitive with partial matching. Perfect for search boxes

Search()

Keep Only Specific Columns

Include only the columns you want

Includes only the specified columns from a table or record, dropping all others. The original table is not modified. The opposite of DropColumns. Great for creating single-column tables

ShowColumns()

Sine

Get the sine of an angle in radians

Returns the sine of an angle specified in radians. Use Radians() to convert degrees first. Works with single values or tables

Sin()

Square Root

Get the square root of a number

Returns the number that, when multiplied by itself, equals the argument. Sqrt(9) returns 3. Works with single values or tables

Sqrt()

Tangent

Get the tangent of an angle in radians

Returns the tangent of an angle specified in radians. Use Radians() to convert degrees first. Works with single values or tables

Tan()

Multiple Choice Logic (Switch)

Match a value against multiple options

Evaluate a formula and return results based on matching values

Switch()

Screen Variable (UpdateContext)

Store values for current screen only

Create or update context variables that are scoped to the current screen

UpdateContext()

Arithmetic Operators

Addition, subtraction, multiplication, division, power, percentage

Standard math operators for calculations in Power Apps formulas. Follows normal order of operations (PEMDAS)

+ - * / ^ %

As Operator (Name Records)

Give a custom name to the current record in galleries or scope functions

Replaces ThisItem or ThisRecord with a meaningful name. Essential for nested galleries and ForAll loops where you need to access outer scopes

As

Test Assertion

Validate a condition in Test Studio

Checks that an expression is true during a test. If it returns false, the test case fails. Only available in Power Apps Test Studio

Assert()

Cast Record to Table Type

Treat a polymorphic lookup as a specific table type

Casts a record reference to a specific table type so you can access its fields. Used with polymorphic lookups like Owner (Users or Teams) in Dataverse

AsType()

Average (Arithmetic Mean)

Calculate the average of numbers

Calculates the arithmetic mean of its arguments. Pass individual values or a table with a formula to average across records

Average()

Convert to Boolean

Convert text, number, or dynamic value to true/false

Converts other types to a Boolean value. "true"/"false" text (case insensitive), 0 = false, any other number = true, Blank() = blank

Boolean()

Calendar (Locale Info)

Get localized month and weekday names

Returns single-column tables of month or weekday names in the user's language. Perfect for Dropdown or Listbox Items properties

Calendar()

ASCII Character from Code

Convert an ASCII code number to its character

Translates a number into the corresponding ASCII character string. Char(65) returns "A". Useful for line breaks with Char(10)

Char()

Lookup Column Choices

Get possible values for a lookup column

Choices returns a table of possible values for a lookup column in Dataverse or SharePoint. Commonly used with Combo box controls without adding the foreign table as a data source

Choices()

Clear Saved Data

Remove data from local device storage

Clears saved data from local storage by key name. Without a name, clears ALL storage for the app. Does not affect other apps

ClearData()

Clock (Locale Info)

Get locale-specific clock format information

Returns clock format info for the user's locale: AM/PM designations and whether a 24-hour clock is used

Clock()

Comparison Operators

Equal, greater than, less than, not equal comparisons

Compare values and return true or false. Used in If(), Filter(), and anywhere you need conditions. Note: Power Apps uses = (not ==) and <> (not !=)

= > < >= <= <>

@ Disambiguation Operator

Resolve name conflicts between fields and globals

The @ operator resolves name conflicts when a field inside a record scope shadows a global name. Use Table[@Field] or [@GlobalName]

@

in & exactin Membership Operators

Test if a value is in a table or a string contains a substring

The "in" operator tests for membership (case-insensitive) and "exactin" does the same but case-sensitive. Works for both table membership and substring matching

in / exactin

Check Record Table Type

Test if a record reference is a specific table type

Returns true or false checking if a polymorphic record reference belongs to a specific table. Use before AsType to safely cast the record

IsType()

Load from Local Storage

Reload a collection from device storage

Reloads a collection from local device storage that was previously saved with SaveData. Data appends to existing records — use Clear() first to replace

LoadData()

Maximum Value

Find the largest number

Returns the maximum (largest) value from its arguments. Pass individual numbers or a table with a formula to find the max across records

Max()

Minimum Value

Find the smallest number

Returns the minimum (smallest) value from its arguments. Pass individual numbers or a table with a formula to find the min across records

Min()

Save to Local Storage

Store a collection on the device

Saves a collection to local device storage under a name key. Use LoadData to retrieve it later. Perfect for offline caching and faster app startup

SaveData()

Self & Parent Operators

Reference the current control or its container

Self refers to the current control (Self.Fill, Self.Width). Parent refers to the container holding the control (Parent.Fill). Relative references without needing control names

Self / Parent

Standard Deviation

Calculate how spread out values are

Calculates the standard deviation of its arguments — a measure of how far values are from their average. A small value means data points are close together

StdevP()

& String Concatenation Operator

Join text strings together with the & operator

The & operator concatenates (joins) text strings. Equivalent to the Concatenate() function. Also supports $"..." string interpolation syntax

&

Sum (Total)

Calculate the total of numbers

Calculates the sum of its arguments. Pass individual numbers or a table with a formula to sum values across all records

Sum()

ThisItem Operator

Access the current record in a Gallery or Form

Refers to the current record inside a Gallery or Form control. Use ThisItem.FieldName to access individual fields of the record being displayed

ThisItem

ThisRecord Operator

Access the current record in ForAll, Filter, Sum, etc.

Refers to the current record inside record scope functions like ForAll, Filter, Sum, and With. Optional but makes formulas clearer and avoids ambiguity

ThisRecord

Unicode Character from Code

Convert a Unicode code point to its character

Translates a Unicode code point number into the corresponding character. Supports the full Unicode range including accented letters, symbols, and more

UniChar()

Variance

Calculate how far values spread from the average

Calculates the variance of its arguments — the square of the standard deviation. Measures how far data points are spread from their average

VarP()

Color Enumeration

Use built-in named colors like Color.Red, Color.Blue, etc.

The Color enumeration provides ~140 named colors from CSS. Use Color.Name to access them. Alpha defaults to 100% (fully opaque)

Color

Brighten or Darken a Color

Return a lighter or darker version of a color

Returns a brighter or darker version of a color. Fade amount: -1 (fully black) through 0 (no change) to 1 (fully white). Great for hover effects

ColorFade()

Color from CSS String

Convert a CSS color name or hex string to a color

Returns a color from a CSS color string. Accepts names ("Tomato"), 6-digit hex (#ff6347), or 8-digit hex with alpha (#ff7f5080)

ColorValue()

Get Column Value (Dynamic)

Retrieve a field value from a dynamic record by name

Returns the value of a named property from a dynamic/untyped record. The column name can be a variable — it does not need to be known at design time. Wrap result with Value(), Text(), etc.

Column()

Get Column Names (Dynamic)

List all field names from a dynamic record

Returns a single-column table of all field names from a dynamic/untyped record. Typically used with ParseJSON to discover JSON keys at runtime

ColumnNames()

Confirmation Dialog

Show a modal confirm/cancel dialog to the user

Displays a confirmation dialog with two buttons. Returns true if confirmed, false if canceled. Supports custom title, subtitle, and button labels

Confirm()

Copy Text to Clipboard

Place text on the device clipboard

Copies any text value to the clipboard as plain text. Behavior function — use in OnSelect, OnChange, etc. Limited in embedded scenarios (Teams, SharePoint)

Copy()

Count Numeric Values

Count records containing a number in a column

Counts the number of records that contain a number in a single-column table. Non-numeric and blank values are skipped

Count()

Count Non-Blank Values

Count records that are not blank in a column

Counts the number of records that are not blank in a single-column table. Includes text, numbers, booleans — anything that is not Blank(). Empty strings ("") are counted

CountA()

Count Matching Records

Count records that satisfy a condition

Counts how many records in a table match a logical condition. The formula can reference any column. Delegable with Dataverse (50K limit with filters)

CountIf()

Count All Rows

Count the total number of records in a table

Counts all records in a table regardless of content. When used directly on Dataverse (no filter), uses a cached count for speed

CountRows()

Color from RGB + Alpha

Build a color from red, green, blue, and transparency values

Returns a color from Red (0-255), Green (0-255), Blue (0-255) components and an Alpha transparency channel (0 = transparent, 1 = opaque)

RGBA()

Data Source Metadata

Get info about a data source or its columns

Retrieves metadata about a data source: column display names, max length, min/max values, required fields, and user permissions (create, read, edit, delete)

DataSourceInfo()

Create Date from Numbers

Build a date from year, month, and day values

Creates a date/time value from separate Year, Month, and Day numbers. Time portion is midnight. Out-of-range values automatically roll over (month 13 = January next year)

Date()

Create Date + Time

Build a date/time value from individual components

Combines Date and Time into one function, creating a value with both date and time parts from separate Year, Month, Day, Hour, Minute, Second, and optional Millisecond numbers

DateTime()

Create Time from Numbers

Build a time value from hour, minute, second

Creates a time value from separate Hour (0-23), Minute, Second, and optional Millisecond numbers. The result has no date component

Time()

Parse Date from String

Convert a date string to a date/time value

Converts a date string (like "10/01/2014" or "January 10, 2013") to a date/time value. Time info in the string is ignored. Supports optional language override for locale-specific parsing

DateValue()

Parse Date + Time from String

Convert a date/time string to a date/time value

Converts a string with both date and time (like "10/11/2014 1:50:24 PM") to a date/time value. Also accepts ISO 8601 format from dynamic/JSON sources

DateTimeValue()

Parse Time from String

Convert a time string to a date/time value

Converts a time string (like "12:15 PM" or "14:30:00") to a date/time value. Date info in the string is ignored. Useful for time comparisons

TimeValue()

Extract Day from Date

Get the day-of-month (1–31) from a date/time value

Returns the day component of a Date/Time value, ranging from 1 to 31

Day()

Extract Month from Date

Get the month (1–12) from a date/time value

Returns the month component of a Date/Time value, ranging from 1 (January) to 12 (December)

Month()

Extract Year from Date

Get the year (starting 1900) from a date/time value

Returns the year component of a Date/Time value, starting with 1900

Year()

Extract Hour from Time

Get the hour (0–23) from a date/time value

Returns the hour component of a Date/Time value, ranging from 0 (12:00 AM) to 23 (11:00 PM)

Hour()

Extract Minute from Time

Get the minute (0–59) from a date/time value

Returns the minute component of a Date/Time value, ranging from 0 to 59

Minute()

Extract Second from Time

Get the second (0–59) from a date/time value

Returns the second component of a Date/Time value, ranging from 0 to 59

Second()

Get Weekday Number

Get the day of the week (1–7) with configurable start day

Returns the weekday of a Date/Time value as a number. Default: 1 (Sunday) to 7 (Saturday). Supports StartOfWeek enum to change which day is first

Weekday()

Decimal to Hexadecimal

Convert a number to a hex string with optional zero-padding

Converts a decimal number to a hexadecimal text string (uppercase A–F). Truncates decimals. Uses 40-bit two's complement for negatives. Optional Places parameter pads positive results with leading zeros

Dec2Hex()

Hexadecimal to Decimal

Convert a hex string to a number

Converts a hexadecimal text string (0–9, A–F, case-insensitive) to a decimal number. Max 10 hex characters. Uses 40-bit two's complement for values above 7FFFFFFFFF

Hex2Dec()

Convert Text to Number

Parse a text string into a numeric value (host default type)

Converts a text string containing number characters to a numeric value. Returns the host's default type (usually Decimal). Handles percentages, currency symbols, scientific notation, and Booleans. Available in Canvas apps

Value()

Convert Text to Float

Parse text into a floating-point number for scientific range

Converts a text string to a Float number. Handles very large values (1e100) that overflow Decimal, but has limited precision. Best for scientific calculations. Not yet available in Canvas apps

Float()

Get Default Values

Return default values for a data source to prepopulate forms

Returns a record containing the default values for a data source. Commonly combined with Patch to create new records with defaults pre-filled. Columns without defaults are omitted from the record

Defaults()

Turn Signal On

Start receiving updates from a signal (e.g. Location)

Turns a signal on so the app starts receiving updates. Currently only works with the Location signal. Use in behavior formulas like OnSelect. No return value

Enable()

Turn Signal Off

Stop receiving updates from a signal to save battery

Turns a signal off so the app stops receiving updates. Saves battery by preventing rapid recalculations. Currently only works with the Location signal. Use in behavior formulas. No return value

Disable()

Get Unique Values

Remove duplicates from a table column or formula result

Evaluates a formula across each record and returns a one-column "Value" table with duplicates removed. Not delegable — only the first portion of a data source is retrieved

Distinct()

Download File from Web

Download a file from a URL to the local device

Downloads a file from a web URL to the local device. On mobile, prompts for save location. On web, depends on browser settings. Only usable in behavior formulas. On Windows returns the saved file path as text

Download()

Add/Subtract Months (Same Day)

Shift a date by months, keeping the same day of the month

Adds or subtracts months from a date while preserving the day. If the resulting month has fewer days, the day is clamped to the last day (e.g. July 31 - 1 month = June 30). Returns a Date with no time component

EDate()

End of Month After Shift

Shift a date by months, then jump to the last day of that month

Adds or subtracts months from a date, then sets the day to the last day of the resulting month. Use 0 months to get the end of the current month. Returns a Date with no time component

EOMonth()

Save Form to Data Source

Validate and submit form changes to the data source

Saves changes from a Form control to the data source. Validates required fields first. In Edit mode updates the record; in New mode creates a new record. Triggers OnSuccess or OnFailure

SubmitForm()

Switch to Edit Mode

Set a Form control to edit an existing record

Switches a Form control to FormMode.Edit. The form is populated from the Item property. When SubmitForm runs, the record is updated. This is the default mode

EditForm()

Switch to New Record Mode

Set a Form control to create a new record

Switches a Form control to FormMode.New. The Item property is ignored and defaults from the DataSource populate the form. When SubmitForm runs, a new record is created

NewForm()

Reset Form to Initial Values

Discard user edits and restore the form to its original state

Resets a form to initial values before user edits. If in New mode, switches back to Edit mode. Triggers the OnReset behavior of the form control

ResetForm()

Switch to Read-Only Mode

Set a Form control to view a record without editing

Switches a Form control to FormMode.View. Fields are read-only and optimized for display. SubmitForm and ResetForm have no effect in this mode

ViewForm()

URL-Encode a String

Replace special characters with %XX for safe URL use

Encodes a URL string by replacing nonalphanumeric characters with % and a hexadecimal number. Use when building URLs dynamically to ensure special characters are properly escaped

EncodeUrl()

HTML-Encode a String

Escape <, >, & into HTML entities for safe display

Encodes a string by replacing characters like <, >, and & with their HTML entity equivalents (&lt;, &gt;, &amp;). Use to display raw HTML structure as visible text

EncodeHTML()

Strip HTML Tags

Remove HTML/XML tags and convert entities to plain text

Strips HTML and XML tags from a string, converting entities like &nbsp; and &quot; to their plain-text equivalents. Great for displaying clean text from RSS feeds or rich-text data

PlainText()

Test if Text Begins With

Check if a string starts with specific text (case-insensitive)

Tests whether one text string begins with another. Case-insensitive by default. Returns true or false. Empty StartText always returns true. Commonly used with Filter for search functionality

StartsWith()

Test if Text Ends With

Check if a string ends with specific text (case-insensitive)

Tests whether one text string ends with another. Case-insensitive by default. Returns true or false. Empty EndText always returns true

EndsWith()

Create or Rethrow Error

Raise a custom error with Kind and Message, or pass through an existing error

Creates and raises a custom error with a Kind (ErrorKind enum) and Message. Also used to rethrow errors with Error( FirstError ) or Error( AllErrors ) inside IfError handlers

Error()

Handle Errors with Fallback

Test for errors and provide replacement values or actions

Tests values for errors and returns a replacement if found. Supports chained value/replacement pairs and an optional default result. Access error details via FirstError.Kind, FirstError.Message, and AllErrors table

IfError()

Check if Value is Error

Returns true if a value is an error, false otherwise

Tests whether a value is an error. Returns Boolean true or false. Blank values are NOT errors (returns false). Using IsError prevents further processing of the error

IsError()

Check if Blank or Error

Returns true if a value is blank OR an error

Tests whether a value is blank or an error. Equivalent to Or( IsBlank(X), IsError(X) ). Use as a replacement for IsBlank when error handling is enabled to preserve existing app behavior

IsBlankOrError()

Get Data Source Errors

Return a table of errors from previous data source operations

Returns a table of errors from previous Patch, Collect, Remove, etc. operations. Each row contains Record, Column, Message, and Error (ErrorKind enum). Use IsEmpty to check if errors occurred. Pass a specific record or check the whole data source

Errors()

Exit the App

Close the running app and optionally sign the user out

Exits the currently running app and returns the user to the app list. Stops all further formula evaluation. Optional Signout parameter signs the user out of Power Apps (useful for shared devices). Only works in behavior formulas

Exit()

Extract Left Characters

Get characters from the start of a string

Extracts the leftmost characters from a string of text. Specify how many characters to return. Works with single values and single-column tables

Left()

Extract Right Characters

Get characters from the end of a string

Extracts the rightmost characters from a string of text. Specify how many characters to return from the end

Right()

Extract Middle Characters

Get characters from the middle of a string

Extracts characters from the middle of a string of text. Specify the starting position and number of characters

Mid()

String Length

Get the length of a text string

Returns the number of characters in a text string. Returns 0 for an empty string. Works with single values and single-column tables

Len()

Convert to Lowercase

Convert text to all lowercase letters

Converts all uppercase letters in a text string to lowercase. Numbers and special characters are not affected

Lower()

Convert to Uppercase

Convert text to all uppercase letters

Converts all lowercase letters in a text string to uppercase. Numbers and special characters are not affected

Upper()

Convert to Title Case

Capitalize the first letter of each word

Converts a text string to title case: the first letter of each word is capitalized and the rest are lowercase

Proper()

Remove Extra Spaces

Remove leading, trailing, and extra internal spaces

Removes extra spaces from a string: leading and trailing spaces are removed, and multiple internal spaces are reduced to single spaces

Trim()

Remove Leading/Trailing Spaces

Remove only leading and trailing spaces

Removes spaces from the beginning and end of a string but preserves internal spacing between words

TrimEnds()

Find Text Position

Find where a string appears within another string

Finds the position of a text string within another string. Returns the starting position number. Case-sensitive. Returns blank if not found

Find()

Replace by Position

Replace characters at a specific position in text

Replaces part of a text string with a different string based on starting position and number of characters to replace

Replace()

Find and Replace Text

Replace occurrences of text with new text

Replaces all occurrences of a text string with another string. Unlike Replace which uses position, Substitute finds and replaces by matching text

Substitute()

Format as Text

Convert any value to a formatted text string

Converts a number, date, or other value to a formatted text string. Use format strings to control the output like date formats or number formatting

Text()

Add to Date/Time

Add days, months, hours, etc. to a date

Adds a number of time units (days, months, hours, minutes, etc.) to a date/time value and returns the new date/time

DateAdd()

Difference Between Dates

Calculate the difference between two dates

Calculates the difference between two date/time values in the specified time units (days, months, years, hours, etc.)

DateDiff()

Current Date and Time

Get the current date and time

Returns the current date and time as a date/time value. Updates every time the formula recalculates. For date only (no time), use Today()

Now()

Current Date

Get the current date (no time)

Returns the current date without the time component. The time portion is midnight. For current date WITH time, use Now()

Today()

Round Number

Round a number to specified decimal places

Rounds a number to the specified number of decimal places. Uses standard rounding (5 rounds up)

Round()

Round Up

Always round away from zero

Rounds a number up (away from zero) to the specified number of decimal places. 3.1 becomes 4 when rounded up to 0 places

RoundUp()

Round Down

Always round toward zero

Rounds a number down (toward zero) to the specified number of decimal places. 3.9 becomes 3 when rounded down to 0 places

RoundDown()

Integer Part

Round down to the nearest integer

Rounds a number down to the nearest whole number (integer). For positive numbers, removes the decimal part. For negative numbers, rounds away from zero

Int()

Loop Through Records

Run a formula for each record in a table

Evaluates a formula for each record in a table. Can perform actions (like Patch) or return a new table. The most versatile looping function in Power Apps

ForAll()

Sort Table

Sort a table by a formula

Sorts a table based on a formula. You can sort ascending or descending. For sorting by column names, use SortByColumns instead

Sort()

Sort by Column Names

Sort a table by one or more column names

Sorts a table by one or more columns specified by name (as strings). Supports multi-column sorting. Better for delegation than Sort

SortByColumns()

Create Inline Table

Create a temporary table from records

Creates a table from inline records. Use for lookup tables, dropdown options, or temporary data that does not come from a data source

Table()

Replace Entire Record

Replace a record entirely in a data source

Replaces an entire record in a data source. All columns not specified are set to blank. Use Patch if you want to modify only specific columns

Update()

Update Records by Condition

Update all records matching a condition

Modifies records in a data source that match a condition. Unlike Update, only changes the specified columns — other columns keep their values

UpdateIf()

Group Records

Group table records by one or more columns

Groups records in a table by one or more columns. Creates a new table where each row contains the grouped column values and a sub-table of matching records

GroupBy()

Ungroup Records

Flatten a grouped table back to individual records

Reverses a GroupBy operation. Takes a table with sub-tables and flattens it back to individual records

Ungroup()

Refresh Data Source

Reload data from a data source

Refreshes the records of a data source. Records from the source are re-fetched. Changes made by other users become visible

Refresh()

Validate Record

Check if a record is valid for a data source

Checks whether a value or complete record is valid for a data source, based on the data source rules and constraints

Validate()

Link Related Records

Create a relationship between two records

Links two records through a one-to-many or many-to-many relationship in Dataverse

Relate()

Unlink Related Records

Remove a relationship between two records

Removes a relationship link between two records. The records themselves are not deleted, only the relationship between them

Unrelate()

Revert Changes

Discard local changes and refresh from data source

Refreshes and clears errors for records from a data source. Discards any local changes that have not been saved

Revert()

Inline Named Values

Define named values for use in a formula

Calculates values and performs actions for a single record, including inline records of named values. Avoids repeating complex expressions

With()

Split Text into Table

Split a text string into a table of substrings

Splits a text string into a table of substrings based on a separator. Great for parsing CSV data, tags, or any delimited text

Split()

Test Pattern Match

Test if text matches a pattern

Tests whether a text string matches a pattern (regular expression). Returns true/false. Use for validation like email, phone number, or zip code patterns

IsMatch()

Extract Pattern Match

Extract the first pattern match from text

Finds the first match of a pattern in text and returns detailed information including the full match, submatches, and position

Match()

Extract All Pattern Matches

Extract all pattern matches from text

Finds all matches of a pattern in text and returns a table of results. Each row contains the full match, submatches, and position

MatchAll()

Check if Numeric

Test if a value is a number

Tests whether a value is numeric. Returns true if the value can be converted to a number, false otherwise

IsNumeric()

Show Notification Banner

Display a banner message to the user

Shows a notification banner at the top of the app screen. Supports different types: Information, Success, Warning, and Error

Notify()

Define User Type

Create a user-defined type for functions

Constructs a user-defined type for use with user-defined functions and untyped values. Used with ParseJSON and custom function definitions

Type()

Convert to JSON

Generate a JSON text string from a value

Converts a table, record, or value to a JSON text string. Useful for sending data to APIs or storing structured data as text

JSON()

Parse JSON String

Convert a JSON string to a usable value

Interprets a JSON string and returns an Untyped object. Use dot notation or Type() to access typed values from the result

ParseJSON()

Generate/Convert GUID

Create or convert a globally unique identifier

Creates a new GUID or converts a GUID string to a GUID value. GUIDs are 128-bit identifiers commonly used as record IDs in Dataverse

GUID()

Get User Language

Get the language tag of the current user

Returns the language tag of the current user (e.g., "en-US", "de-DE", "fr-FR"). Useful for localization and language-dependent formatting

Language()

Current User Info

Get information about the current user

Returns a record with information about the current user including email, full name, and profile image

User()

Remainder (Modulo)

Get the remainder of a division

Returns the remainder after dividing a number by a divisor. For example, Mod(7, 3) returns 1 because 7 = 2*3 + 1

Mod()

Random Number (0 to 1)

Generate a random number between 0 and 1

Returns a pseudo-random number greater than or equal to 0 and less than 1. Recalculates each time the formula is evaluated

Rand()

Random Integer in Range

Generate a random integer between two values

Returns a random integer between a minimum and maximum value (inclusive). Both the min and max values are possible results

RandBetween()

Truncate Decimals

Remove the decimal portion of a number

Truncates a number to only the integer part by removing the decimal portion. Unlike RoundDown, Trunc always rounds toward zero

Trunc()

Open URL or App

Launch a webpage or canvas app

Opens a URL in the browser or launches another canvas app. Can pass parameters to the target

Launch()

Simulate Selection

Trigger a control OnSelect programmatically

Simulates a select action on a control, causing its OnSelect formula to run. Useful for triggering buttons or gallery selections from code

Select()

Set Input Focus

Move keyboard focus to a control

Moves input focus to a specific control. The user can then type into that control without clicking it first

SetFocus()

Reset Control

Reset a control to its default value

Resets an input control to its Default property value, discarding any user changes. Works on text inputs, dropdowns, toggles, etc.

Reset()

Print Screen

Open the browser print dialog

Opens the default browser print dialog for the current screen. Allows users to print or save as PDF

Print()

Hide SharePoint Form

Hide the SharePoint form panel

Hides the SharePoint form panel. Used in customized SharePoint list forms to close the form after submission

RequestHide()

Show Host Info

Display host object information to the user

Shows information about the host environment to the user. Used in embedded scenarios to display context about where the app is running

ShowHostInfo()

Time Zone Offset

Get the offset between local time and UTC

Returns the difference in minutes between the user local time and UTC. Use to convert between local and UTC times

TimeZoneOffset()

Week Number

Get the week number of a date

Returns the week number of a date within the year. Week numbering depends on the start day of the week (Sunday or Monday)

WeekNum()

ISO Week Number

Get the ISO 8601 week number of a date

Returns the ISO 8601 week number of a date. Weeks start on Monday and the first week of the year contains the first Thursday

ISOWeekNum()

Generate Number Sequence

Create a table of sequential numbers

Generates a single-column table of sequential numbers. Great for creating numbered lists, indices, or loop counters

Sequence()

Randomize Table Order

Randomly reorder records in a table

Randomly reorders the records in a table. Each time Shuffle runs, it produces a different random order

Shuffle()

Get Launch Parameter

Access parameters passed to the app

Retrieves a parameter value that was passed to the app via Launch or a URL query string. Used for deep linking between apps

Param()

Extract Hashtags

Extract #hashtags from text

Extracts all hashtags (#strings) from a text string. Returns a single-column table of found hashtags

HashTags()

Record Information

Get metadata about a record

Provides information about a record from a data source, such as whether the user can edit or delete it

RecordInfo()

Record Of Type

Construct a user-defined record type

Creates a typed record reference for use with user-defined functions and untyped values. Used with ParseJSON and function definitions

RecordOf()

Set Control Property (Testing)

Simulate setting a control property for testing

Simulates user interactions with input controls as if the user entered a value. Used in automated testing scenarios with Test Studio

SetProperty()

Read NFC Tag

Read a Near Field Communication tag

Reads an NFC tag that is close to the device. Returns the tag data including ID and NDEF records. Only works on supported mobile devices

ReadNFC()

Host Information

Get info about the device and player running the app

The Host object provides information about the device, operating system, browser, session, and player running the app. Useful for debugging and support

Host()

Export to PDF

Export screen or control contents to a PDF object

Exports the visible contents of a screen or container to a PDF object (blob). Configure paper size, orientation, DPI, margins, and container expansion. Experimental feature

PDF()

Trace Diagnostic Info

Log diagnostic messages for debugging

Records diagnostic information to the Power Apps Live Monitor and optionally Azure Application Insights. Use it to debug your app by logging events and variable values

Trace()

Is Today

Check if a date/time is today

Checks whether a date/time value falls between midnight today and midnight tomorrow in the user's local time zone. Returns true or false

IsToday()
Free PowerFX Generator | PowerLibs | PowerLibs