Power Query Functions

If you’ve been using Power Query for a while, you’ve probably noticed something magical happening behind the scenes.

Every time you click a button in the Power Query interface – whether you’re removing duplicates, splitting columns, or changing data types – Power Query is automatically writing function code for you.

Those seemingly simple clicks are actually calling powerful, built-in functions that handle all the heavy lifting of data transformation. And here’s the exciting part:

Power Query comes packed with over 800 built-in functions that can handle virtually any data transformation challenge you can imagine.

Discovering All Available Functions in Power Query (using #shared)

Here’s a neat trick that many Power Query users don’t know about: you can actually see every single function available in Power Query using a simple technique.

In the Power Query Editor, you can use the #shared keyword to access a record that contains all the built-in functions, constants, and identifiers available in the current Power Query environment.

Here’s how to do it:

  1. Open Power Query Editor
  2. Click Get DataOther SourcesBlank Query (this opens Power Query Editor)
  3. In the formula bar, simply type: #shared
shared keyword in formula bar in power query
  1. Press Enter

What you’ll see is a record containing every single function that Power Query has available. You’ll notice there are hundreds of them, organized by their function category prefixes (like Text., Date., Number., etc.).

List of all functions in power query

Converting the Function List to a Table

If you want to get this into a more usable format, you can convert it to a table:

  1. After entering =#shared, you’ll see a Record with all the functions
  2. Click on the “Table” button in the ribbon to convert the record to a table
Convert function list to table power query
  1. Power Query will create a two-column table with function names and their details
  2. You can then filter this table to explore specific function categories
  3. Load this table into Excel if you want to keep it as a reference

This gives you a complete catalog of every function available, which is incredibly useful for discovery and reference.

Along with the functions, this will also give you a list of all the queries you already have in your Power Query Editor.

List of All Power Query Functions

Below I have a list of all the power query functions in Excel at the time of writing this article. New functions are often released to Power Query on a periodic basis. So I’ll keep on adding them as and when they are released.

There could be some additional functions in Power Query for Power BI.

Accessing Data Functions

These functions are primarily used for accessing and importing data from various sources into Power Query. Most of these functions return navigation tables that will help you explore and select the specific data you need.

Function NameDescription
AccessControlEntry.ConditionToIdentitiesGets a list of user identities that meet specific access control conditions
Access.DatabaseConnects to and retrieves the structure of a Microsoft Access database
ActiveDirectory.DomainsFinds Active Directory domains within the same forest as a specified domain, or uses your current machine’s domain if none is specified
AdobeAnalytics.CubesRetrieves available report suites from your Adobe Analytics account
AdoDotNet.DataSourceGets the schema information for any ADO.NET compatible data source
AdoDotNet.QueryRuns a custom SQL query against an ADO.NET data source and returns the results
AnalysisServices.DatabaseConnects to an Analysis Services database and retrieves available cubes or tabular models
AnalysisServices.DatabasesLists all Analysis Services databases available on a specific server
AzureStorage.BlobContentsDownloads and retrieves the actual content of a specific blob from Azure Storage
AzureStorage.BlobsCreates a navigation table showing all containers in an Azure Storage account, with links to explore each container’s blobs
AzureStorage.DataLakeProvides a navigation table of documents and folders within an Azure Data Lake Storage container
AzureStorage.DataLakeContentsDownloads the content of a specific file from Azure Data Lake Storage
AzureStorage.TablesCreates a navigation table listing all tables in an Azure Storage account with links to access each table
Cdm.ContentsCurrently unavailable – requires .NET 4.5 framework
Csv.DocumentReads a CSV file and converts it into a table format using the encoding you specify
Cube.AddAndExpandDimensionColumnIntegrates a dimension table into a cube and expands the analysis to include additional dimension attributes
Cube.AddMeasureColumnAdds a new column to your cube containing calculated measure values for each row
Cube.ApplyParameterUpdates a cube by applying specific parameter values to it
Cube.AttributeMemberIdExtracts the unique identifier for dimension attribute members
Cube.AttributeMemberPropertyGets specific properties of dimension attributes in your cube
Cube.CollapseAndRemoveColumnsSimplifies your cube view by collapsing and removing specified dimension columns
Cube.DimensionsReturns a table listing all available dimensions in your cube
Cube.DisplayFoldersShows the organizational folder structure for cube objects like dimensions and measures
Cube.MeasurePropertiesLists all available properties for measures that are currently expanded in your cube
Cube.MeasurePropertyRetrieves a specific property value for a measure (also called a cell property)
Cube.MeasuresReturns a table containing all available measures in your cube
Cube.ParametersShows all parameters that you can apply to modify your cube
Cube.PropertiesLists available properties for dimensions that are currently expanded in your cube
Cube.PropertyKeyGets the key identifier for a specific property
Cube.ReplaceDimensionsSubstitutes the current set of dimensions with a new set
Cube.TransformApplies multiple cube transformation functions in sequence
DB2.DatabaseConnects to a DB2 database and retrieves available tables and views
DeltaLake.MetadataAccesses the transaction log entries for a Delta Lake table to see its history
DeltaLake.TableReads and returns the data from a Delta Lake table
Essbase.CubesRetrieves cubes from an Essbase instance, organized by server
Excel.CurrentWorkbookAccesses all sheets, named ranges, and tables within the current Excel workbook
Excel.WorkbookReads the contents of any Excel workbook file
Exchange.ContentsConnects to a Microsoft Exchange account and retrieves email content as a table
File.ContentsReads any file and returns its content as binary data
Folder.ContentsScans a folder and returns a table with details about all files and subfolders found
Folder.FilesRecursively searches through a folder and all its subfolders to find files, returning their properties and content links
GoogleAnalytics.AccountsRetrieves Google Analytics accounts associated with your current credentials
Hdfs.ContentsExplores a Hadoop file system folder and returns information about its files and subfolders
Hdfs.FilesRecursively searches through Hadoop file system folders to find all files with their properties
HdInsight.ContainersCreates a navigation table of containers in an Azure HDInsight storage account
HdInsight.ContentsLists containers in an Azure HDInsight storage account with navigation to their contents
HdInsight.FilesShows all files within a specific HDInsight container along with their properties
Html.TableExtracts tables from HTML content using CSS selectors you specify
Identity.FromCreates a new identity object for access control purposes
Identity.IsMemberOfChecks whether a specific identity belongs to a group of identities
IdentityProvider.DefaultGets the default identity provider for your current environment
Informix.DatabaseConnects to an Informix database and lists available tables and views
Json.DocumentParses JSON content (either as text or binary) and converts it into a structured format
Json.FromValueConverts any Power Query value into JSON text format with specified encoding
MySQL.DatabaseConnects to a MySQL database and retrieves tables, views, and scalar functions
OData.FeedConnects to an OData service and returns available data feeds as a table
Odbc.DataSourceConnects to any ODBC-compatible data source and lists its tables and views
Odbc.InferOptionsTests an ODBC driver to determine what SQL capabilities it supports
Odbc.QueryExecutes a custom SQL query against an ODBC data source
OleDb.DataSourceConnects to an OLE DB data source and retrieves its tables and views
OleDb.QueryRuns a native SQL query against an OLE DB data source
Oracle.DatabaseConnects to an Oracle database and lists available tables and views
Pdf.TablesScans a PDF file and extracts any tables it finds
PostgreSQL.DatabaseConnects to a PostgreSQL database and retrieves tables and views
RData.FromBinaryReads an R data file and extracts data frames from it
Salesforce.DataConnects to your Salesforce account and retrieves data objects
Salesforce.ReportsAccesses reports from your Salesforce account
SapBusinessWarehouse.CubesConnects to SAP Business Warehouse and retrieves InfoCubes and queries organized by InfoArea
SapHana.DatabaseConnects to an SAP HANA database and lists available packages
SharePoint.ContentsExplores a SharePoint site and returns a table of all content with file/folder properties
SharePoint.FilesSpecifically retrieves documents from a SharePoint site with their properties
SharePoint.TablesAccesses data from SharePoint Lists as tables
Soda.FeedReads data from a SODA 2.0 API compliant URL (must end with .csv extension)
Sql.DatabaseConnects to a SQL Server database and lists tables, views, and stored functions
Sql.DatabasesShows all databases available on a SQL Server instance
Sybase.DatabaseConnects to a Sybase database and retrieves available tables and views
Teradata.DatabaseConnects to a Teradata database and lists tables and views
WebAction.RequestCreates a web request action that will perform an HTTP method against a URL when executed
Web.BrowserContentsDownloads HTML content from a URL as it would appear in a web browser
Web.ContentsDownloads raw content from a URL as binary data
Web.HeadersRetrieves HTTP headers from a URL as a record
Web.PageParses an HTML page and breaks it down into its structural components, plus provides clean text
Xml.DocumentReads XML content and converts it into a hierarchical table structure
Xml.TablesConverts XML content into a nested collection of flattened tables

Binary Functions

Binary functions are essential for working with files, network data, and any scenario where you need to read or manipulate raw data at the byte level.

Binary Formats

Reading numbers

These functions are essential for reading structured binary files, network protocols, or any custom binary format where you need to parse specific data types in a particular order.

Function NameDescription
BinaryFormat.7BitEncodedSignedIntegerReads a 64-bit signed number that’s stored using a space-saving 7-bit encoding technique (can handle positive and negative values)
BinaryFormat.7BitEncodedUnsignedIntegerReads a 64-bit unsigned number that’s stored using a space-saving 7-bit encoding technique (positive values only)
BinaryFormat.BinaryCreates a format for reading raw binary data without any specific interpretation
BinaryFormat.ByteReads a single byte as an 8-bit unsigned number (values from 0 to 255)
BinaryFormat.ChoiceCreates a smart format that decides which reading format to use next based on data you’ve already processed
BinaryFormat.DecimalReads a .NET decimal value (16 bytes) – perfect for precise financial calculations where accuracy matters
BinaryFormat.DoubleReads an 8-byte double-precision floating point number (high-precision decimal numbers)
BinaryFormat.GroupReads a collection of items where each item has a unique identifier, returning only the item values as a list
BinaryFormat.LengthSets a maximum limit on how many bytes can be read – useful for preventing over-reading of data
BinaryFormat.ListReads a sequence of items one after another and collects them into a list
BinaryFormat.NullReads nothing (zero bytes) and returns null – useful as a placeholder in complex formats
BinaryFormat.RecordCreates a format for reading structured data where each field can be a different data type
BinaryFormat.SignedInteger16Reads a 2-byte signed integer (values from -32,768 to 32,767)
BinaryFormat.SignedInteger32Reads a 4-byte signed integer (values roughly from -2 billion to +2 billion)
BinaryFormat.SignedInteger64Reads an 8-byte signed integer (extremely large range of positive and negative values)
BinaryFormat.SingleReads a 4-byte single-precision floating point number (standard precision decimal numbers)
BinaryFormat.TextReads text data from binary format, with optional encoding specification (like UTF-8, ASCII, etc.)
BinaryFormat.TransformApplies a custom transformation to values after they’re read from the binary data
BinaryFormat.UnsignedInteger16Reads a 2-byte unsigned integer (values from 0 to 65,535)
BinaryFormat.UnsignedInteger32Reads a 4-byte unsigned integer (values from 0 to roughly 4 billion)
BinaryFormat.UnsignedInteger64Reads an 8-byte unsigned integer (extremely large positive values only)
Controlling Byte Order
BinaryFormat.ByteOrderControls the byte order (endianness) when reading multi-byte numbers from binary data – lets you specify whether bytes are read left-to-right (big-endian) or right-to-left (little-endian)
Table.PartitionValuesAnalyzes how a table’s data is divided into partitions and returns details about the partitioning structure

Binary Data

Function NameDescription
Binary.ApproximateLengthGets a rough estimate of how many bytes are in a binary value – useful for very large files where exact counting might be slow
Binary.BufferLoads binary data into memory to make it stable and faster to work with – ensures the data won’t change unexpectedly
Binary.CombineTakes multiple separate binary values and joins them together into one combined binary file
Binary.CompressShrinks binary data using compression algorithms (like ZIP) to reduce file size and save storage space
Binary.DecompressExpands previously compressed binary data back to its original, uncompressed form
Binary.FromConverts other types of data (like text or numbers) into binary format
Binary.FromListTakes a list of numbers (typically 0-255) and converts them into binary data where each number becomes a byte
Binary.FromTextConverts text data (like Base64 encoded strings) back into its original binary form
Binary.InferContentTypeAnalyzes binary data and tries to automatically detect what type of file it is (like PNG, PDF, MP3, etc.)
Binary.LengthCounts and returns the exact number of bytes in a binary value
Binary.RangeExtracts a specific portion of binary data starting from a particular position – like cutting out a section
Binary.SplitBreaks up large binary data into smaller, more manageable chunks of a specified size
Binary.ToListConverts binary data into a list of numbers where each byte becomes a number (0-255)
Binary.ToTextConverts binary data into text format using encoding methods like Base64 for safe text transmission
Binary.ViewCreates a custom binary object with your own handlers that can intercept and modify how binary operations work
Binary.ViewErrorCreates a special type of error for custom binary views that won’t trigger automatic fallback behaviors
Binary.ViewFunctionCreates a function that can be customized and intercepted by handlers in a binary view
#binaryCreates binary data directly from numbers or text – a quick shortcut for building binary values

Combiner Functions

These functions create other functions that merge text values in different ways. They’re commonly used with Table.ToList and Table.CombineColumns to process table rows.

Function NameDescription
Combiner.CombineTextByDelimiterCreates a function that joins text values together using a separator you specify (like commas, spaces, or pipes)
Combiner.CombineTextByEachDelimiterCreates a function that joins text values using different separators for each position (first separator between items 1&2, second separator between items 2&3, etc.)
Combiner.CombineTextByLengthsCreates a function that combines text by cutting each text value to specific lengths you define, then joining them together
Combiner.CombineTextByPositionsCreates a function that places text values at exact positions you specify in the final combined text
Combiner.CombineTextByRangesCreates a function that combines text by placing each value at specific positions with defined lengths – giving you precise control over where each piece goes

Comparer Functions

These functions test whether values are equal and determine their order for sorting operations.

Function NameDescription
Comparer.EqualsTests whether two values are exactly equal and returns true or false
Comparer.FromCultureCreates a comparison function that follows specific cultural rules and case-sensitivity settings (useful for international text sorting)
Comparer.OrdinalCreates a comparison function that compares values based on their character codes (ASCII/Unicode values) – strict computer-style comparison
Comparer.OrdinalIgnoreCaseCreates a comparison function that compares character codes but treats uppercase and lowercase letters as the same

Date Functions

These functions work with the date portion of date, datetime, and datetimezone values for calculations, formatting, and analysis.

Function NameDescription
Date.AddDaysAdds or subtracts a specific number of days to a date (automatically handles month/year rollovers)
Date.AddMonthsAdds or subtracts a specific number of months to a date
Date.AddQuartersAdds or subtracts quarters (3-month periods) to a date (automatically handles year rollovers)
Date.AddWeeksAdds or subtracts weeks (7-day periods) to a date (automatically handles month/year rollovers)
Date.AddYearsAdds or subtracts a specific number of years to a date
Date.DayGets the day number (1-31) from a date
Date.DayOfWeekGets the day of the week as a number (0=Sunday, 1=Monday, etc.)
Date.DayOfWeekNameGets the day of the week as text (like “Monday”, “Tuesday”)
Date.DayOfYearGets which day of the year it is (1-366)
Date.DaysInMonthGets how many days are in the month (28-31)
Date.EndOfDayGets the very end of the day (11:59:59 PM)
Date.EndOfMonthGets the last day of the month
Date.EndOfQuarterGets the last day of the quarter
Date.EndOfWeekGets the last day of the week
Date.EndOfYearGets December 31st of the year
Date.FromConverts various data types into a date value
Date.FromTextConverts text strings into dates using local, universal, or custom date formats
Date.IsInCurrentDayChecks if a date is today
Date.IsInCurrentMonthChecks if a date is in the current month
Date.IsInCurrentQuarterChecks if a date is in the current quarter
Date.IsInCurrentWeekChecks if a date is in the current week
Date.IsInCurrentYearChecks if a date is in the current year
Date.IsInNextDayChecks if a date is tomorrow
Date.IsInNextMonthChecks if a date is in next month
Date.IsInNextNDaysChecks if a date falls within the next N days
Date.IsInNextNMonthsChecks if a date falls within the next N months
Date.IsInNextNQuartersChecks if a date falls within the next N quarters
Date.IsInNextNWeeksChecks if a date falls within the next N weeks
Date.IsInNextNYearsChecks if a date falls within the next N years
Date.IsInNextQuarterChecks if a date is in the next quarter
Date.IsInNextWeekChecks if a date is in next week
Date.IsInNextYearChecks if a date is in next year
Date.IsInPreviousDayChecks if a date was yesterday
Date.IsInPreviousMonthChecks if a date was in last month
Date.IsInPreviousNDaysChecks if a date was within the previous N days
Date.IsInPreviousNMonthsChecks if a date was within the previous N months
Date.IsInPreviousNQuartersChecks if a date was within the previous N quarters
Date.IsInPreviousNWeeksChecks if a date was within the previous N weeks
Date.IsInPreviousNYearsChecks if a date was within the previous N years
Date.IsInPreviousQuarterChecks if a date was in the previous quarter
Date.IsInPreviousWeekChecks if a date was in last week
Date.IsInPreviousYearChecks if a date was in last year
Date.IsInYearToDateChecks if a date is between January 1st and today of the current year
Date.IsLeapYearChecks if the year is a leap year (has 366 days instead of 365)
Date.MonthGets the month number (1-12) from a date
Date.MonthNameGets the month name as text (like “January”, “February”)
Date.QuarterOfYearGets which quarter (1-4) the date falls in
Date.StartOfDayGets the very beginning of the day (12:00:00 AM)
Date.StartOfMonthGets the first day of the month
Date.StartOfQuarterGets the first day of the quarter
Date.StartOfWeekGets the first day of the week (typically Sunday or Monday)
Date.StartOfYearGets January 1st of the year
Date.ToRecordBreaks a date into a record with separate Year, Month, and Day fields
Date.ToTextConverts a date into text format
Date.WeekOfMonthGets which week of the month the date falls in
Date.WeekOfYearGets which week of the year (1-53) the date falls in
Date.YearGets the year number from a date
#dateCreates a date value directly from year, month, and day numbers

DateTime Functions

These functions work with datetime and datetimezone values, handling both date and time components together.

Function NameDescription
DateTime.AddZoneAdds timezone information to a datetime value (converts datetime to datetimezone)
DateTime.DateExtracts just the date part from a datetime, ignoring the time portion
DateTime.FixedLocalNowGets the current date and time once and keeps it fixed (won’t change during query execution)
DateTime.FromConverts various data types into a datetime value
DateTime.FromFileTimeConverts a 64-bit file timestamp number (used by Windows) into a readable datetime
DateTime.FromTextConverts text strings into datetime values using local, universal, or custom formats
DateTime.IsInCurrentHourChecks if a datetime falls within the current hour (like 2:00-2:59 PM)
DateTime.IsInCurrentMinuteChecks if a datetime falls within the current minute (like 2:30:00-2:30:59)
DateTime.IsInCurrentSecondChecks if a datetime falls within the current second
DateTime.IsInNextHourChecks if a datetime falls within the next hour (excludes current hour)
DateTime.IsInNextMinuteChecks if a datetime falls within the next minute (excludes current minute)
DateTime.IsInNextNHoursChecks if a datetime falls within the next N hours (excludes current hour)
DateTime.IsInNextNMinutesChecks if a datetime falls within the next N minutes (excludes current minute)
DateTime.IsInNextNSecondsChecks if a datetime falls within the next N seconds (excludes current second)
DateTime.IsInNextSecondChecks if a datetime falls within the next second (excludes current second)
DateTime.IsInPreviousHourChecks if a datetime was in the previous hour (excludes current hour)
DateTime.IsInPreviousMinuteChecks if a datetime was in the previous minute (excludes current minute)
DateTime.IsInPreviousNHoursChecks if a datetime was within the previous N hours (excludes current hour)
DateTime.IsInPreviousNMinutesChecks if a datetime was within the previous N minutes (excludes current minute)
DateTime.IsInPreviousNSecondsChecks if a datetime was within the previous N seconds (excludes current second)
DateTime.IsInPreviousSecondChecks if a datetime was in the previous second (excludes current second)
DateTime.LocalNowGets the current date and time right now (updates each time it’s called)
DateTime.TimeExtracts just the time part from a datetime, ignoring the date portion
DateTime.ToRecordBreaks a datetime into separate fields (Year, Month, Day, Hour, Minute, Second) in a record
DateTime.ToTextConverts a datetime into text format for display or export
#datetimeCreates a datetime value directly from year, month, day, hour, minute, and second numbers

DateTimeZone Functions

These functions work with datetimezone values, which include date, time, and timezone information together.

Function NameDescription
DateTimeZone.FixedLocalNowGets the current date, time, and timezone once and keeps it fixed throughout query execution
DateTimeZone.FixedUtcNowGets the current date and time in UTC/GMT timezone once and keeps it fixed throughout query execution
DateTimeZone.FromConverts various data types into a datetimezone value
DateTimeZone.FromFileTimeConverts a 64-bit file timestamp number (Windows format) into a datetimezone value
DateTimeZone.FromTextConverts text strings into datetimezone values using local, universal, or custom formats
DateTimeZone.LocalNowGets the current date and time in your local timezone (updates each time it’s called)
DateTimeZone.RemoveZoneStrips away the timezone information, leaving just a regular datetime value
DateTimeZone.SwitchZoneChanges a datetimezone to a different timezone while keeping the same moment in time
DateTimeZone.ToLocalConverts a datetimezone to your local timezone
DateTimeZone.ToRecordBreaks a datetimezone into separate fields (Year, Month, Day, Hour, Minute, Second, ZoneHours, ZoneMinutes)
DateTimeZone.ToTextConverts a datetimezone into text format for display or export
DateTimeZone.ToUtcConverts a datetimezone to UTC/GMT timezone
DateTimeZone.UtcNowGets the current date and time in UTC/GMT timezone (updates each time it’s called)
DateTimeZone.ZoneHoursGets the hour part of the timezone offset (like +5 or -8 for timezones)
DateTimeZone.ZoneMinutesGets the minute part of the timezone offset (like :30 or :45 for some timezones)
#datetimezoneCreates a datetimezone value directly from year, month, day, hour, minute, second, and timezone offset

Duration Functions

These functions work with duration values, which represent spans of time (like “3 days and 2 hours” or “45 minutes”).

Function NameDescription
Duration.DaysGets just the days portion of a duration (ignores hours, minutes, seconds)
Duration.FromConverts various data types into a duration value
Duration.FromTextConverts text strings (like “2.03:30:45”) into duration values
Duration.HoursGets just the hours portion of a duration (ignores days, minutes, seconds)
Duration.MinutesGets just the minutes portion of a duration (ignores days, hours, seconds)
Duration.SecondsGets just the seconds portion of a duration (ignores days, hours, minutes)
Duration.ToRecordBreaks a duration into separate fields (Days, Hours, Minutes, Seconds) in a record
Duration.TotalDaysConverts the entire duration into total days (including fractional days)
Duration.TotalHoursConverts the entire duration into total hours (including fractional hours)
Duration.TotalMinutesConverts the entire duration into total minutes
Duration.TotalSecondsConverts the entire duration into total seconds
Duration.ToTextConverts a duration into text format like “d.h:m:s” (days.hours:minutes:seconds)
#durationCreates a duration value directly from days, hours, minutes, and seconds numbers

Error Handling Functions

These functions help with debugging, tracing, and error handling in Power Query operations.

Function NameDescription
Diagnostics.ActivityIdGets a unique identifier for the current query execution – useful for tracking specific operations in logs
Diagnostics.CorrelationIdGets an identifier that links related requests together – helps trace how data flows between different operations
Diagnostics.TraceWrites a debug message to the trace log (if tracing is enabled) and returns the original value unchanged
Error.RecordCreates a custom error record with your own reason, message, details, and error code for better error handling

Expression Functions

These functions allow you to dynamically build and execute M code during runtime – essentially letting your queries write and run other queries.

Function NameDescription
Expression.ConstantConverts a value into its M code representation (like turning the number 42 into the text “42”)
Expression.EvaluateTakes M code as text and executes it, returning the result (like running “2 + 3” to get 5)
Expression.IdentifierConverts a name into its proper M code identifier format (handles special characters and keywords)

Function Values

These functions work with other M functions – creating, calling, and modifying how functions behave.

Function NameDescription
Function.FromTakes a function that expects one parameter (a list) and wraps it to accept multiple separate parameters instead
Function.InvokeCalls any function with the arguments you provide and returns the result
Function.InvokeAfterCalls a function but waits for a specified duration before executing it (adds a delay)
Function.InvokeWithErrorContextInternal Power Query function – not intended for general use
Function.IsDataSourceChecks whether a function is classified as a data source function (like connecting to databases)
Function.ScalarVectorConverts a function that works on multiple rows into one that works on a single row at a time

Lines Functions

These functions work with text files and data by splitting and joining lines, converting between text lists, single text values, and binary data.

Function NameDescription
Lines.FromBinaryConverts binary data into a list where each line break creates a new list item
Lines.FromTextSplits text into a list where each line becomes a separate list item
Lines.ToBinaryCombines a list of text lines into binary data, adding line breaks between each item with specified encoding
Lines.ToTextCombines a list of text lines into a single text value, adding line breaks between each item

List Functions

These functions allow you to work with lists where you can create and manipulate lists.

Information & Analysis

Functions that tell you about the properties and characteristics of lists

Function NameDescription
List.CountGets the total number of items in a list (including null values)
List.IsEmptyChecks whether a list has no items at all and returns true or false
List.NonNullCountGets the number of items in a list that actually have values (excludes null/empty items)
List.IsDistinctChecks whether all items in a list are unique (no duplicates)
List.MatchesAllChecks if every item in the list meets a specific condition
List.MatchesAnyChecks if at least one item in the list meets a specific condition

Selection & Filtering

Functions that get specific items or subsets from lists

Function NameDescription
List.FirstGets the first item in a list, or a default value if the list is empty
List.LastGets the last item in a list, or a default value if the list is empty
List.FirstNGets the first N items from a list, or items that meet a condition
List.LastNGets the last N items from a list, or items that meet a condition
List.SingleGets the one item from a list that has exactly one item (errors if more or less than one)
List.SingleOrDefaultGets the one item from a list with exactly one item, or default value if empty
List.SelectGets all items from a list that meet a specific condition
List.FindTextGets all items (including record fields) that contain specific text
List.RangeGets a portion of a list starting from a specific position
List.SkipGets a list with the first N items removed
List.PositionsGets a list of index positions for all items in the original list
List.PositionOfGets the index position(s) where a specific value appears in the list
List.PositionOfAnyGets the first index position where any of the specified values appears

Transformation & Manipulation

Functions that change, modify, or restructure lists

Function NameDescription
List.TransformCreates a new list by applying a function to each item in the original list
List.TransformManyCreates a flattened list by applying functions that can return multiple items per input
List.AccumulateBuilds up a single result by processing each list item in sequence (like a running calculation)
List.CombineJoins multiple lists together into one combined list
List.ZipCombines items at the same positions from multiple lists into pairs or groups
List.SplitBreaks a list into smaller lists of a specified size
List.RepeatCreates a new list by repeating the original list a specified number of times
List.ReverseCreates a new list with items in the opposite order
List.BufferLoads the list into memory for faster repeated access
List.DistinctCreates a new list with duplicate values removed
List.AlternateCreates a new list with only the odd-positioned items (1st, 3rd, 5th, etc.)
List.InsertRangeAdds new items to a list at a specific position
List.ReplaceRangeReplaces a section of items in a list with new items
List.ReplaceValueReplaces all occurrences of a specific value with a new value
List.ReplaceMatchingItemsReplaces items that meet certain conditions with new values
List.RemoveFirstNCreates a new list with the first N items removed
List.RemoveLastNCreates a new list with the last N items removed
List.RemoveItemsRemoves all items that appear in a second list
List.RemoveMatchingItemsRemoves all items that match specified values
List.RemoveNullsCreates a new list with all null values removed
List.RemoveRangeRemoves a specific section of items from a list

Generation

Functions that create new lists from scratch

Function NameDescription
List.GenerateCreates a list using custom logic (start value, condition, next value function)
List.RandomCreates a list of random numbers
List.NumbersCreates a list of sequential numbers (like 1, 2, 3, 4…)
List.DatesCreates a list of sequential dates with specified intervals
List.DateTimesCreates a list of sequential datetimes with specified intervals
List.DateTimeZonesCreates a list of sequential datetimezone values with specified intervals
List.TimesCreates a list of sequential time values with specified intervals
List.DurationsCreates a list of sequential duration values with specified intervals

Membership & Set Operations

Functions that test membership and perform mathematical set operations

Function NameDescription
List.ContainsChecks whether a list includes a specific value
List.ContainsAllChecks whether a list includes every value from another list
List.ContainsAnyChecks whether a list includes at least one value from another list
List.AllTrueChecks if all boolean values in a list are true
List.AnyTrueChecks if at least one boolean value in a list is true
List.UnionCombines two lists and removes duplicates (mathematical union)
List.IntersectGets only values that appear in both lists (mathematical intersection)
List.DifferenceGets values that appear in the first list but not the second (mathematical difference)

Statistics & Math

Functions that perform calculations and statistical analysis

Function NameDescription
List.SumAdds up all numbers in a list
List.ProductMultiplies all numbers in a list together
List.AverageCalculates the average (mean) of numbers, dates, or durations
List.MedianFinds the middle value when the list is sorted
List.ModeFinds the most frequently occurring value
List.ModesGets all values that occur most frequently (in case of ties)
List.MinFinds the smallest value, or default if list is empty
List.MaxFinds the largest value, or default if list is empty
List.MinNGets the N smallest values
List.MaxNGets the N largest values
List.PercentileCalculates specific percentiles (like 25th, 50th, 75th percentile)
List.StandardDeviationCalculates how spread out the values are from the average
List.CovarianceMeasures how two lists of numbers vary together

Sorting & Ordering

Functions that arrange lists in specific orders

Function NameDescription
List.SortArranges list items in ascending or descending order, with custom sorting options

Logical Functions

These functions work with logical (true/false) values, converting between different data types and boolean values.

Function NameDescription
Logical.FromConverts various data types into true or false values using standard conversion rules
Logical.FromTextConverts the text strings “true” and “false” into actual boolean values
Logical.ToTextConverts boolean values into the text strings “true” or “false”

Number Functions

These functions create and manipulate number values for calculations, conversions, and mathematical operations.

Information

Functions that test properties and characteristics of numbers

Function NameDescription
Number.IsEvenChecks if a number is even (divisible by 2) and returns true or false
Number.IsNaNChecks if a value is “Not a Number” (NaN) – usually from invalid calculations
Number.IsOddChecks if a number is odd (not divisible by 2) and returns true or false

Conversion and Formatting

Functions that convert between different number types and formats

Function NameDescription
Byte.FromConverts a value to an 8-bit integer (0-255 range)
Currency.FromConverts a value to currency format for financial calculations
Decimal.FromConverts a value to a high-precision decimal number (best for exact calculations)
Double.FromConverts a value to a double-precision floating point number (standard decimal)
Int8.FromConverts a value to a signed 8-bit integer (-128 to 127 range)
Int16.FromConverts a value to a 16-bit integer (-32,768 to 32,767 range)
Int32.FromConverts a value to a 32-bit integer (about -2 billion to +2 billion range)
Int64.FromConverts a value to a 64-bit integer (very large number range)
Number.FromConverts various data types into a general number value
Number.FromTextConverts text strings into numbers (like “123” becomes 123)
Number.ToTextConverts numbers into text format for display or export
Percentage.FromConverts a value to percentage format (like 0.5 becomes 50%)
Single.FromConverts a value to single-precision floating point number (less precise than double)

Rounding

Functions that round numbers in different ways

Function NameDescription
Number.RoundRounds a number to the nearest integer or specified decimal places
Number.RoundAwayFromZeroRounds positive numbers up and negative numbers down (away from zero)
Number.RoundDownAlways rounds down to the nearest integer (floor function)
Number.RoundTowardZeroRounds positive numbers down and negative numbers up (toward zero)
Number.RoundUpAlways rounds up to the nearest integer (ceiling function)

Operations

Functions that perform mathematical calculations and operations

Function NameDescription
Number.AbsGets the absolute value (removes negative sign, distance from zero)
Number.CombinationsCalculates how many ways to choose items from a group (combinations formula)
Number.ExpCalculates e raised to a power (exponential function)
Number.FactorialCalculates factorial (like 5! = 5×4×3×2×1 = 120)
Number.IntegerDivideDivides two numbers and returns only the whole number part (no remainder)
Number.LnCalculates the natural logarithm (base e)
Number.LogCalculates the logarithm with a specified base
Number.Log10Calculates the base-10 logarithm (common logarithm)
Number.ModDivides two numbers and returns only the remainder
Number.PermutationsCalculates how many ways to arrange items in order (permutations formula)
Number.PowerRaises a number to a specified power (like 2^3 = 8)
Number.SignReturns 1 for positive numbers, -1 for negative numbers, or 0 for zero
Number.SqrtCalculates the square root of a number

Random

Functions that generate random numbers

Function NameDescription
Number.RandomGenerates a random decimal number between 0 and 1
Number.RandomBetweenGenerates a random number between two specified values

Trigonometry

Functions that perform trigonometric calculations

Function NameDescription
Number.AcosCalculates the arccosine (inverse cosine) in radians
Number.AsinCalculates the arcsine (inverse sine) in radians
Number.AtanCalculates the arctangent (inverse tangent) in radians
Number.Atan2Calculates the arctangent of y/x, handling quadrants correctly
Number.CosCalculates the cosine of an angle (in radians)
Number.CoshCalculates the hyperbolic cosine
Number.SinCalculates the sine of an angle (in radians)
Number.SinhCalculates the hyperbolic sine
Number.TanCalculates the tangent of an angle (in radians)
Number.TanhCalculates the hyperbolic tangent

Bytes

Functions that perform bitwise operations on numbers

Function NameDescription
Number.BitwiseAndPerforms bitwise AND operation (compares bits: 1&1=1, others=0)
Number.BitwiseNotPerforms bitwise NOT operation (flips all bits: 0→1, 1→0)
Number.BitwiseOrPerforms bitwise OR operation (compares bits: 0|0=0, others=1)
Number.BitwiseShiftLeftShifts binary digits left (multiplies by powers of 2)
Number.BitwiseShiftRightShifts binary digits right (divides by powers of 2)
Number.BitwiseXorPerforms bitwise XOR operation (compares bits: same=0, different=1)

Record Functions

These functions create and manipulate record values (structured data with field names and values).

Information

Functions that provide information about record properties

Function NameDescription
Record.FieldCountGets the total number of fields (columns) in a record
Record.HasFieldsChecks whether a record contains specific field names and returns true or false

Transformations

Functions that modify, combine, or restructure records

Function NameDescription
Geography.FromWellKnownTextConverts geographic text data in WKT format (like “POINT(-122.4 37.8)”) into a structured geographic record
Geography.ToWellKnownTextConverts a structured geographic record back into WKT text format
GeographyPoint.FromCreates a geographic point record from separate latitude, longitude, and other components
Geometry.FromWellKnownTextConverts geometric text data in WKT format into a structured geometric record
Geometry.ToWellKnownTextConverts a structured geometric record back into WKT text format
GeometryPoint.FromCreates a geometric point record from separate coordinate components
Record.AddFieldAdds a new field with a specified name and value to an existing record
Record.CombineMerges multiple records from a list into a single combined record
Record.RemoveFieldsCreates a new record with specified fields removed
Record.RenameFieldsCreates a new record with field names changed to new names (supports swapping field names)
Record.ReorderFieldsRearranges the order of fields in a record to match a specified list of field names
Record.TransformFieldsApplies transformation functions to specific fields, creating a new record with modified values

Selection

Functions that extract or access specific parts of records

Function NameDescription
Record.FieldGets the value of a specific field by name (dynamic version of record[fieldname] syntax)
Record.FieldNamesGets a list of all field names in the record, in their current order
Record.FieldOrDefaultGets the value of a specific field, or returns a default value if the field doesn’t exist
Record.FieldValuesGets a list of all field values in the record, in the same order as the field names
Record.SelectFieldsCreates a new record containing only the specified fields from the original record

Serialization

Functions that convert records to/from other data structures

Function NameDescription
Record.FromListCreates a record from a list of values and a separate list of field names
Record.FromTableCreates a record from a table that has field names in one column and values in another
Record.ToListConverts a record into a list of its field values (loses field names)
Record.ToTableConverts a record into a table with two columns: field names and field values

Replacer Functions

These functions create replacement logic that other functions use to find and replace values in lists and tables.

Function NameDescription
Replacer.ReplaceTextCreates a text replacement function that can be used with List.ReplaceValue or Table.ReplaceValue to find and replace text strings
Replacer.ReplaceValueCreates a general value replacement function that can be used with List.ReplaceValue or Table.ReplaceValue to find and replace any type of values

Splitter Functions

Splitter functions in Power Query are specialized tools that break apart text into smaller pieces based on different criteria like delimiters, positions, or character patterns. These functions are essential for cleaning and transforming data, especially when working with messy text that needs to be separated into individual columns or components.

Function NameWhat It Does
Splitter.SplitByNothingCreates a function that doesn’t actually split anything – it just returns the original text as a single item in a list. Useful when you need a splitter function but don’t want any splitting to occur.
Splitter.SplitTextByCharacterTransitionCreates a function that splits text whenever the character type changes, such as going from letters to numbers, numbers to symbols, or uppercase to lowercase. Great for separating mixed content like “ABC123DEF”.
Splitter.SplitTextByAnyDelimiterCreates a function that can split text using any of the common delimiter characters (like commas, semicolons, pipes, etc.). Power Query automatically detects which delimiter to use.
Splitter.SplitTextByDelimiterCreates a function that splits text using a specific delimiter character or string that you define. This is your go-to function when you know exactly what separates your data (like commas in CSV files).
Splitter.SplitTextByEachDelimiterCreates a function that applies multiple different delimiters one after another to split your text. Each delimiter gets applied to the results of the previous split.
Splitter.SplitTextByLengthsCreates a function that cuts text into pieces based on specific lengths you define. For example, you could split a 10-character string into pieces of 3, 4, and 3 characters.
Splitter.SplitTextByPositionsCreates a function that splits text at exact character positions you specify. If you want to split at positions 5 and 10, it will cut the text at those exact spots.
Splitter.SplitTextByRangesCreates a function that extracts specific character ranges from your text. You define which characters you want (like characters 1-5, 8-12, etc.) and it pulls out just those sections.
Splitter.SplitTextByRepeatedLengthsCreates a function that repeatedly cuts text into chunks of the same length. Perfect for fixed-width data where every field is always the same number of characters.
Splitter.SplitTextByWhitespaceCreates a function that splits text wherever it finds spaces, tabs, line breaks, or other whitespace characters. Handy for separating words or cleaning up text with inconsistent spacing.

Table Functions

Table functions in Power Query are the core tools for creating, manipulating, and transforming table data structures. These functions allow you to build tables from scratch, modify existing tables, perform data operations like joins and aggregations, and convert tables to and from other data types.

Table Construction

Functions that create new tables from various data sources and structures.

Function NameWhat It Does
#tableCreates a table from scratch using column definitions and row data. Think of it as building a table manually by specifying exactly what columns you want and what data goes in each row.
ItemExpression.FromReturns the underlying code structure (AST) for a function’s body. This is mainly used for advanced meta-programming scenarios.
ItemExpression.ItemRepresents an item reference in the code structure. Another advanced function for meta-programming.
RowExpression.ColumnCreates code that represents accessing a specific column within a row. Used in advanced scenarios for building dynamic expressions.
RowExpression.FromReturns the code structure for a function’s body related to row operations. Advanced meta-programming function.
RowExpression.RowRepresents a row reference in the code structure. Used for advanced expression building.
Table.FromColumnsBuilds a table by organizing your data as separate lists for each column, then combining them into a table structure.
Table.FromListTakes a simple list and converts it into a table by applying a function that decides how to split each list item into columns.
Table.FromRecordsConverts a list of records (like mini-databases with field names and values) into a proper table where each record becomes a row.
Table.FromRowsCreates a table from a list of rows, where each row is represented as a list of values. You can optionally specify column names.
Table.FromValueTakes a single value or list of values and creates a simple one-column table from it.
Table.WithErrorContextInternal function used by Power Query’s engine for error handling. Not meant for direct use.
Table.ViewCreates a virtual table with custom handlers that define how operations like filtering or sorting should work. Advanced function for building custom data sources.
Table.ViewErrorCreates special error messages that work with virtual tables created by Table.View. Advanced error handling function.
Table.ViewFunctionCreates functions that can be customized by virtual table handlers. Works with Table.View for advanced scenarios.

Conversions

Functions that transform tables into other data types and vice versa.

Function NameWhat It Does
Table.ToColumnsConverts a table into a list of lists, where each inner list contains all the values from one column.
Table.ToListTransforms a table into a simple list by applying a function to combine each row’s values into a single item.
Table.ToRecordsConverts each row of a table into a record, resulting in a list of records where each record has field names matching the column names.
Table.ToRowsConverts a table into a list of lists, where each inner list represents one row’s values.

Information

Functions that provide details and metadata about tables.

Function NameWhat It Does
Table.ApproximateRowCountGives you a rough estimate of how many rows are in the table, useful for very large datasets where exact counting would be slow.
Table.ColumnCountTells you exactly how many columns your table has.
Table.IsEmptyChecks whether your table has any data rows or if it’s completely empty.
Table.PartitionValuesProvides information about how a table is divided into partitions, useful for understanding data distribution in large datasets.
Table.ProfileAnalyzes your table and gives you a detailed summary of each column, including data types, null counts, and value distributions.
Table.RowCountTells you exactly how many rows of data your table contains.
Table.SchemaReturns a table that describes the structure of your original table – showing column names, data types, and other metadata.
Tables.GetRelationshipsAnalyzes multiple tables and identifies how they’re related to each other, useful for understanding data model connections.

Row Operations

Functions that work with individual rows or sets of rows.

Function NameWhat It Does
Table.AlternateRowsKeeps some rows and skips others in a pattern. You can start at any position and then alternate between keeping and skipping rows.
Table.CombineTakes multiple tables and stacks them on top of each other to create one larger table.
Table.FindTextSearches through your entire table and returns only the rows that contain specific text anywhere in their cells.
Table.FirstGets the very first row from your table, or returns a default value if the table is empty.
Table.FirstNReturns the first several rows from your table – you specify how many you want.
Table.FirstValueGets the value from the first column of the first row, useful when you know your table should have just one result.
Table.FromPartitionsCombines multiple partitioned tables back into a single table.
Table.InsertRowsAdds new rows to your table at a specific position, pushing existing rows down.
Table.LastGets the very last row from your table, or returns a default value if the table is empty.
Table.LastNReturns the last several rows from your table – you specify how many you want.
Table.MatchesAllRowsChecks if every single row in your table meets a specific condition you define.
Table.MatchesAnyRowsChecks if at least one row in your table meets a specific condition you define.
Table.PartitionSplits your table into multiple smaller tables based on grouping criteria.
Table.RangeReturns a specific range of rows starting from a position you specify.
Table.RemoveFirstNRemoves a specified number of rows from the beginning of your table.
Table.RemoveLastNRemoves a specified number of rows from the end of your table.
Table.RemoveRowsRemoves a specific number of rows starting from a position you choose.
Table.RemoveRowsWithErrorsCleans up your table by removing any rows that contain error values in their cells.
Table.RepeatCreates multiple copies of all your table’s rows – useful for generating test data or expanding datasets.
Table.ReplaceRowsReplaces a specific range of rows with new rows you provide.
Table.ReverseRowsFlips your table upside down so the last row becomes first and vice versa.
Table.SelectRowsKeeps only the rows that meet a condition you specify, filtering out all others.
Table.SelectRowsWithErrorsReturns only the rows that contain error values, useful for identifying data quality issues.
Table.SingleRowEnsures your table has exactly one row and returns it, or throws an error if there are zero or multiple rows.
Table.SkipSkips over a specified number of rows from the beginning and returns the rest.
Table.SplitAtDivides your table into two parts at a specific row number, returning both parts as separate tables.

Column Operations

Functions that manipulate, organize, and work with table columns.

Function NameWhat It Does
Table.ColumnExtracts all the values from a specific column and returns them as a simple list.
Table.ColumnNamesReturns a list of all your column names, useful for understanding table structure.
Table.ColumnsOfTypeFinds all columns that match specific data types you’re looking for.
Table.DemoteHeadersTakes your column headers and pushes them down to become the first row of data instead.
Table.DuplicateColumnCreates an exact copy of a column with a new name, preserving all values and data types.
Table.HasColumnsChecks whether your table contains specific columns you’re looking for.
Table.PivotTransforms attribute-value pairs into separate columns – like turning a tall, narrow table into a wide one.
Table.PrefixColumnsAdds the same text prefix to all your column names, useful for avoiding name conflicts when combining tables.
Table.PromoteHeadersTakes the first row of data and promotes it to become your column headers.
Table.RemoveColumnsDeletes specific columns from your table permanently.
Table.ReorderColumnsRearranges your columns in the exact order you specify.
Table.RenameColumnsChanges the names of your columns to new names you provide.
Table.SelectColumnsKeeps only the specific columns you want and removes all others.
Table.TransformColumnNamesApplies a function to modify all column names at once, like making them all uppercase or adding prefixes.
Table.UnpivotTransforms multiple columns into attribute-value pairs – like turning a wide table into a tall, narrow one.
Table.UnpivotOtherColumnsUnpivots all columns except the ones you specify to keep as identifiers.

Transformation

Functions that modify table structure and data content.

Function NameWhat It Does
Table.AddColumnCreates a new column where each row’s value is calculated using a function you provide.
Table.AddFuzzyClusterColumnAdds a column that groups similar values together using fuzzy matching, great for cleaning messy data.
Table.AddIndexColumnAdds a column with sequential numbers (like 1, 2, 3…) to give each row a unique identifier.
Table.AddJoinColumnPerforms a join operation and puts the results in a new column instead of expanding them horizontally.
Table.AddKeyDefines which columns serve as unique identifiers for your table rows.
Table.AggregateTableColumnTakes a column that contains tables and summarizes them into regular columns with aggregated values.
Table.CombineColumnsMerges multiple columns into one new column using a function you specify for combining values.
Table.CombineColumnsToRecordCombines multiple columns into a single column where each cell contains a record with the original column values.
Table.ConformToPageReaderInternal function for Power Query’s data processing engine. Not meant for direct use.
Table.ExpandListColumnTakes a column containing lists and creates separate rows for each item in those lists.
Table.ExpandRecordColumnTakes a column containing records and expands them into separate columns for each record field.
Table.ExpandTableColumnTakes a column containing tables and expands them into multiple columns in the main table.
Table.FillDownCopies values from above to fill in empty cells below in a column.
Table.FillUpCopies values from below to fill in empty cells above in a column.
Table.FilterWithDataTableInternal function for filtering operations. Not meant for direct use.
Table.FuzzyGroupGroups rows together based on similar (but not necessarily identical) key values using fuzzy matching.
Table.FuzzyJoinJoins two tables based on similar key values rather than requiring exact matches.
Table.FuzzyNestedJoinPerforms a fuzzy join and puts the results in a new column instead of expanding them.
Table.GroupGroups rows that have identical key values and allows you to aggregate data within each group.
Table.JoinCombines two tables based on matching key values, creating a wider table with columns from both.
Table.KeysReturns information about which columns are defined as keys for the table.
Table.NestedJoinPerforms a join operation and puts the results in a new column instead of expanding them horizontally.
Table.ReplaceErrorValuesFinds error values in specific columns and replaces them with values you specify.
Table.ReplaceKeysChanges which columns are defined as keys for the table.
Table.ReplaceRelationshipIdentityInternal function for managing table relationships. Not meant for direct use.
Table.ReplaceValueFinds specific values in your table and replaces them with new values.
Table.SplitDivides a large table into multiple smaller tables of a specified size.
Table.SplitColumnTakes one column and splits it into multiple columns using a splitter function.
Table.TransformColumnsApplies functions to modify the values in one or more columns.
Table.TransformColumnTypesChanges the data types of columns, with options for handling different cultural formats.
Table.TransformRowsApplies a function to transform each entire row of the table.
Table.TransposeFlips your table so rows become columns and columns become rows.

Membership

Functions that check for the presence or absence of specific data in tables.

Function NameWhat It Does
Table.ContainsChecks if a specific row (represented as a record) exists anywhere in your table.
Table.ContainsAllChecks if all the rows you specify can be found in your table.
Table.ContainsAnyChecks if at least one of the rows you specify can be found in your table.
Table.DistinctRemoves duplicate rows from your table, keeping only unique rows.
Table.IsDistinctChecks whether your table contains only unique rows (no duplicates).
Table.PositionOfFinds the position (row number) where a specific row appears in your table.
Table.PositionOfAnyFinds the positions where any of several specified rows appear in your table.
Table.RemoveMatchingRowsRemoves all rows that match the rows you specify.
Table.ReplaceMatchingRowsFinds specific rows in your table and replaces them with new rows you provide.

Ordering

Functions that sort and rank table data.

Function NameWhat It Does
Table.AddRankColumnAdds a column that shows the ranking of each row based on the values in other columns.
Table.MaxReturns the row with the highest values based on criteria you specify.
Table.MaxNReturns multiple rows with the highest values, letting you specify how many you want.
Table.MinReturns the row with the smallest values based on criteria you specify.
Table.MinNReturns multiple rows with the smallest values, letting you specify how many you want.
Table.SortArranges your table rows in ascending or descending order based on one or more columns.

Other Table Functions

Utility functions for special table operations.

Function NameWhat It Does
Table.BufferStores your table in memory to improve performance and protect it from changes during processing.
Table.StopFoldingForces Power Query to process operations locally instead of pushing them to the data source, useful for troubleshooting.

Text Functions

Text functions in Power Query are essential tools for working with text data – from simple operations like extracting parts of text and changing case, to complex transformations like splitting, combining, and cleaning text values.

These functions help you manipulate, analyze, and format text data to meet your specific needs.

Information

Functions that provide details and metadata about text values.

Function NameWhat It Does
Text.InferNumberTypeAnalyzes text that contains numbers and figures out what specific number type it represents (like integer, decimal, etc.). Helpful for understanding data before converting it.
Text.LengthCounts how many characters are in your text, including spaces and special characters.

Text Comparisons

Functions that convert between text and other data types, or create text representations.

Function NameWhat It Does
Character.FromNumberTakes a number and converts it to its corresponding character (like 65 becomes “A”).
Character.ToNumberTakes a single character and converts it to its numeric code (like “A” becomes 65).
Guid.FromCreates a properly formatted GUID (globally unique identifier) from various input values.
Json.FromValueConverts any value into its JSON text representation, useful for data export or API interactions.
Text.FromConverts any type of value (numbers, dates, etc.) into text format.
Text.FromBinaryConverts binary data into readable text using a specific encoding method (like UTF-8).
Text.NewGuidGenerates a brand new, unique GUID as a text value.
Text.ToBinaryConverts text into binary data using a specific encoding method.
Text.ToListBreaks down text into a list where each character becomes a separate item.
Value.FromTextConverts text back into its original data type (like turning “123” back into the number 123).

Extraction

Functions that pull out specific parts or sections of text.

Function NameWhat It Does
Text.AtGets the character at a specific position in your text (starting from position 0).
Text.MiddleExtracts a portion of text starting from a specific position and extending for a certain number of characters.
Text.RangeSimilar to Text.Middle – extracts a specific number of characters starting from a position you specify.
Text.StartGets a specific number of characters from the beginning of your text.
Text.EndGets a specific number of characters from the end of your text.

Modification

Functions that change, add, or remove parts of text.

Function NameWhat It Does
Text.InsertAdds new text into an existing text value at a specific position.
Text.RemoveRemoves all instances of specific characters from your text.
Text.RemoveRangeDeletes a specific number of characters starting from a position you choose.
Text.ReplaceFinds all occurrences of specific text and replaces them with new text.
Text.ReplaceRangeReplaces a specific section of text (defined by position and length) with new text.
Text.SelectKeeps only the characters you specify and removes everything else from your text.

Membership

Functions that check whether text contains specific content or patterns.

Function NameWhat It Does
Text.ContainsChecks if your text contains a specific substring anywhere within it. Returns true or false.
Text.EndsWithChecks if your text ends with a specific substring. Useful for file extensions or suffixes.
Text.PositionOfFinds the first position where a specific substring appears in your text (returns -1 if not found).
Text.PositionOfAnyFinds the first position where any of several characters appear in your text (returns -1 if none are found).
Text.StartsWithChecks if your text begins with a specific substring. Great for prefixes or identifying patterns.

Transformations

Functions that modify text format, structure, or appearance.

Function NameWhat It Does
Text.AfterDelimiterReturns everything that comes after a specific delimiter character or text.
Text.BeforeDelimiterReturns everything that comes before a specific delimiter character or text.
Text.BetweenDelimitersExtracts text that appears between two specific delimiters (like getting text between parentheses).
Text.CleanRemoves unprintable characters (like control characters) that might cause display issues.
Text.CombineJoins multiple text values together with a separator you specify (like combining words with commas).
Text.LowerConverts all letters in your text to lowercase.
Text.PadEndAdds characters (usually spaces) to the end of your text to make it a specific length.
Text.PadStartAdds characters (usually spaces) to the beginning of your text to make it a specific length.
Text.ProperCapitalizes the first letter of each word (like title case formatting).
Text.RepeatCreates new text by repeating your original text a specified number of times.
Text.ReverseFlips your text backwards so the last character becomes first.
Text.SplitBreaks text into a list of pieces using a specific delimiter (like splitting a sentence by spaces).
Text.SplitAnyBreaks text into pieces using any of several possible delimiters you specify.
Text.TrimRemoves unwanted characters (usually spaces) from both the beginning and end of your text.
Text.TrimEndRemoves unwanted characters from just the end of your text.
Text.TrimStartRemoves unwanted characters from just the beginning of your text.
Text.UpperConverts all letters in your text to uppercase.

Time Functions

Time functions in Power Query are specialized tools for working with time values – allowing you to create, extract, manipulate, and format time data. These functions help you work with hours, minutes, and seconds, whether you’re parsing time from text, extracting specific time components, or converting between different time formats.

Function NameWhat It Does
Time.EndOfHourTakes a time value and returns the end of that hour (like 2:59:59 PM if you input any time during the 2 PM hour).
Time.FromConverts various types of values into proper time format. Works with text, numbers, or other data types that represent time.
Time.FromTextConverts text that represents time into an actual time value. Handles different time formats including local time, UTC, and custom formats you specify.
Time.HourExtracts just the hour component from a datetime or time value (like getting “14” from “2:30:45 PM”).
Time.MinuteExtracts just the minute component from a datetime or time value (like getting “30” from “2:30:45 PM”).
Time.SecondExtracts just the second component from a datetime or time value (like getting “45” from “2:30:45 PM”).
Time.StartOfHourTakes a time value and returns the start of that hour (like 2:00:00 PM if you input any time during the 2 PM hour).
Time.ToRecordConverts a time value into a record structure that breaks down the time into separate fields for hour, minute, and second.
Time.ToTextConverts a time value into text format, allowing you to specify how you want the time displayed as text.
#timeCreates a time value from individual hour, minute, and second numbers (like making 2:30:45 PM from the numbers 14, 30, and 45).

Type Functions

Type functions in Power Query are advanced tools for working with data types themselves – allowing you to examine, create, modify, and manipulate type definitions.

These functions are primarily used in advanced scenarios like building custom connectors, creating dynamic schemas, or performing meta-programming tasks where you need to work with the structure and constraints of data types.

Function NameWhat It Does
Type.AddTableKeyAdds key information to a table type definition, specifying which columns serve as unique identifiers for the table.
Type.ClosedRecordTakes a record type and makes it “closed,” meaning it won’t accept any additional fields beyond those already defined. If it’s already closed, returns the same type.
Type.FacetsReturns the additional constraints and metadata (called facets) that are attached to a type, like precision for numbers or length limits for text.
Type.ForFunctionCreates a function type definition that specifies what parameter types the function accepts and what type it returns.
Type.ForRecordCreates a record type definition from a description of the fields it should contain.
Type.FunctionParametersExamines a function type and returns information about its parameters – their names and what types they expect.
Type.FunctionRequiredParametersTells you the minimum number of parameters you must provide when calling a function of this type.
Type.FunctionReturnLooks at a function type and tells you what type of value the function returns.
Type.IsChecks whether values of one type can always be used where another type is expected – essentially testing type compatibility.
Type.IsNullableChecks whether a type allows null values or requires actual data. Returns true if nulls are allowed, false if not.
Type.IsOpenRecordChecks whether a record type is “open” (can accept additional fields) or “closed” (only accepts predefined fields).
Type.ListItemTakes a list type and tells you what type of items the list contains (like getting “text” from a “list of text” type).
Type.NonNullableTakes a type that allows nulls and converts it to a version that doesn’t allow nulls.
Type.OpenRecordTakes a record type and makes it “open,” meaning it can accept additional fields beyond those already defined. If it’s already open, returns the same type.
Type.RecordFieldsExamines a record type and returns detailed information about each field, including the field’s type and whether it’s optional.
Type.ReplaceFacetsChanges the constraints and metadata (facets) attached to a type, like modifying precision or length limits.
Type.ReplaceTableKeysChanges which columns are defined as keys in a table type definition.
Type.TableColumnGets the type definition for a specific column in a table type.
Type.TableKeysReturns information about which columns are defined as keys in a table type.
Type.TableRowGets the record type that represents a single row in a table type (showing what fields each row contains).
Type.TableSchemaReturns a table that describes the structure of a table type, showing all columns and their properties.
Type.UnionCombines multiple types into a single type that can accept values from any of the original types.

URI Functions

Uri functions in Power Query are specialized tools for working with web addresses and URLs.

These functions help you build, combine, parse, and properly format URIs and query strings – essential when working with web APIs, constructing dynamic URLs, or extracting information from web addresses.

Function NameWhat It Does
Uri.BuildQueryStringTakes a record with field names and values and converts it into a proper URL query string (like turning [name=”John”, age=25] into “name=John&age=25”).
Uri.CombineIntelligently combines a base URL with a relative path to create a complete, properly formatted web address.
Uri.EscapeDataStringEncodes special characters in text so they can be safely used in URLs (like converting spaces to %20 and other characters that aren’t allowed in web addresses).
Uri.PartsTakes a complete URL and breaks it down into its individual components like scheme, host, path, query parameters, etc., returning them as a record.

Value Functions

Value functions in Power Query are fundamental tools that work with any type of data value – allowing you to evaluate, compare, perform operations, and manipulate values regardless of their specific data type.

These functions provide core operations like arithmetic, type checking, metadata handling, and value comparison that form the foundation of many data transformations.

Core Value Functions

General functions for evaluating and working with values.

Function NameWhat It Does
Value.AlternatesProvides alternative ways to execute a query, allowing Power Query to choose the most efficient approach. Advanced optimization function.
Value.CompareCompares two values and returns -1 if the first is smaller, 0 if they’re equal, or 1 if the first is larger.
Value.EqualsChecks if two values are exactly the same, returning true or false.
Value.ExpressionReturns the underlying code structure (AST) that represents how a value was created. Advanced meta-programming function.
Value.VersionIdentityGets the version identifier for a value, useful for tracking data lineage and changes.
Value.VersionsReturns a navigation table showing all available versions of a value, helpful for version control scenarios.
Value.NativeQueryExecutes a query written in the target system’s native language (like SQL) against a data source.
Value.NullableEqualsSimilar to Value.Equals, but handles null values more gracefully – can return true, false, or null.
Value.OptimizeTakes a query and returns an optimized version if possible, otherwise returns the original query unchanged.
Value.TypeTells you what data type a value is (like text, number, date, etc.).

Arithmetic Operations

Functions for performing mathematical calculations on values.

Function NameWhat It Does
Value.AddAdds two values together. Works with numbers, dates, times, and other compatible types.
Value.DivideDivides the first value by the second value.
Value.MultiplyMultiplies two values together.
Value.SubtractSubtracts the second value from the first value.

Parameter Types

Functions for working with data types and type compatibility.

Function NameWhat It Does
Value.AsConverts a value to a specified type if possible, or returns an error if the conversion can’t be done.
Value.IsChecks whether a value is compatible with a specific data type, returning true or false.
Value.ReplaceTypeChanges the type information attached to a value without changing the actual value.

Internal Functions

These functions are used internally by Power Query and are not intended for direct use in your queries.

Function NameWhat It Does
Action.WithErrorContextInternal function for error handling. Not for direct use.
DirectQueryCapabilities.FromInternal function for DirectQuery operations. Not for direct use.
Embedded.ValueAccesses values within embedded mashup scenarios. Internal use only.
Excel.ShapeTableInternal function for Excel-specific table operations. Not for direct use.
Module.VersionsReturns version information for the current module and its dependencies. Internal use.
Progress.DataSourceProgressInternal function for tracking data source progress. Not for direct use.
SqlExpression.SchemaFromInternal function for SQL expression schema handling. Not for direct use.
SqlExpression.ToExpressionInternal function for SQL expression conversion. Not for direct use.
Value.FirewallInternal function for security and access control. Not for direct use.
Value.ViewErrorInternal function for handling view-related errors. Not for direct use.
Value.ViewFunctionInternal function for view operations. Not for direct use.
Variable.ValueInternal function for variable handling. Not for direct use.

Metadata

Functions for working with metadata attached to values.

Function NameWhat It Does
Value.MetadataRetrieves the metadata record attached to a value, which contains additional information about the value.
Value.RemoveMetadataStrips away all metadata from a value, returning just the clean value without any attached information.
Value.ReplaceMetadataReplaces the existing metadata on a value with new metadata you provide.

Lineage

Functions for tracking data lineage and dependencies (primarily for internal use).

Function NameWhat It Does
Graph.NodesInternal function for working with dependency graphs. Not for direct use.
Value.LineageInternal function for tracking data lineage. Not for direct use.
Value.TraitsInternal function for managing value traits and characteristics. Not for direct use.
Picture of Sumit Bansal
Hello there! I'm Sumit Bansal, founder of trumpexcel.com and an Excel MVP. I started this website in 2013 with a simple goal: to share my love for Excel through easy to follow tips, tutorials and videos. I'm here to help you get the best out of MS Excel to save time and boost your productivity.
Free-Excel-Tips-EBook-Sumit-Bansal-1.png

FREE EXCEL E-BOOK

Get 51 Excel Tips Ebook to skyrocket your productivity and get work done faster

Free-Excel-Tips-EBook-Sumit-Bansal-1.png

FREE EXCEL E-BOOK

Get 51 Excel Tips Ebook to skyrocket your productivity and get work done faster

Free Excel Tips EBook Sumit Bansal

FREE EXCEL E-BOOK

Get 51 Excel Tips Ebook to skyrocket your productivity and get work done faster