top of page

Master Power Fx: The Complete List of Formulas for Microsoft Power Apps Canvas Apps

  • Writer: Sivakumar K
    Sivakumar K
  • Oct 21
  • 5 min read

Unlock the full potential of Microsoft Power Apps with this complete guide to Power Fx formulas. From text and date functions to data manipulation, logic, and navigation — learn every formula you need to build dynamic, scalable, and professional-grade Canvas Apps with ease.




Mathematical Functions

Perform numeric operations like addition, rounding, and random number generation — essential for calculations, analytics, and logic-based formulas.

Function

Syntax

Example

Description

Abs()

Abs(Number)

Abs(-25) → 25

Returns absolute value.

Round()

Round(Number, DecimalPlaces)

Round(3.14159, 2) → 3.14

Rounds to specific decimals.

Mod()

Mod(Number, Divisor)

Mod(10, 3) → 1

Returns remainder after division.

Sqrt()

Sqrt(Number)

Sqrt(25) → 5

Returns square root.

Rand()

Rand()

Returns value like 0.4562

Generates random number between 0–1.

Pi()

Pi()

Pi() → 3.14159

Returns constant π.

Date and Time Functions

Work with dates, times, and durations — calculate differences, add days, or format timestamps for workflows and reports.

Function

Syntax

Example

Description

Now()

Now()

Now() → 20-Oct-2025 11:25 PM

Returns current date & time.

Today()

Today()

→ 20-Oct-2025

Returns current date.

DateAdd()

DateAdd(StartDate, NumberOfUnits, Unit)

DateAdd(Today(), 7, Days) → +7 days

Adds or subtracts time.

DateDiff()

DateDiff(Start, End, Unit)

DateDiff(DateValue("01-Jan-2025"), Today(), Days)

Finds difference between two dates.

Text()

Text(DateValue, "Format")

Text(Today(), "dd-mmm-yyyy") → 20-Oct-2025

Formats date/time.

Weekday()

Weekday(Date)

Weekday(Today()) → 2

Returns day of the week (1=Sunday).

Text Functions

Manipulate text strings — combine, split, replace, or change case to clean and display data exactly the way you need.

Function

Syntax

Example

Description

Left()

Left(Text, NumberOfChars)

Left("PowerApps", 5) → "Power"

Extracts characters from left.

Right()

Right(Text, NumberOfChars)

Right("PowerApps", 4) → "Apps"

Extracts characters from right.

Mid()

Mid(Text, Start, Count)

Mid("Microsoft", 2, 3) → "icr"

Extracts characters from middle.

Len()

Len(Text)

Len("PowerFx") → 7

Counts characters.

Upper(), Lower(), Proper()

Upper("power") → "POWER"

Converts case.


Concatenate()

Concatenate("Power", "Apps") → "PowerApps"

Joins text strings.


Substitute()

Substitute("2024", "4", "5") → "2025"

Replaces text.


Trim()

Trim(" Hello ") → "Hello"

Removes extra spaces.


Find()

Find("App", "PowerApps") → 6

Finds position of substring.



Table and Record Functions

Create, filter, update, and transform tables or records — used for working with collections, Dataverse, or SharePoint data in apps

Function

Syntax

Example

Description

Collect()

Collect(CollectionName, Data)

Collect(MyList, {Name:"John", Age:30})

Adds record(s) to a collection.

ClearCollect()

ClearCollect(CollectionName, Data)

ClearCollect(Users, Filter(Employee, Active=true))

Clears and loads new data.

Patch()

Patch(DataSource, Record, {Column:Value})

Patch(Contacts, Defaults(Contacts), {Name:"Ravi", Email:"ravi@x.com"})

Creates or updates records.

Filter()

Filter(Source, Condition)

Filter(Orders, Status="Pending")

Filters table based on condition.

LookUp()

LookUp(Source, Condition, Result)

LookUp(Products, ID=10, Price)

Returns first matching record/field.

Sort()

Sort(Source, Column, SortOrder)

Sort(Employees, Name, Ascending)

Sorts records.

GroupBy()

GroupBy(Source, Column, "GroupName")

GroupBy(Orders, Region, "RegionGroup")

Groups records.

AddColumns()

AddColumns(Source, "NewColumn", Formula)

AddColumns(Orders, "Tax", Price*0.18)

Adds calculated column.


Logical and Comparison Functions

Build decision-making logic — test conditions, handle errors, and perform branching with If(), Switch(), and Boolean operations.

Function

Syntax

Example

Description

If()

If(Condition, TrueResult, FalseResult)

If(Age>18, "Adult", "Minor")

Evaluates condition.

Switch()

Switch(Value, Match1, Result1, Match2, Result2, Default)

Switch(Status, "New","Pending","Closed","Done","Other")

Multi-condition logic.

And(), Or(), Not()

If(And(x>0, y>0), "Positive")

—

Logical operators.

IsBlank()

IsBlank(Value)

IsBlank(TextInput1.Text)

Checks for blank value.

Coalesce()

Coalesce(Value1, Value2)

Coalesce(UserEmail, "default@domain.com")

Returns first non-blank value.

Navigation and Behavior Functions

Control app flow and user experience — move between screens, reset controls, submit forms, or trigger actions dynamically.

Function

Syntax

Example

Description

Navigate()

Navigate(ScreenName, TransitionType)

Navigate(HomeScreen, ScreenTransition.Fade)

Moves between screens.

Back()

Back()

—

Returns to previous screen.

Refresh()

Refresh(DataSource)

Refresh(SharePointList)

Reloads latest data.

