PowerFX Toolkit
PreviewGenerate complex PowerFX formulas instantly. Select a function below to get started.
This tool is actively being improved with new PowerFX functions being added regularly. More features coming soon!
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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
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
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
Go to Previous Screen
Return to the last displayed screen
Returns to the previously displayed screen with optional transition. Perfect for back buttons
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
Clear Collection
Remove all items from a collection
Delete all records from a collection, leaving it empty
Replace Collection Data
Clear and add new records
Remove all items from a collection and add new ones in one action
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
Add to Collection
Append records to a collection
Add new records to an existing collection without removing current items
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
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
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
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
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
Combine Individual Strings
Join multiple text values together
Combines individual strings into one text value. Works like the & operator for merging text
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
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
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
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
Filter Multiple Records
Find all items matching conditions
Get multiple records that match your search criteria
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
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
Conditional Logic (If-Then-Else)
Show different results based on conditions
Test conditions and return different values or actions based on the result
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
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
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
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
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
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
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
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
Find One Record
Search and retrieve a single item
Get a specific record from your data source based on conditions
Reverse a Condition (Not)
Negate or flip a Boolean value
Returns the opposite of a condition. Turns true to false and false to true
Go to a Screen
Navigate to a specific screen
Changes which screen is displayed with optional transitions and context variables. Essential for app navigation
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
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
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
Save Data to Database
Create or update records
Send data to SharePoint, Dataverse, SQL, or any data source
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
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
Delete Records by Condition
Remove records matching criteria
Removes records from a data source based on conditions. Great for bulk deletion and data cleanup
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
Global Variable (Set)
Store values across all screens
Create or update a global variable that persists throughout your entire app
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
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
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
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
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
Multiple Choice Logic (Switch)
Match a value against multiple options
Evaluate a formula and return results based on matching values
Screen Variable (UpdateContext)
Store values for current screen only
Create or update context variables that are scoped to the current screen
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
& 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
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
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
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
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
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)
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
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)
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.
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
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
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)
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 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
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)
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
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)
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)
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)
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
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
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
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
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
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
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)
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
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)
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
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
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
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
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
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
Convert Text to Decimal
Parse text into a high-precision Decimal number
Converts a text string to a Decimal number with high precision — ideal for financial and business calculations. No floating-point rounding. Not yet available in Canvas apps
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
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
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
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
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
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
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
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
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
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
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
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
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
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
HTML-Encode a String
Escape <, >, & into HTML entities for safe display
Encodes a string by replacing characters like <, >, and & with their HTML entity equivalents (<, >, &). Use to display raw HTML structure as visible text
Strip HTML Tags
Remove HTML/XML tags and convert entities to plain text
Strips HTML and XML tags from a string, converting entities like and " to their plain-text equivalents. Great for displaying clean text from RSS feeds or rich-text data
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
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
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
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
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
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
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
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
Access full library
Sign in to unlock all components
If you already have an account, we'll log you in
What Users Say
"I was able to create a requested feature while still on the phone with management so they could view the result in real time."
Mike B.
Verified PowerLibs User
"It really helps me customize how I want, instead of trying to figure it out myself. Its saved me hours."
PowerLibs User
Power Apps Developer
"Both saved me a tremendous amount of time since I didn't need to build reusable components from scratch."
Kathleen Henry
Power Platform Developer