Reset()

Reset(ControlName)

Reset(TextInput1)

Resets control value.

SubmitForm()

SubmitForm(FormName)

—

Submits data from a form.

NewForm(), EditForm(), ViewForm()

EditForm(EditForm1)

—

Changes form mode.

Set(), UpdateContext()

Set(varName, Value)

Set(CurrentUser, User().FullName)

Creates variables.


Data & Integration Functions

Connect and work with external data sources — use Patch, JSON, and ParseJSON to read, update, or exchange structured data.

Function

Syntax

Example

Description

JSON()

JSON(DataSource)

JSON(Employees)

Converts data to JSON.

ParseJSON()

ParseJSON(Text)

ParseJSON("{\"Name\":\"John\"}")

Parses text into structured data.

With()

With({x:10, y:20}, x+y) → 30

Defines temporary variables.


DataSourceInfo()

DataSourceInfo(Source, InfoType)

DataSourceInfo(Accounts, DataSourceInfo.DisplayName)

Returns metadata.

Errors()

Errors(DataSource)

—

Lists last data source errors.


User, App & System Functions

Access information about the current user, device, or app context — check connectivity, capture parameters, or show notifications.

Function

Syntax

Example

Description

User()

User()

Returns {FullName, Email, Image}

Info about logged-in user.

Param()

Param("id")

Retrieves URL parameter value.


App.ActiveScreen

—

Current screen name.

IsConnected()

IsConnected()

Returns true/false.

Checks network connectivity.

Notify()

Notify("Data Saved!", NotificationType.Success)

—

Shows banner message.

Advanced Power Fx Tricks

Enhance app efficiency — use Concurrent(), With(), and Monitor() for faster execution, cleaner logic, and easier debugging.

Concept

Example

Description

Concurrent()

Concurrent( Collect(A,Data1), Collect(B,Data2) )

Runs parallel operations.

GUID()

GUID()

Generates unique ID.

RandBetween()

RandBetween(1, 100)

Random integer between limits.

Evaluate() (Preview)

Evaluate("2+3") → 5

Dynamically executes formula.

Select()

Select(Button1)

Programmatically clicks a control.

Launch()

Opens URL.

New Power Fx Functions (2024 – 2025)

Discover the latest language-enhancements in Power Fx that empower Canvas App developers with custom functions, stronger typing, and dynamic data handling. These additions help you build cleaner logic, handle flexible JSON or API responses, and reuse formulas across your app — elevating low-code solutions from simple to sophisticated.

Function

Syntax

Example

Description

AsType()

AsType( RecordReference, TableType )

AsType( First(Accounts).Owner, Users ).'Full Name'

Casts a polymorphic record (like Owner in Dataverse) to a specific table type so its fields can be accessed safely.

IsType()

IsType( RecordReference, TableType )

If( IsType( ThisItem.Owner, Teams ), "Team", "User" )

Checks whether a record reference or value matches a given type — used with AsType for polymorphic lookups.

Type()

Type( { Field1: Type, Field2: Type } )

BookType := Type( { Title: Text, Author: Text } )

Defines a User Defined Type (UDT) for records or tables — improves type safety and reuse.

RecordOf()

RecordOf( TableType )

RecordOf( LibraryType )

Returns the record type definition of a given table type — useful when passing structured records.

ParseJSON() (Enhanced)

ParseJSON( Text [, Type] )

ParseJSON( "{\"Name\":\"John\"}", Type( { Name: Text } ) )

Parses JSON text → record/table; now supports an optional typed output using Type().

Evaluate() (Preview)

Evaluate( TextExpression )

Evaluate("2+3") → 5

Dynamically evaluates a Power Fx expression from a string. Great for AI-driven or configurable formulas.

UserDefinedFunction (UDF)

MyFunc( param: Type ) : ReturnType = Formula

FtoC( f: Number ) : Number = (f - 32) / 1.8

Lets makers define custom reusable functions in Power Fx — similar to Excel custom functions.

Dynamic (formerly UntypedObject)

—

Set(obj, ParseJSON("{\"x\":10}"))

Represents flexible, schema-less data — use when structure is not known at design time.

IsNumeric()

IsNumeric( Value )

IsNumeric("123") → true

Checks whether a value is numeric.

Let() (Experimental)

Let( name1 = expr1, name2 = expr2, result )

Let( x = 10, y = 20, x + y ) → 30

Declares scoped variables directly within a formula — simplifies readability and reuse.

Named Formulas

Name = Expression

UserEmail = User().Email

Defines global formulas that auto-recalculate — replaces many Set() variables for cleaner apps.

With() (Enhanced)

With( { var1: val1, var2: val2 }, Formula )

With( {x:10,y:20}, x+y ) → 30

Supports multiple nested variables and inline calculations.

Concurrent() (Enhanced)

Concurrent( Formula1, Formula2 )

Concurrent( Collect(A,Data1), Collect(B,Data2) )

Runs multiple actions in parallel — faster data loading or patch operations.

Sequence() (Enhanced)

Sequence( Count [, Start [, Step]] )

Sequence(5,10,2) → [10,12,14,16,18]

Generates number tables; new support for dynamic and variable steps.

Monitor()

Monitor( Expression )

Monitor( SubmitForm(Form1) )

Used for debugging — records formula evaluations for performance analysis.


LowCodeElite is your go-to hub for Microsoft Power Platform, Power Bi, and Low-Code solutions. We share insights, tutorials, and real-world use cases to help makers, consultants, and businesses innovate faster.

© 2025 LowCodeElite. All rights reserved.

bottom of page