Power Query Functions

Power Query is an amazing tool when it comes to extracting data from multiple different sources and then cleaning that data within the Power Query Editor.

While a lot can be done with the user interface in the Power Query editor, the real magic is happening behind the scenes, where Power Query is using some amazing built-in functions to transform your data.

As of writing this article, there are 850+ Power Query functions (and this list keeps getting longer).

Getting a List of All Power Query Functions

Here is a cool trick that will give you a list of all the Power Query functions.

  1. Open a blank query in Power Query Editor.
  2. In the formula bar, enter the following keyword:
=#shared
  1. Press the Enter key

As soon as you do this, Power Query will give you a list of all the functions available for you.

All the function names are mentioned in the first column. To get more information on each function, you can click on the text function in the second column.

If you want to load this list of Power Query functions into Excel, click on the Convert into Table option in the Convert tab, and then Close and Load this query to get a table of all these functions in a worksheet.

Power Query Functions List

Here’s the list of all the Power Query functions that I got by using the shared keyword.

List functions

Power Query Function NameDescription
List.NonNullCountReturns the number of non-null values in a list.
List.MatchesAllReturns true if all items in a list satisfy the given condition function.
List.MatchesAnyReturns true if at least one item in a list satisfies the given condition function.
List.RangeReturns a subset of a list starting at a given offset, optionally limited to a specified count of items.
List.RemoveItemsRemoves all items from a list that also appear in a second list.
List.ReplaceValueReplaces occurrences of a specified value in a list with a new value.
List.FindTextReturns a list of items from a text list that contain the given text string.
List.RemoveLastNRemoves the last N items from a list.
List.RemoveFirstNRemoves the first N items from a list.
List.CountReturns the number of items in a list.
List.DistinctRemoves duplicate values from a list, returning only distinct items.
List.FirstNReturns the first N items from a list.
List.IsEmptyReturns true if a list contains no items.
List.LastNReturns the last N items from a list.
List.SelectReturns a new list containing only the items that satisfy the given condition function.
List.SkipReturns a list with the first N items removed.
List.SortSorts a list using one or more comparison criteria.
List.TransformApplies a transform function to each item in a list and returns the resulting list.
List.TransformManyProjects each item in a list to a new list using a collection selector, then flattens the results into a single list.
List.TypeReturns the type of a list value.
List.ContainsReturns true if a list contains the specified value.
List.DifferenceReturns items from the first list that do not appear in the second list.
List.FirstReturns the first item of a list, or an optional default value if the list is empty.
List.GenerateGenerates a list by repeatedly applying a next function starting from an initial value, while a condition function returns true.
List.IntersectReturns items that appear in all lists in a given list of lists.
List.IsDistinctReturns true if a list contains no duplicate values.
List.LastReturns the last item of a list, or an optional default value if the list is empty.
List.RemoveMatchingItemsRemoves all items from a list that match any item in a second list.
List.RemoveNullsRemoves all null values from a list.
List.RepeatRepeats the contents of a list a specified number of times.
List.ReplaceMatchingItemsReplaces items in a list according to a set of substitution pairs.
List.ReverseReturns a list with the items in reverse order.
List.SingleReturns the single item in a list, or throws an error if the list contains more or fewer than one item.
List.SingleOrDefaultReturns the single item in a list, or a default value if the list is empty, and throws an error if it contains more than one item.
List.UnionReturns a list of distinct values from all lists in a given list of lists.
List.AccumulateReduces a list to a single value by applying an accumulator function to each item, starting from an initial seed value.
List.BufferBuffers a list in memory so that subsequent evaluations read from the in-memory copy rather than re-evaluating the source.
List.CombineConcatenates multiple lists into a single list.
List.ContainsAllReturns true if a list contains every value in a second list.
List.ContainsAnyReturns true if a list contains at least one value from a second list.
List.InsertRangeInserts a list of values into another list at a specified index position.
List.MaxReturns the maximum value in a list.
List.MaxNReturns the N largest values from a list.
List.MinReturns the minimum value in a list.
List.MinNReturns the N smallest values from a list.
List.PositionOfReturns the zero-based index of the first occurrence of a value in a list.
List.PositionOfAnyReturns the zero-based index of the first occurrence of any value from a search list.
List.PositionsReturns a list of zero-based indexes for each item in a list.
List.RemoveRangeRemoves a specified number of items from a list starting at a given index.
List.ReplaceRangeReplaces a range of items in a list with items from a replacement list.
List.AlternateReturns a new list by alternately including and excluding items based on a specified offset and count pattern.
List.ZipCombines multiple lists by pairing items at the same position into sublists.
List.SplitSplits a list into a list of lists, each of a specified page size.
List.AverageReturns the arithmetic mean of a list of numbers.
List.CovarianceReturns the population covariance between two lists of numbers.
List.MedianReturns the median value of a list of numbers.
List.ModeReturns the most frequently occurring value in a list.
List.ModesReturns all values that occur most frequently in a list.
List.PercentileReturns the value at a specified percentile rank from a list of numbers.
List.ProductReturns the product of all numbers in a list.
List.SumReturns the sum of all numbers in a list.
List.StandardDeviationReturns the sample standard deviation of a list of numbers.
List.NumbersGenerates a list of numbers starting from an initial value, incrementing by a given step, for a specified count.
List.TimesGenerates a list of time values starting from an initial time, incrementing by a given duration, for a specified count.
List.DatesGenerates a list of date values starting from an initial date, incrementing by a given duration, for a specified count.
List.DateTimesGenerates a list of datetime values starting from an initial datetime, incrementing by a given duration, for a specified count.
List.DateTimeZonesGenerates a list of datetimezone values starting from an initial datetimezone, incrementing by a given duration, for a specified count.
List.DurationsGenerates a list of duration values starting from an initial duration, incrementing by a given step, for a specified count.
List.RandomGenerates a list of random numbers between 0 and 1 of the specified count.
List.AllTrueReturns true if all values in a list are true.
List.AnyTrueReturns true if at least one value in a list is true.
List.ConformToPageReaderTransforms a list to match the structure expected by a page reader, used internally for streaming large list results.

Table functions

Power Query Function NameDescription
Table.ColumnCountReturns the number of columns in a table.
Table.AlternateRowsReturns a table containing alternating rows from a table, starting at a specified offset and keeping and skipping the specified number of rows in turn.
Table.InsertRowsReturns a table with one or more rows inserted at a specified position.
Table.LastNReturns the last N rows of a table.
Table.LastReturns the last row of a table as a record, or a default value if the table is empty.
Table.MatchesAllRowsReturns true if every row in a table satisfies the given condition.
Table.MatchesAnyRowsReturns true if at least one row in a table satisfies the given condition.
Table.PartitionSplits a table into a list of tables based on a partition function and the specified number of groups.
Table.RangeReturns a table containing a specified number of rows starting at a given offset.
Table.RemoveRowsReturns a table with a specified number of rows removed starting at a given offset.
Table.RepeatReturns a table whose rows are the original table’s rows repeated a given number of times.
Table.ReplaceRowsReturns a table where the rows at a specified position are replaced with the given rows.
Table.ReverseRowsReturns a table with rows in reverse order.
Table.HasColumnsReturns true if a table contains all of the specified column names.
Table.PrefixColumnsReturns a table where every column name has been prefixed with a given text value.
Table.ColumnsOfTypeReturns a list of column names whose types match any of the specified types.
Table.AddColumnReturns a table with a new column appended, where each value is computed by a function applied to each row.
Table.DuplicateColumnReturns a table with a copy of the specified column added under a new name.
Table.FillUpReturns a table where null values in each column are replaced with the first non-null value above them in that column.
Table.RemoveLastNReturns a table with the last N rows removed.
Table.RemoveFirstNReturns a table with the first N rows removed.
Table.ExpandListColumnReturns a table where a column of lists is expanded so each list element becomes its own row.
Table.ExpandTableColumnReturns a table where a column of tables or records is expanded into multiple columns.
Table.TransformRowsReturns a table produced by applying a transform function to each row of the original table.
Table.TransposeReturns a table with columns and rows swapped.
Table.DemoteHeadersReturns a table where the header row is moved down to become the first data row, and generic column names are assigned.
Table.ToRowsReturns a list of lists, where each inner list contains the values for one row of the table.
Table.ToColumnsReturns a list of lists, where each inner list contains all values for one column of the table.
Table.CombineColumnsToRecordReturns a table with specified columns combined into a single record-valued column.
Table.ContainsReturns true if the specified record appears as a row in the table.
Table.ContainsAllReturns true if all of the specified records appear as rows in the table.
Table.ContainsAnyReturns true if any of the specified records appear as rows in the table.
Table.IsDistinctReturns true if every row in the table is unique (no duplicate rows exist).
Table.PositionOfReturns the row index of the first occurrence of a given record in a table, or a list of all positions if specified.
Table.PositionOfAnyReturns the row index of the first occurrence of any of the given records in a table.
Table.RemoveMatchingRowsReturns a table with all rows that match any of the specified records removed.
Table.ReplaceMatchingRowsReturns a table where rows matching any of the specified records are replaced with given replacement rows.
Table.MaxReturns the row containing the maximum value for a given column or comparison function, or a default value if the table is empty.
Table.MaxNReturns the N rows with the largest values for a given column or comparison function.
Table.MinReturns the row containing the minimum value for a given column or comparison function, or a default value if the table is empty.
Table.MinNReturns the N rows with the smallest values for a given column or comparison function.
Table.FindTextReturns a table containing only rows where the specified text appears in at least one cell.
Table.ReplaceValueReturns a table where a specified value is replaced with another value in the given columns.
Table.IsEmptyReturns true if a table contains no rows.
Table.SplitColumnReturns a table where a text column is split into multiple columns using a splitter function.
Table.CombineColumnsReturns a table where two or more columns are merged into a single column using a combiner function.
Table.FirstValueReturns the value of the first cell in the first row of a table, or a default value if the table is empty.
Table.AddRankColumnAdds a new column to a table containing the rank of each row based on specified criteria.
Table.ViewReturns a table with custom handler functions attached for query operations such as filtering, sorting, and row counts.
Table.ViewFunctionReturns a function from a view that can be used when constructing a custom view with Table.View.
Table.ViewErrorCreates an error record that, when thrown inside a view handler, prevents a fallback query from running.
Table.SchemaReturns a table describing the columns of a given table, including their names, types, and type metadata.
Table.ProfileReturns a table containing per-column statistics such as min, max, average, and null count for a given table.
Table.FromListReturns a table by converting a list into rows using a specified splitter function.
Table.ToListReturns a list by combining each row of a table into a single value using a combiner function.
Table.FromValueReturns a single-column table containing the provided value or list of values.
Table.ConformToPageReaderReturns a table that conforms to the contract expected by a page reader, for use in custom connector pagination.
Table.TypeReturns the table type of a given table.
Table.ColumnNamesReturns a list of column names for a table, in column order.
Tables.GetRelationshipsReturns a list of relationships between a set of tables.
Table.FromColumnsReturns a table built from a list of column names and a corresponding list of value lists.
Table.FromPartitionsReturns a table built by combining a set of partitioned tables into one, optionally adding a column identifying the partition each row came from.
Table.PartitionValuesReturns a table describing each partition’s key values, as defined by Table.PartitionKey.
Table.FromRowsReturns a table built from a list of records, with each record becoming one row.
Table.PromoteHeadersReturns a table where the first data row is promoted to be the column header row.
Table.RowCountReturns the number of rows in a table.
Table.ApproximateRowCountReturns an approximate row count for a table, using metadata hints when available for faster performance against large sources.
Table.ToRecordsReturns a list of records, where each record represents one row of the table.
Table.FromRecordsReturns a table built from a list of records, where each record becomes one row.
Table.KeysReturns the keys defined on a table.
Table.AddKeyReturns a table with a key added, identifying one or more columns that uniquely identify rows.
Table.ReplaceKeysReturns a table with all existing keys replaced by the specified set of keys.
Table.PartitionKeyReturns the partition key defined on a table.
Table.ReplacePartitionKeyReturns a table with the partition key replaced by the specified partition key.
Table.ColumnReturns the values of a specified column as a list.
Table.SelectColumnsReturns a table containing only the specified columns, in the given order.
Table.SelectRowsReturns a table containing only the rows that satisfy a given condition.
Table.RenameColumnsReturns a table with columns renamed according to a list of old-name, new-name pairs.
Table.TransformColumnNamesReturns a table with column names transformed by applying a function to each name.
Table.ReorderColumnsReturns a table with columns rearranged in the specified order.
Table.SkipReturns a table with the first N rows removed.
Table.FirstReturns the first row of a table as a record, or a default value if the table is empty.
Table.FirstNReturns the first N rows of a table.
Table.RemoveColumnsReturns a table with the specified columns removed.
Table.GroupReturns a table where rows are grouped by the values of specified columns, with aggregation applied to each group.
Table.JoinReturns a table by joining two tables on matching key columns, using the specified join kind.
Table.AddJoinColumnReturns a table with a new column added that contains the matching rows from a second table, without flattening the join.
Table.NestedJoinJoins two tables on matching columns and returns the result of the join as a new record-valued column, without expanding it.
Table.AddIndexColumnReturns a table with a new column added containing a sequential integer index, starting at a specified value.
Table.FillDownReturns a table where null values in each column are replaced with the most recent non-null value above them in that column.
Table.TransformColumnsReturns a table where values in specified columns are transformed by applying a function to each value.
Table.TransformColumnTypesReturns a table with column types changed to the specified types, using an optional culture for parsing.
Table.SortReturns a table sorted by one or more columns, each with an optional ascending or descending order.
Table.DistinctReturns a table with duplicate rows removed, optionally considering only specified columns.
Table.ExpandRecordColumnReturns a table where a column of records is expanded into multiple columns, one per record field.
Table.AggregateTableColumnReturns a table where a column of tables is aggregated into multiple columns using specified aggregation functions.
Table.SingleRowReturns the single row of a table as a record, and raises an error if the table does not contain exactly one row.
Table.CombineReturns a table that is the concatenation of a list of tables.
Table.PivotReturns a table by pivoting a column of distinct values into new columns, aggregating values from another column.
Table.UnpivotReturns a table by unpivoting specified columns into attribute-value row pairs.
Table.UnpivotOtherColumnsReturns a table by unpivoting all columns except those specified into attribute-value row pairs.
Table.SelectRowsWithErrorsReturns a table containing only rows that have an error in at least one cell in the specified columns.
Table.RemoveRowsWithErrorsReturns a table with rows removed where any cell in the specified columns contains an error.
Table.ReplaceErrorValuesReturns a table where error values in specified columns are replaced with given replacement values.
Table.ReplaceRelationshipIdentityReturns a table with the relationship identity column replaced, for use in incremental refresh scenarios.
Table.FilterWithDataTableFilters a table by retaining only rows whose key column values match values in a provided in-memory data table.
Table.SplitSplits a table into a list of tables each containing at most the specified number of rows.
Table.SplitAtReturns a list of two tables: the first contains rows before the given index, and the second contains rows from that index onward.
Table.BufferReturns a table with all data loaded into memory, preventing repeated evaluation of the upstream query.
Table.StopFoldingReturns a table that prevents any further query folding from being applied to it against the original data source.
Table.WithErrorContextReturns a table where any errors raised during evaluation include additional context information.
Table.AddFuzzyClusterColumnAdds a new column to a table containing representative cluster values based on fuzzy matching of an existing text column.
Table.FuzzyGroupGroups rows in a table by fuzzy matching on a specified text column, treating similar values as belonging to the same group.
Table.FuzzyJoinJoins two tables on a text column using fuzzy matching, so rows with approximately equal values are treated as matches.
Table.FuzzyNestedJoinPerforms a fuzzy join between two tables on a text column and returns the matching rows as a nested table column without expanding them.

Text functions

Power Query Function NameDescription
Text.AfterDelimiterReturns the portion of a text string that appears after a specified delimiter.
Text.BeforeDelimiterReturns the portion of a text string that appears before a specified delimiter.
Text.BetweenDelimitersReturns the portion of a text string found between two specified delimiters.
Character.TypeReturns the type value for a single-character text value.
Character.FromNumberConverts a numeric code point to its corresponding single character.
Character.ToNumberReturns the numeric code point of a single character.
Text.TypeReturns the type value representing the text type in M.
Text.AtReturns the character at a specified zero-based position in a text string.
Text.FromConverts a value of any type to its text representation.
Text.LengthReturns the number of characters in a text string.
Text.RangeReturns a substring starting at a given position for a given number of characters.
Text.MiddleReturns a substring from a text string, starting at a specified position for a given length.
Text.StartReturns the specified number of characters from the beginning of a text string.
Text.EndReturns the specified number of characters from the end of a text string.
Text.StartsWithReturns true if a text string begins with a specified substring.
Text.EndsWithReturns true if a text string ends with a specified substring.
Text.ContainsReturns true if a specified substring is found anywhere within a text string.
Text.CleanRemoves all non-printable characters from a text string.
Text.PositionOfReturns the zero-based position of the first (or specified) occurrence of a substring within a text string.
Text.PositionOfAnyReturns the zero-based position of the first character in a text string that matches any character in a given list.
Text.LowerConverts all characters in a text string to lowercase.
Text.UpperConverts all characters in a text string to uppercase.
Text.ProperConverts a text string to title case, capitalizing the first letter of each word.
Text.SplitSplits a text string into a list of substrings using a specified delimiter.
Text.SplitAnySplits a text string into a list of substrings at any character that appears in a specified set of delimiters.
Text.CombineJoins a list of text strings into a single string, optionally separated by a delimiter.
Text.RepeatReturns a new text string formed by repeating the given text a specified number of times.
Text.ReplaceReplaces all occurrences of a substring within a text string with a new substring.
Text.ReplaceRangeRemoves a range of characters from a text string and inserts replacement text at that position.
Text.InsertInserts a text string into another text string at a specified position.
Text.RemoveRemoves all occurrences of characters in a given list from a text string.
Text.RemoveRangeRemoves a specified number of characters from a text string starting at a given position.
Text.ReverseReturns a new text string with the characters in reverse order.
Text.SelectReturns only the characters from a text string that appear in a specified list of allowed characters.
Text.TrimRemoves leading and trailing whitespace (or specified characters) from a text string.
Text.TrimStartRemoves leading whitespace or specified characters from the beginning of a text string.
Text.TrimEndRemoves trailing whitespace or specified characters from the end of a text string.
Text.PadStartPads a text string on the left with a specified character until it reaches a given length.
Text.PadEndPads a text string on the right with a specified character until it reaches a given length.
Text.ToBinaryEncodes a text string to a binary value using a specified encoding.
Text.ToListConverts a text string into a list where each element is one character.
Text.FromBinaryDecodes a binary value into a text string using a specified encoding.
Text.NewGuidReturns a new randomly generated GUID as a text string.
Text.InferNumberTypeInfers and returns the most specific numeric type (Int64, Double, etc.) that can represent a given text value.
Text.FormatReturns a formatted text string by substituting values into a template that uses positional placeholders.

Number functions

Power Query Function NameDescription
Number.EReturns the mathematical constant e (approximately 2.71828), the base of natural logarithms.
Number.PIReturns the mathematical constant pi (approximately 3.14159), the ratio of a circle’s circumference to its diameter.
Number.TypeRepresents the number data type in Power Query M.
Number.FromConverts a value to a number.
Number.FromTextConverts a text string to a number.
Number.ToTextConverts a number to a text string, with optional format and culture arguments.
Number.IsNaNReturns true if the given value is NaN (not a number), false otherwise.
Number.NaNReturns the special Not-a-Number (NaN) value.
Number.NegativeInfinityReturns the value representing negative infinity.
Number.PositiveInfinityReturns the value representing positive infinity.
Number.EpsilonReturns the smallest positive number representable in the M numeric type.
Number.BitwiseNotReturns the bitwise NOT (complement) of an integer value.
Number.BitwiseOrReturns the bitwise OR of two integer values.
Number.BitwiseAndReturns the bitwise AND of two integer values.
Number.BitwiseXorReturns the bitwise XOR of two integer values.
Number.BitwiseShiftLeftShifts the bits of an integer left by a specified number of positions.
Number.BitwiseShiftRightShifts the bits of an integer right by a specified number of positions.
Number.AbsReturns the absolute value of a number.
Number.AcosReturns the arccosine (inverse cosine) of a number, in radians.
Number.AsinReturns the arcsine (inverse sine) of a number, in radians.
Number.AtanReturns the arctangent (inverse tangent) of a number, in radians.
Number.Atan2Returns the arctangent of the quotient of two numbers (y/x), in radians.
Number.CombinationsReturns the number of combinations for a given number of items from a set.
Number.CosReturns the cosine of an angle given in radians.
Number.CoshReturns the hyperbolic cosine of a number.
Number.ExpReturns e raised to the power of the given number.
Number.FactorialReturns the factorial of a non-negative integer.
Number.IntegerDivideDivides two numbers and returns the integer part of the result.
Number.LogReturns the logarithm of a number to a specified base (defaults to e).
Number.Log10Returns the base-10 logarithm of a number.
Number.LnReturns the natural logarithm (base e) of a number.
Number.ModReturns the remainder after dividing one number by another.
Number.PermutationsReturns the number of permutations for a given number of items from a set.
Number.PowerReturns a number raised to the specified power.
Number.RandomReturns a random number between 0 and 1.
Number.RandomBetweenReturns a random number between the specified lower and upper bounds.
Number.RoundRounds a number to the specified number of decimal places, with optional rounding mode control.
Number.RoundDownRounds a number down (toward negative infinity) to the specified number of decimal places.
Number.RoundUpRounds a number up (toward positive infinity) to the specified number of decimal places.
Number.RoundTowardZeroRounds a number toward zero to the specified number of decimal places.
Number.RoundAwayFromZeroRounds a number away from zero to the specified number of decimal places.
Number.SignReturns 1 for positive numbers, -1 for negative numbers, and 0 for zero.
Number.SinReturns the sine of an angle given in radians.
Number.SinhReturns the hyperbolic sine of a number.
Number.SqrtReturns the square root of a number.
Number.TanReturns the tangent of an angle given in radians.
Number.TanhReturns the hyperbolic tangent of a number.
Number.IsEvenReturns true if a number is even, false otherwise.
Number.IsOddReturns true if a number is odd, false otherwise.

Date functions

Power Query Function NameDescription
Date.IsInPreviousDayReturns true if the given date falls within the previous calendar day relative to the current date.
Date.IsInPreviousNDaysReturns true if the given date falls within the previous N days relative to today.
Date.IsInCurrentDayReturns true if the given date is today.
Date.IsInNextDayReturns true if the given date falls within the next calendar day relative to the current date.
Date.IsInNextNDaysReturns true if the given date falls within the next N days relative to today.
Date.IsInPreviousWeekReturns true if the given date falls within the previous calendar week.
Date.IsInPreviousNWeeksReturns true if the given date falls within the previous N calendar weeks relative to the current week.
Date.IsInCurrentWeekReturns true if the given date falls within the current calendar week.
Date.IsInNextWeekReturns true if the given date falls within the next calendar week.
Date.IsInNextNWeeksReturns true if the given date falls within the next N calendar weeks relative to the current week.
Date.IsInPreviousMonthReturns true if the given date falls within the previous calendar month.
Date.IsInPreviousNMonthsReturns true if the given date falls within the previous N calendar months relative to the current month.
Date.IsInCurrentMonthReturns true if the given date falls within the current calendar month.
Date.IsInNextMonthReturns true if the given date falls within the next calendar month.
Date.IsInNextNMonthsReturns true if the given date falls within the next N calendar months relative to the current month.
Date.IsInPreviousQuarterReturns true if the given date falls within the previous calendar quarter.
Date.IsInPreviousNQuartersReturns true if the given date falls within the previous N calendar quarters relative to the current quarter.
Date.IsInCurrentQuarterReturns true if the given date falls within the current calendar quarter.
Date.IsInNextQuarterReturns true if the given date falls within the next calendar quarter.
Date.IsInNextNQuartersReturns true if the given date falls within the next N calendar quarters relative to the current quarter.
Date.IsInPreviousYearReturns true if the given date falls within the previous calendar year.
Date.IsInPreviousNYearsReturns true if the given date falls within the previous N calendar years relative to the current year.
Date.IsInCurrentYearReturns true if the given date falls within the current calendar year.
Date.IsInNextYearReturns true if the given date falls within the next calendar year.
Date.IsInNextNYearsReturns true if the given date falls within the next N calendar years relative to the current year.
Date.IsInYearToDateReturns true if the given date falls between January 1 of the current year and today, inclusive.
Date.MonthNameReturns the name of the month component of a date value as text.
Date.DayOfWeekNameReturns the name of the weekday for the given date as text.
Date.FromTextCreates a date value from a text representation using an optional culture.
Date.FromReturns a date value from the given value, converting numbers, text, or datetime values as needed.
Date.ToTextReturns a text representation of the given date value, with optional format and culture.
Date.ToRecordReturns a record with the year, month, and day components of the given date.
Date.YearReturns the year component of a date value as a number.
Date.MonthReturns the month component of a date value as a number (1 through 12).
Date.DayReturns the day component of a date value as a number.
Date.AddDaysReturns a new date by adding the specified number of days to the given date.
Date.AddWeeksReturns a new date by adding the specified number of weeks to the given date.
Date.AddMonthsReturns a new date by adding the specified number of months to the given date.
Date.AddQuartersReturns a new date by adding the specified number of quarters to the given date.
Date.AddYearsReturns a new date by adding the specified number of years to the given date.
Date.IsLeapYearReturns true if the year of the given date is a leap year.
Date.StartOfYearReturns the first day of the year for the given date (January 1).
Date.StartOfQuarterReturns the first day of the quarter that contains the given date.
Date.StartOfMonthReturns the first day of the month for the given date.
Date.StartOfWeekReturns the first day of the week that contains the given date, with optional first-day-of-week setting.
Date.StartOfDayReturns the start of the day for the given date value.
Date.EndOfYearReturns the last day of the year for the given date (December 31).
Date.EndOfQuarterReturns the last day of the quarter that contains the given date.
Date.EndOfMonthReturns the last day of the month for the given date.
Date.EndOfWeekReturns the last day of the week that contains the given date, with optional first-day-of-week setting.
Date.EndOfDayReturns the end of the day for the given date value.
Date.DayOfWeekReturns the day of the week for the given date as a number (0 through 6), with optional first-day-of-week setting.
Date.DayOfYearReturns the day of the year for the given date as a number (1 through 366).
Date.DaysInMonthReturns the number of days in the month for the given date.
Date.QuarterOfYearReturns the quarter of the year for the given date as a number (1 through 4).
Date.WeekOfMonthReturns the week number within the month for the given date.
Date.WeekOfYearReturns the week number within the year for the given date.
Date.TypeReturns the type value for the date type.

DateTime functions

Power Query Function NameDescription
DateTime.IsInPreviousSecondReturns true if the given datetime falls within the previous second relative to now.
DateTime.IsInPreviousNSecondsReturns true if the given datetime falls within the previous N seconds relative to now.
DateTime.IsInNextSecondReturns true if the given datetime falls within the next second relative to now.
DateTime.IsInNextNSecondsReturns true if the given datetime falls within the next N seconds relative to now.
DateTime.IsInCurrentSecondReturns true if the given datetime falls within the current second.
DateTime.IsInPreviousMinuteReturns true if the given datetime falls within the previous minute relative to now.
DateTime.IsInPreviousNMinutesReturns true if the given datetime falls within the previous N minutes relative to now.
DateTime.IsInNextMinuteReturns true if the given datetime falls within the next minute relative to now.
DateTime.IsInNextNMinutesReturns true if the given datetime falls within the next N minutes relative to now.
DateTime.IsInCurrentMinuteReturns true if the given datetime falls within the current minute.
DateTime.IsInPreviousHourReturns true if the given datetime falls within the previous hour relative to now.
DateTime.IsInPreviousNHoursReturns true if the given datetime falls within the previous N hours relative to now.
DateTime.IsInNextHourReturns true if the given datetime falls within the next hour relative to now.
DateTime.IsInNextNHoursReturns true if the given datetime falls within the next N hours relative to now.
DateTime.IsInCurrentHourReturns true if the given datetime falls within the current hour.
DateTime.FromTextCreates a datetime value from a text representation using an optional culture.
DateTime.FromReturns a datetime value from the given value, converting dates, times, numbers, or text as needed.
DateTime.ToTextReturns a text representation of the given datetime value, with optional format and culture.
DateTime.ToRecordReturns a record with the year, month, day, hour, minute, and second components of the given datetime.
DateTime.DateReturns the date component of a datetime value.
DateTime.TimeReturns the time component of a datetime value.
DateTime.AddZoneAdds timezone offset information to a datetime value, producing a datetimezone value.
DateTime.LocalNowReturns the current local date and time as a datetime value.
DateTime.FixedLocalNowReturns a fixed current local datetime that stays constant throughout the evaluation of a query.
DateTime.FromFileTimeReturns a datetime from a Windows file time (a 64-bit integer counting 100-nanosecond intervals since January 1, 1601).
DateTime.TypeReturns the type value for the datetime type.

DateTimeZone functions

Power Query Function NameDescription
DateTimeZone.FromTextCreates a datetimezone value from a text representation using an optional culture.
DateTimeZone.FromReturns a datetimezone value from the given value, converting dates, datetimes, numbers, or text as needed.
DateTimeZone.ToTextReturns a text representation of the given datetimezone value, with optional format and culture.
DateTimeZone.ToRecordReturns a record with the year, month, day, hour, minute, second, zone hours, and zone minutes components of the given datetimezone.
DateTimeZone.ZoneHoursReturns the timezone offset hours component of a datetimezone value.
DateTimeZone.ZoneMinutesReturns the timezone offset minutes component of a datetimezone value.
DateTimeZone.LocalNowReturns the current local date, time, and timezone offset as a datetimezone value.
DateTimeZone.UtcNowReturns the current date, time, and UTC offset as a datetimezone value.
DateTimeZone.FixedLocalNowReturns a fixed current local datetimezone that stays constant throughout the evaluation of a query.
DateTimeZone.FixedUtcNowReturns a fixed current UTC datetimezone that stays constant throughout the evaluation of a query.
DateTimeZone.ToLocalConverts a datetimezone value to the local timezone.
DateTimeZone.ToUtcConverts a datetimezone value to UTC.
DateTimeZone.SwitchZoneChanges the timezone offset of a datetimezone value to the specified hours and optional minutes offset.
DateTimeZone.RemoveZoneRemoves the timezone offset from a datetimezone value, returning a datetime.
DateTimeZone.FromFileTimeReturns a datetimezone from a Windows file time (a 64-bit integer counting 100-nanosecond intervals since January 1, 1601).
DateTimeZone.TypeReturns the type value for the datetimezone type.

Time functions

Power Query Function NameDescription
Time.FromTextCreates a time value from a text representation using an optional culture.
Time.FromReturns a time value from the given value, converting datetimes, numbers, or text as needed.
Time.ToTextReturns a text representation of the given time value, with optional format and culture.
Time.ToRecordReturns a record with the hour, minute, and second components of the given time value.
Time.HourReturns the hour component of a time value as a number (0 through 23).
Time.MinuteReturns the minute component of a time value as a number (0 through 59).
Time.SecondReturns the second component of a time value as a number (0 through 59).
Time.StartOfHourReturns the start of the hour (minutes and seconds set to zero) for the given time value.
Time.EndOfHourReturns the last moment of the hour (59 minutes, 59.9999999 seconds) for the given time value.
Time.TypeReturns the type value for the time type.

Duration functions

Power Query Function NameDescription
Duration.TypeReturns the type value for the duration type.
Duration.FromTextCreates a duration value from a text representation in ISO 8601 duration format.
Duration.FromReturns a duration value from the given value, converting numbers or text as needed.
Duration.ToTextReturns a text representation of the given duration value in ISO 8601 format.
Duration.ToRecordReturns a record with the days, hours, minutes, and seconds components of the given duration.
Duration.DaysReturns the days component of a duration value.
Duration.HoursReturns the hours component of a duration value.
Duration.MinutesReturns the minutes component of a duration value.
Duration.SecondsReturns the seconds component of a duration value.
Duration.TotalDaysReturns the total number of days represented by a duration value, including fractional days.
Duration.TotalHoursReturns the total number of hours represented by a duration value, including fractional hours.
Duration.TotalMinutesReturns the total number of minutes represented by a duration value, including fractional minutes.
Duration.TotalSecondsReturns the total number of seconds represented by a duration value, including fractional seconds.

Record functions

Power Query Function NameDescription
Record.TypeReturns the type of a record value.
Record.AddFieldAdds a new field to a record with a given name and value.
Record.FieldReturns the value of a named field from a record.
Record.FieldCountReturns the number of fields in a record.
Record.FieldNamesReturns a list of the field names in a record, in definition order.
Record.FieldOrDefaultReturns the value of a named field from a record, or a default value if the field does not exist.
Record.FieldValuesReturns a list of the field values in a record, in definition order.
Record.FromTableConverts a two-column table of name-value pairs into a record.
Record.HasFieldsReturns true if the record contains all of the specified field names.
Record.RemoveFieldsReturns a new record with one or more named fields removed.
Record.RenameFieldsReturns a new record with fields renamed according to a list of old-name/new-name pairs.
Record.ReorderFieldsReturns a new record with fields reordered to match a given list of field names.
Record.SelectFieldsReturns a new record containing only the specified fields.
Record.ToTableConverts a record into a two-column table with Name and Value columns.
Record.TransformFieldsReturns a new record with field values transformed by applying functions specified in a transformation list.
Record.CombineMerges a list of records into a single record; later records take precedence on duplicate field names.
Record.FromListCreates a record from a list of values and a matching list of field names.
Record.ToListReturns a list of the field values in a record, in definition order.

Value functions

Power Query Function NameDescription
Value.ResourceExpressionReturns the resource expression associated with a value, used to identify the data source.
Value.EqualsReturns true if two values are equal, with optional comparison culture or criteria.
Value.NullableEqualsCompares two nullable values for equality, treating null as a valid equal value when both sides are null.
Value.CompareCompares two values and returns -1, 0, or 1 to indicate less than, equal, or greater than.
Value.TypeReturns the type of a value.
Value.ReplaceTypeReturns a copy of a value with its type replaced by the specified type.
Value.RemoveMetadataReturns a copy of a value with all metadata removed.
Value.ReplaceMetadataReturns a copy of a value with its metadata replaced by the provided metadata record.
Value.MetadataReturns the metadata record associated with a value, or an empty record if there is none.
Value.FromTextParses a text value into a typed value based on the specified type.
Value.AddReturns the result of adding two values, equivalent to the + operator.
Value.SubtractReturns the result of subtracting one value from another, equivalent to the – operator.
Value.MultiplyReturns the result of multiplying two values, equivalent to the * operator.
Value.DivideReturns the result of dividing one value by another, equivalent to the / operator.
Value.AsAsserts that a value is compatible with a specified type and returns it, or raises an error if not.
Value.IsReturns true if a value is compatible with the specified type.
Value.NativeQueryExecutes a native query against a data source, passing it through as-is to the underlying provider.
Value.ExpressionReturns an abstract syntax tree expression that represents a value.
Value.OptimizeReturns an optimized version of a value where any pending evaluations are resolved.
Value.AlternatesReturns a list of alternate representations or sources for a value.
Value.VersionsReturns a record of versioned variants of a value, keyed by version identifier.
Value.VersionIdentityReturns the version identity of a value, identifying which version it represents.
Value.ViewFunctionReturns a named function from a view value created with Table.View or a similar mechanism.
Value.ViewErrorCreates an error record used to signal a failure within a view handler.
Value.FirewallWraps a value with firewall partition semantics to enforce data-source isolation rules.
Value.LineageReturns lineage metadata describing the origin of a value within the query engine.
Value.TraitsReturns the traits record associated with a value, describing behavioral hints for the engine.

Type functions

Power Query Function NameDescription
Type.TableSchemaReturns a table describing the columns, types, and constraints of a table type.
Type.TypeRepresents the type data type in Power Query M.
Type.ForRecordConstructs a record type from a record describing its fields and their types.
Type.ForFunctionConstructs a function type from a record describing its parameter types and return type.
Type.NonNullableReturns a version of the given type that does not allow null values.
Type.IsNullableReturns true if the given type allows null values, false otherwise.
Type.ListItemReturns the item type of a list type.
Type.OpenRecordReturns an open record type, which allows fields beyond those explicitly defined.
Type.ClosedRecordReturns a closed version of a record type, which disallows extra fields.
Type.IsOpenRecordReturns true if the given type is an open record type, false otherwise.
Type.RecordFieldsReturns a record describing the fields of a record type, including each field’s type and optionality.
Type.FunctionParametersReturns a record describing the parameters of a function type.
Type.FunctionRequiredParametersReturns the number of required parameters for a function type.
Type.FunctionReturnReturns the return type of a function type.
Type.IsReturns true if a value of the first type is always compatible with the second type.
Type.UnionReturns the union of a list of types.
Type.FacetsReturns the facets (constraints such as precision or scale) of a type.
Type.ReplaceFacetsReturns a new type with the facets replaced by those in the provided record.
Type.TableColumnReturns the type of a specified column in a table type.
Type.TableRowReturns the row type of a table type.
Type.TableKeysReturns the keys defined on a table type.
Type.AddTableKeyReturns a new table type with an additional key added.
Type.ReplaceTableKeysReturns a new table type with the keys replaced by the provided list.
Type.TablePartitionKeyReturns the partition key of a table type.
Type.ReplaceTablePartitionKeyReturns a new table type with the partition key replaced.

Type and conversion functions

Power Query Function NameDescription
Any.TypeRepresents the any data type, which accepts all values.
None.TypeRepresents the none data type, a type that no value belongs to.
Byte.TypeRepresents the 8-bit unsigned integer data type.
Null.TypeRepresents the null data type.
Int8.TypeRepresents the 8-bit signed integer data type.
Int16.TypeRepresents the 16-bit signed integer data type.
Int32.TypeRepresents the 32-bit signed integer data type.
Int64.TypeRepresents the 64-bit signed integer data type.
Single.TypeRepresents the single-precision floating-point data type.
Double.TypeRepresents the double-precision floating-point data type.
Decimal.TypeRepresents the decimal number data type.
Currency.TypeRepresents the currency (fixed decimal) data type.
Percentage.TypeRepresents the percentage data type.
Guid.TypeRepresents the GUID data type.
Password.TypeRepresents the password (masked text) data type.
Certificate.TypeRepresents the certificate data type.
Byte.FromConverts a value to an 8-bit unsigned integer.
Int8.FromConverts a value to an 8-bit signed integer.
Int16.FromConverts a value to a 16-bit signed integer.
Int32.FromConverts a value to a 32-bit signed integer.
Int64.FromConverts a value to a 64-bit signed integer.
Single.FromConverts a value to a single-precision floating-point number.
Double.FromConverts a value to a double-precision floating-point number.
Decimal.FromConverts a value to a decimal number.
Currency.FromConverts a value to a currency (fixed decimal) value.
Percentage.FromConverts a value to a percentage value.
Guid.FromConverts a value to a GUID.

Logical functions

Power Query Function NameDescription
Logical.TypeRepresents the logical (true/false) data type.
Logical.FromTextConverts a text string (“true” or “false”) to a logical value.
Logical.FromConverts a value to a logical (true/false) value.
Logical.ToTextConverts a logical value to its text representation (“true” or “false”).

Binary functions

Power Query Function NameDescription
Binary.ViewCreates a custom view of a binary value with user-defined handlers for operations like read and length.
Binary.ViewFunctionReturns a function from a binary view that was created with Binary.View.
Binary.ViewErrorCreates an error record used to signal a failure within a binary view handler.
Binary.ApproximateLengthReturns the approximate length of a binary value, or -1 if the length is unknown.
Binary.TypeReturns the type of a binary value.
Binary.ToTextEncodes a binary value as a Base64 text string.
Binary.FromReturns a binary value from a given value, converting it if necessary.
Binary.FromTextDecodes a Base64-encoded text string into a binary value.
Binary.ToListConverts a binary value into a list of byte values.
Binary.FromListConverts a list of byte values into a binary value.
Binary.CombineConcatenates a list of binary values into a single binary value.
Binary.LengthReturns the number of bytes in a binary value.
Binary.BufferBuffers a binary value in memory, reading it once so subsequent accesses are fast.
Binary.CompressCompresses a binary value using the specified compression algorithm.
Binary.DecompressDecompresses a binary value using the specified compression algorithm.
Binary.InferContentTypeInspects a binary value and returns a record with an inferred content-type field.
Binary.RangeReturns a subset of a binary value starting at a given byte offset, with an optional length.
Binary.SplitSplits a binary value into a list of binary values at each occurrence of a separator.
BinaryFormat.SignedInteger16A binary format that reads a signed 16-bit integer.
BinaryFormat.SignedInteger32A binary format that reads a signed 32-bit integer.
BinaryFormat.SignedInteger64A binary format that reads a signed 64-bit integer.
BinaryFormat.UnsignedInteger16A binary format that reads an unsigned 16-bit integer.
BinaryFormat.UnsignedInteger32A binary format that reads an unsigned 32-bit integer.
BinaryFormat.UnsignedInteger64A binary format that reads an unsigned 64-bit integer.
BinaryFormat.SingleA binary format that reads a 32-bit IEEE single-precision floating-point number.
BinaryFormat.DoubleA binary format that reads a 64-bit IEEE double-precision floating-point number.
BinaryFormat.DecimalA binary format that reads a 96-bit .NET decimal number.
BinaryFormat.7BitEncodedUnsignedIntegerA binary format that reads a variable-length 7-bit encoded unsigned integer.
BinaryFormat.7BitEncodedSignedIntegerA binary format that reads a variable-length 7-bit encoded signed integer.
BinaryFormat.ByteA binary format that reads a single unsigned byte.
BinaryFormat.BinaryA binary format that reads a length-prefixed binary value.
BinaryFormat.RecordA binary format that reads a record by applying a separate binary format to each named field.
BinaryFormat.ListA binary format that reads a sequence of items using a given item format and returns them as a list.
BinaryFormat.TextA binary format that reads a length-prefixed text value.
BinaryFormat.TransformCreates a binary format that transforms the value read by another binary format using a provided function.
BinaryFormat.LengthCreates a binary format that reads a fixed number of bytes and applies another format to the result.
BinaryFormat.ChoiceCreates a binary format that chooses which format to use next based on a value already read.
BinaryFormat.ByteOrderCreates a binary format with a specific byte order (endianness) applied to another format.
BinaryFormat.GroupReads a group of items from binary data using a key format, item format, and optional parameters.
BinaryFormat.NullA binary format that reads zero bytes and returns null.

Splitter functions

Power Query Function NameDescription
Splitter.SplitByNothingReturns a function that does not split the input text, returning it as a single-element list.
Splitter.SplitTextByCharacterTransitionReturns a function that splits text at boundaries where the character category changes, such as from letters to digits.
Splitter.SplitTextByDelimiterReturns a function that splits text by a specified delimiter, with control over which occurrence to split on.
Splitter.SplitTextByRangesReturns a function that splits text into substrings according to a list of offset-and-length pairs.
Splitter.SplitTextByWhitespaceReturns a function that splits text on any whitespace characters.
Splitter.SplitTextByEachDelimiterReturns a function that splits text by each delimiter in a list, one at a time in sequence.
Splitter.SplitTextByAnyDelimiterReturns a function that splits text at any occurrence of any delimiter in a given list.
Splitter.SplitTextByPositionsReturns a function that splits text at specific character positions.
Splitter.SplitTextByRepeatedLengthsReturns a function that splits text into substrings of a fixed repeated length.
Splitter.SplitTextByLengthsReturns a function that splits text into substrings according to a list of specified lengths.

Combiner functions

Power Query Function NameDescription
Combiner.CombineTextByDelimiterReturns a function that combines a list of text values into a single string using a specified delimiter.
Combiner.CombineTextByEachDelimiterReturns a function that combines text values by inserting each delimiter in a list between successive items.
Combiner.CombineTextByRangesReturns a function that combines text by placing each value into a fixed-width field defined by offset-and-length pairs.
Combiner.CombineTextByPositionsReturns a function that combines text by placing each value starting at specified character positions.
Combiner.CombineTextByLengthsReturns a function that combines text by padding or truncating each value to a specified length.

Comparer functions

Power Query Function NameDescription
Comparer.FromCultureReturns a comparer function that compares text values according to the rules of a specified culture and optional case sensitivity.
Comparer.OrdinalReturns a comparer function that compares text values using strict ordinal (byte-by-byte) comparison.
Comparer.OrdinalIgnoreCaseReturns a comparer function that performs ordinal text comparison while ignoring differences in letter case.
Comparer.EqualsReturns a comparer function that tests two values for equality using a specified base comparer.

Replacer functions

Power Query Function NameDescription
Replacer.ReplaceValueA replacer function that replaces an exact value match with a new value, used in operations like Table.ReplaceValue.
Replacer.ReplaceTextA replacer function that replaces occurrences of a text substring with a new text value, used in operations like Table.ReplaceValue.

Expression functions

Power Query Function NameDescription
Expression.ConstantReturns an M abstract syntax tree (AST) node representing a constant value.
Expression.EvaluateEvaluates a text string as an M expression and returns the result, optionally within a given environment.
Expression.IdentifierReturns an M AST node representing an identifier with the given name.
RowExpression.FromReturns the AST of the function body for a single-argument function used in a row expression context.
RowExpression.RowReturns an AST node representing the current row in a row expression context.
RowExpression.ColumnReturns an AST node representing access to a named column in the current row within a row expression.
ItemExpression.FromReturns the AST of the function body for a single-argument function used in an item expression context.
ItemExpression.ItemReturns an AST node representing the current item in an item expression context.

Function values

Power Query Function NameDescription
Function.TypeReturns the M type that represents a given function value’s signature.
Function.FromCreates a function value from a given function type and an implementation function.
Function.InvokeCalls a function with a list of arguments and returns its result.
Function.InvokeAfterCalls a function after a specified action completes, useful for sequencing side effects.
Function.IsDataSourceReturns true if the given function value is marked as a data source connector.
Function.ScalarVectorWraps a scalar function so it can be called with a vector (list) of argument lists, returning a list of results.
Function.InvokeWithErrorContextInvokes a function and attaches additional error context information if the call raises an error.

Lines functions

Power Query Function NameDescription
Lines.FromTextSplits a text value into a list of lines, breaking on line-ending characters.
Lines.FromBinaryDecodes a binary value and splits it into a list of text lines using the specified encoding.
Lines.ToTextJoins a list of text lines into a single text value, inserting line separators between them.
Lines.ToBinaryJoins a list of text lines into a binary value using the specified encoding and line separator.

Uri functions

Power Query Function NameDescription
Uri.TypeReturns the M abstract type that represents a URI value.
Uri.CombineCombines a base URI and a relative URI string into a single resolved URI.
Uri.PartsParses a URI into a record with fields for scheme, host, path, query, and fragment.
Uri.BuildQueryStringEncodes a record or list of name-value pairs into a URL query string.
Uri.EscapeDataStringPercent-encodes a text value so it is safe to use as a URI data component.

Error handling

Power Query Function NameDescription
Error.RecordCreates an error record with the given reason, message, and optional detail fields.
Diagnostics.TraceEmits a trace message at the specified level and returns a value, useful for lightweight logging during query development.
Diagnostics.ActivityIdReturns a unique identifier for the current query activity, used to correlate diagnostic traces.
Diagnostics.CorrelationIdReturns a correlation identifier that links related activities across a distributed query execution.
Action.WithErrorContextWraps an action so that any error it raises is annotated with additional context information.

Cube functions

Power Query Function NameDescription
Cube.DisplayFoldersReturns a table describing the display folder hierarchy for dimensions and measures in a cube.
Cube.DimensionsReturns a table listing all dimensions available in a cube or multidimensional data source.
Cube.MeasuresReturns a table listing all measures available in a cube.
Cube.ReplaceDimensionsReturns a modified cube query with the specified set of dimensions replaced.
Cube.TransformApplies a series of cube operations to a cube query and returns the transformed result.
Cube.AddMeasureColumnAdds a column to a table by evaluating a cube measure for each row.
Cube.AddAndExpandDimensionColumnAdds a dimension to a cube query and expands it into separate columns in the result table.
Cube.CollapseAndRemoveColumnsCollapses expanded dimension columns back into a cube dimension and removes those columns from the table.
Cube.AttributeMemberIdReturns the unique member ID for a given attribute value within a cube dimension.
Cube.AttributeMemberPropertyReturns the value of a named property for an attribute member in a cube dimension.
Cube.PropertyKeyReturns the property key record used to look up a named dimension attribute property.
Cube.MeasurePropertyReturns the value of a named property for a cube measure.
Cube.PropertiesReturns a record of standard and custom properties for a cube dimension attribute.
Cube.MeasurePropertiesReturns a record of standard and custom properties for a cube measure.
Cube.ParametersReturns a table of parameters defined for the current cube data source connection.
Cube.ApplyParameterApplies a parameter value to a cube query and returns the updated query.

Data and content functions

Power Query Function NameDescription
Graph.NodesConstructs a table of graph nodes from a seed table and an expansion function, traversing linked records.
Json.DocumentParses a JSON binary or text value and returns the corresponding M value (record, list, or scalar).
Json.FromValueSerializes an M value to its JSON text representation.
Csv.DocumentParses a CSV binary or text value into a table, with options for delimiter, encoding, and column types.
Embedded.ValueRetrieves a value that was embedded at query-fold time and returns it as an M value.
RData.FromBinaryParses an R .RData or .rds binary value and returns its contents as an M value.
Xml.DocumentParses an XML binary or text value and returns a record representing the document.
Xml.TablesParses an XML binary or text value and returns a table structure inferred from the element hierarchy.
Html.TableExtracts data from an HTML table element using CSS column selectors and returns the result as an M table.
Pdf.TablesExtracts tables from a PDF binary value and returns them as a list of table values.

Accessing data functions

Power Query Function NameDescription
Resource.AccessReturns a resource from the given URI with optional access options, used internally by connectors to retrieve secured data sources.
CommonDataService.DatabaseConnects to a Microsoft Common Data Service (Dataverse) environment and returns a table of available entities.
Kusto.ContentsConnects to an Azure Data Explorer (Kusto) cluster and returns the contents of a specified database.
Kusto.DatabasesReturns a table of databases available on the given Azure Data Explorer (Kusto) cluster.
AzureDataExplorer.ContentsConnects to an Azure Data Explorer cluster and returns the contents of a specified database.
AzureDataExplorer.DatabasesReturns a table of databases available on the given Azure Data Explorer cluster.
AzureDataExplorer.KqlDatabaseConnects to a KQL database within an Azure Data Explorer cluster and returns its tables and functions.
PowerPlatform.DataflowsReturns a table of dataflows from the specified Microsoft Power Platform environment.
DataLake.ContentsConnects to an Azure Data Lake Storage account and returns a table of files and folders in the specified path.
DataLake.FilesReturns a table of files from the given Azure Data Lake Storage URL, including content and metadata columns.
Fabric.WarehouseConnects to a Microsoft Fabric warehouse and returns a table of available schemas and tables.
Lakehouse.ContentsConnects to a Microsoft Fabric Lakehouse and returns a table of available tables and files.
SqlExpression.SchemaFromExtracts a schema record from a SQL expression, describing the column names and types the expression would return.
DirectQueryCapabilities.FromReturns a record describing the DirectQuery capabilities supported by a given data source.
Excel.WorkbookReturns a table of sheets, named ranges, and tables found in an Excel workbook binary.
Excel.ShapeTableReturns a table of shapes contained in an Excel workbook binary.
Module.VersionsReturns a table of installed module names and their version numbers.
SqlExpression.ToExpressionConverts a Power Query expression into an equivalent SQL expression string.
Variable.ValueReturns the value of a named variable from the current evaluation context.
Variable.ValueOrDefaultReturns the value of a named variable from the current evaluation context, or a default value if the variable is not found.
Access.DatabaseConnects to a Microsoft Access database file and returns a table of available tables and queries.
ActiveDirectory.DomainsReturns a table of domains in the specified Active Directory forest.
AdobeAnalytics.CubesConnects to Adobe Analytics and returns a table of available report suites.
AdoDotNet.QueryExecutes a query against a .NET ADO data source using the specified provider and connection string, and returns the results as a table.
AdoDotNet.DataSourceConnects to a .NET ADO data source using the given provider and connection string, and returns a table of available tables.
AnalysisServices.DatabasesReturns a table of databases available on the specified SQL Server Analysis Services server.
AnalysisServices.DatabaseConnects to a SQL Server Analysis Services database and returns a table of its cubes and perspectives.
AzureStorage.BlobsConnects to an Azure Blob Storage account and returns a table of containers.
AzureStorage.BlobContentsReturns the binary contents of a single blob from Azure Blob Storage.
AzureStorage.DataLakeConnects to Azure Data Lake Storage Gen2 and returns a table of files and folders at the specified path.
AzureStorage.DataLakeContentsReturns the binary contents of a single file from Azure Data Lake Storage Gen2.
AzureStorage.TablesConnects to an Azure Table Storage account and returns a table of available storage tables.
Informix.DatabaseConnects to an IBM Informix database and returns a table of available tables.
DB2.DatabaseConnects to an IBM Db2 database and returns a table of available tables and views.
Excel.CurrentWorkbookReturns the tables, named ranges, and connections from the current Excel workbook.
Exchange.ContentsConnects to a Microsoft Exchange server and returns a table of mailbox folders and their contents.
File.ContentsReturns the contents of the file at the given path as a binary value.
Folder.ContentsReturns a table of files and subfolders found in the specified folder path, including file metadata and content.
Folder.FilesReturns a table of all files in the specified folder and its subfolders, including file metadata and binary content.
Hdfs.ContentsConnects to a Hadoop Distributed File System (HDFS) path and returns a table of files and folders.
Hdfs.FilesReturns a table of files from the specified HDFS path, including file metadata and binary content.
HdInsight.FilesReturns a table of files from the specified Azure HDInsight cluster storage path.
HdInsight.ContentsConnects to an Azure HDInsight cluster and returns a table of available containers and files.
HdInsight.ContainersReturns a table of storage containers associated with the given Azure HDInsight cluster.
Web.PageDownloads a web page from the given URL and returns its HTML content parsed into a table of elements.
MySQL.DatabaseConnects to a MySQL database and returns a table of available tables and views.
OData.FeedConnects to an OData service and returns a table of available entity sets from the service’s feed.
Odbc.QueryExecutes a SQL query against an ODBC data source using the given connection string, and returns the results as a table.
Odbc.DataSourceConnects to an ODBC data source using the given connection string and returns a table of available tables.
Odbc.InferOptionsReturns a record of inferred ODBC capability options for the given connection string.
OleDb.QueryExecutes a SQL query against an OLE DB data source using the given connection string, and returns the results as a table.
OleDb.DataSourceConnects to an OLE DB data source using the given connection string and returns a table of available tables.
Oracle.DatabaseConnects to an Oracle database and returns a table of available tables and views.
PostgreSQL.DatabaseConnects to a PostgreSQL database and returns a table of available tables and views.
Salesforce.DataConnects to Salesforce and returns a table of available Salesforce objects.
Salesforce.ReportsConnects to Salesforce and returns a table of available Salesforce reports.
SapBusinessWarehouse.CubesConnects to an SAP Business Warehouse server and returns a table of available InfoCubes and queries.
SapHana.DatabaseConnects to an SAP HANA database and returns a table of available schemas and views.
SharePoint.ContentsConnects to a SharePoint site and returns a table of available lists and document libraries.
SharePoint.FilesReturns a table of files from the given SharePoint site, including file metadata and binary content.
SharePoint.TablesConnects to a SharePoint site and returns a table of SharePoint list items.
Geography.FromWellKnownTextConverts a Well-Known Text (WKT) string into a geography value representing a spatial object on the Earth’s surface.
Geography.ToWellKnownTextConverts a geography value into its Well-Known Text (WKT) string representation.
GeographyPoint.FromCreates a geography point value from the given longitude and latitude coordinates.
Geometry.FromWellKnownTextConverts a Well-Known Text (WKT) string into a planar geometry value.
Geometry.ToWellKnownTextConverts a planar geometry value into its Well-Known Text (WKT) string representation.
GeometryPoint.FromCreates a planar geometry point value from the given X and Y coordinates.
Sql.DatabaseConnects to a SQL Server database and returns a table of available tables and views.
Sql.DatabasesReturns a table of databases available on the given SQL Server instance.
Sybase.DatabaseConnects to a Sybase database and returns a table of available tables and views.
Teradata.DatabaseConnects to a Teradata database and returns a table of available tables and views.
Web.ContentsDownloads content from the given URL and returns it as a binary value.
Web.HeadersReturns the HTTP response headers for the given URL as a record.
Soda.FeedConnects to a Socrata Open Data API (SODA) endpoint and returns a table of available datasets.
WebAction.RequestCreates an action that, when run, returns the HTTP response for the given URL and method as a binary value.
Web.BrowserContentsReturns the HTML source of the given URL after rendering it in a browser, including dynamically loaded content.

Enumerations and constant values

Power Query Function NameDescription
RelativePosition.TypeThe enumeration type for relative positions, used by functions that locate items from the start or end of a sequence.
RelativePosition.FromStartA RelativePosition value indicating the position is measured from the start of the sequence.
RelativePosition.FromEndA RelativePosition value indicating the position is measured from the end of the sequence.
TextEncoding.TypeThe enumeration type for text encodings, used by functions that read or write text with a specific character set.
TextEncoding.Utf8A TextEncoding value specifying UTF-8 encoding.
TextEncoding.Utf16A TextEncoding value specifying UTF-16 encoding.
TextEncoding.AsciiA TextEncoding value specifying ASCII encoding.
TextEncoding.UnicodeA TextEncoding value specifying Unicode (UTF-16 LE) encoding.
TextEncoding.BigEndianUnicodeA TextEncoding value specifying big-endian UTF-16 encoding.
TextEncoding.WindowsA TextEncoding value specifying Windows default (Windows-1252) encoding.
Culture.CurrentReturns the current culture of the M environment as a text value, used in locale-sensitive formatting and parsing functions.
Day.TypeThe enumeration type for days of the week, used by functions that work with day-of-week values.
Day.SundayA Day value representing Sunday.
Day.MondayA Day value representing Monday.
Day.TuesdayA Day value representing Tuesday.
Day.WednesdayA Day value representing Wednesday.
Day.ThursdayA Day value representing Thursday.
Day.FridayA Day value representing Friday.
Day.SaturdayA Day value representing Saturday.
JoinKind.TypeThe enumeration type that specifies the kind of join used by table join functions such as Table.Join and Table.NestedJoin.
JoinKind.InnerA JoinKind value specifying an inner join, which keeps only rows with matching keys in both tables.
JoinKind.LeftOuterA JoinKind value specifying a left outer join, which keeps all rows from the left table and matching rows from the right.
JoinKind.RightOuterA JoinKind value specifying a right outer join, which keeps all rows from the right table and matching rows from the left.
JoinKind.FullOuterA JoinKind value specifying a full outer join, which keeps all rows from both tables regardless of whether they match.
JoinKind.LeftAntiA JoinKind value specifying a left anti join, which keeps only rows from the left table that have no matching key in the right table.
JoinKind.RightAntiA JoinKind value specifying a right anti join, which keeps only rows from the right table that have no matching key in the left table.
JoinKind.LeftSemiA JoinKind value specifying a left semi join, which keeps only rows from the left table that have at least one matching key in the right table.
JoinKind.RightSemiA JoinKind value specifying a right semi join, which keeps only rows from the right table that have at least one matching key in the left table.
MissingField.TypeThe enumeration type that controls how functions handle missing fields in a record or table column.
MissingField.ErrorA MissingField value that causes an error to be raised when a referenced field or column does not exist.
MissingField.IgnoreA MissingField value that silently ignores missing fields, as if they were not specified.
MissingField.UseNullA MissingField value that returns null for any field or column that does not exist.
GroupKind.TypeThe enumeration type that specifies how grouping is applied in Table.Group, either globally across the whole table or locally on consecutive rows.
GroupKind.GlobalA GroupKind value that groups all rows with the same key together, regardless of their order in the table.
GroupKind.LocalA GroupKind value that groups only consecutive rows with the same key, producing a new group whenever the key changes.
RoundingMode.TypeThe enumeration type for rounding modes, used by Number.Round and related functions to control how halfway values are rounded.
RoundingMode.UpA RoundingMode value that rounds toward positive infinity.
RoundingMode.DownA RoundingMode value that rounds toward negative infinity.
RoundingMode.AwayFromZeroA RoundingMode value that rounds away from zero, so 0.5 becomes 1 and -0.5 becomes -1.
RoundingMode.TowardZeroA RoundingMode value that rounds toward zero, truncating the fractional part.
RoundingMode.ToEvenA RoundingMode value that rounds to the nearest even number when the value is exactly halfway, also known as banker’s rounding.
Precision.TypeThe enumeration type that specifies numeric precision for arithmetic operations, choosing between double and decimal arithmetic.
Precision.DoubleA Precision value specifying IEEE 754 double-precision floating-point arithmetic.
Precision.DecimalA Precision value specifying exact decimal arithmetic, which avoids floating-point rounding errors.
BinaryEncoding.TypeThe enumeration type for binary-to-text encoding schemes, used by functions like Binary.ToText and Binary.FromText.
BinaryEncoding.HexA BinaryEncoding value specifying hexadecimal encoding.
BinaryEncoding.Base64A BinaryEncoding value specifying Base64 encoding.
Compression.TypeThe enumeration type for compression algorithms, used by functions that read or write compressed binary data.
Compression.NoneA Compression value specifying no compression.
Compression.GZipA Compression value specifying GZip compression.
Compression.DeflateA Compression value specifying Deflate compression.
Compression.SnappyA Compression value specifying Snappy compression.
Compression.BrotliA Compression value specifying Brotli compression.
Compression.LZ4A Compression value specifying LZ4 compression.
Compression.ZstandardA Compression value specifying Zstandard (zstd) compression.
Order.TypeThe enumeration type for sort order, used by table and list sorting functions.
Order.AscendingAn Order value specifying ascending sort order, from smallest to largest.
Order.DescendingAn Order value specifying descending sort order, from largest to smallest.
Occurrence.TypeThe enumeration type that specifies which occurrence of a match to return or how many times a pattern may appear, used by text and list search functions.
Occurrence.AllAn Occurrence value indicating that all occurrences of the pattern should be returned.
Occurrence.FirstAn Occurrence value indicating that only the first occurrence of the pattern should be returned.
Occurrence.LastAn Occurrence value indicating that only the last occurrence of the pattern should be returned.
PercentileMode.TypeThe enumeration type for percentile calculation methods, used by List.Percentile to match Excel or SQL behavior.
PercentileMode.ExcelIncA PercentileMode value using Excel’s inclusive interpolation method, equivalent to PERCENTILE.INC.
PercentileMode.ExcelExcA PercentileMode value using Excel’s exclusive interpolation method, equivalent to PERCENTILE.EXC.
PercentileMode.SqlDiscA PercentileMode value using the SQL discrete percentile method, which returns an actual value from the list.
PercentileMode.SqlContA PercentileMode value using the SQL continuous percentile method, which interpolates between values.
TimeZone.CurrentReturns the current time zone offset of the M environment as a duration value, used when converting between local and UTC times.
BufferMode.TypeThe enumeration type that controls when data is buffered into memory for Binary.Buffer and Table.Buffer.
BufferMode.EagerA BufferMode value that loads all data into memory immediately when buffering is requested.
BufferMode.DelayedA BufferMode value that defers loading data into memory until it is first accessed.
Progress.DataSourceProgressA progress constant used to signal data source query progress during evaluation, surfaced in the Power Query editor’s progress indicator.
AccessControlEntry.TypeThe enumeration type for access control entry fields, used with row-level security and data access control in Power Query.
AccessControlEntry.ConditionContextTypeAn AccessControlEntry field key identifying the context type associated with an access control condition.
AccessControlEntry.ConditionToIdentitiesAn AccessControlEntry field key identifying the function that maps an access control condition to a set of identities.
AccessControlKind.TypeThe enumeration type that specifies whether an access control entry grants or denies access.
AccessControlKind.AllowAn AccessControlKind value indicating the entry grants access.
AccessControlKind.DenyAn AccessControlKind value indicating the entry denies access.
IdentityProvider.TypeThe enumeration type for identity provider configurations used in data access control.
IdentityProvider.DefaultAn IdentityProvider value representing the default identity provider for the current environment.
Identity.TypeThe enumeration type for identity record fields used in access control.
Identity.FromAn Identity field key identifying the source of an identity claim.
Identity.IsMemberOfAn Identity field key pointing to a function that checks whether the identity belongs to a given group.
ByteOrder.TypeThe enumeration type for byte order (endianness), used by BinaryFormat functions that read multi-byte numeric values.
ByteOrder.LittleEndianA ByteOrder value specifying little-endian byte order, where the least significant byte comes first.
ByteOrder.BigEndianA ByteOrder value specifying big-endian byte order, where the most significant byte comes first.
Occurrence.OptionalAn Occurrence value used in binary format patterns indicating the item may appear zero or one time.
Occurrence.RequiredAn Occurrence value used in binary format patterns indicating the item must appear exactly once.
Occurrence.RepeatingAn Occurrence value used in binary format patterns indicating the item may appear zero or more times.
BinaryOccurrence.TypeThe enumeration type for occurrence constraints in binary format field definitions.
BinaryOccurrence.OptionalA BinaryOccurrence value indicating a binary field may be absent.
BinaryOccurrence.RequiredA BinaryOccurrence value indicating a binary field must be present.
BinaryOccurrence.RepeatingA BinaryOccurrence value indicating a binary field may repeat zero or more times.
TraceLevel.TypeThe enumeration type for diagnostic trace levels, used by Diagnostics.Trace to control message verbosity.
TraceLevel.CriticalA TraceLevel value for critical failures that require immediate attention.
TraceLevel.ErrorA TraceLevel value for error conditions that indicate a failure in the current operation.
TraceLevel.WarningA TraceLevel value for warnings about unexpected conditions that did not cause a failure.
TraceLevel.InformationA TraceLevel value for general informational messages about normal operation.
TraceLevel.VerboseA TraceLevel value for detailed diagnostic messages, typically used during development and debugging.
ExtraValues.TypeThe enumeration type that controls how Table.FromList and similar functions handle rows with more values than expected columns.
ExtraValues.ListAn ExtraValues value that collects any extra column values into a list in the last column.
ExtraValues.IgnoreAn ExtraValues value that silently discards any values beyond the expected number of columns.
ExtraValues.ErrorAn ExtraValues value that raises an error when a row contains more values than the defined columns.
QuoteStyle.TypeThe enumeration type for quote handling styles used by Csv.Document and related text parsing functions.
QuoteStyle.NoneA QuoteStyle value that disables quote processing, treating quote characters as plain text.
QuoteStyle.CsvA QuoteStyle value that applies standard CSV quoting rules, where a doubled quote character inside a quoted field is treated as a literal quote.
CsvStyle.TypeThe enumeration type that controls when fields are quoted when writing CSV output.
CsvStyle.QuoteAlwaysA CsvStyle value that wraps every field in quotes regardless of content.
CsvStyle.QuoteAfterDelimiterA CsvStyle value that quotes a field only when its content starts with the delimiter character.
LimitClauseKind.TypeThe enumeration type for SQL row-limit clause syntax variants, used when building query-folding SQL for different database dialects.
LimitClauseKind.NoneA LimitClauseKind value indicating the data source does not support a row-limit clause.
LimitClauseKind.TopA LimitClauseKind value indicating the data source uses a TOP n clause to limit rows, as in T-SQL.
LimitClauseKind.LimitA LimitClauseKind value indicating the data source uses a LIMIT n clause to limit rows.
LimitClauseKind.LimitOffsetA LimitClauseKind value indicating the data source uses a LIMIT n OFFSET m clause for paged queries.
LimitClauseKind.AnsiSql2008A LimitClauseKind value indicating the data source uses the ANSI SQL 2008 FETCH FIRST n ROWS ONLY syntax.
JoinAlgorithm.TypeThe enumeration type for join algorithm hints, used by Table.Join to suggest how the engine should perform a merge.
JoinAlgorithm.DynamicA JoinAlgorithm value letting the engine choose the best algorithm automatically.
JoinAlgorithm.PairwiseHashA JoinAlgorithm value requesting a pairwise hash join.
JoinAlgorithm.SortMergeA JoinAlgorithm value requesting a sort-merge join, which first sorts both tables by the key columns.
JoinAlgorithm.LeftHashA JoinAlgorithm value requesting a hash join that builds the hash table from the left input.
JoinAlgorithm.RightHashA JoinAlgorithm value requesting a hash join that builds the hash table from the right input.
JoinAlgorithm.LeftIndexA JoinAlgorithm value requesting an index-based join using an index on the left table.
JoinAlgorithm.RightIndexA JoinAlgorithm value requesting an index-based join using an index on the right table.
JoinSide.TypeThe enumeration type identifying which side of a join a key column belongs to.
JoinSide.LeftA JoinSide value indicating the left table in a join operation.
JoinSide.RightA JoinSide value indicating the right table in a join operation.
RankKind.TypeThe enumeration type for ranking methods, used by Table.AddRankColumn to control how ties are handled.
RankKind.CompetitionA RankKind value using competition ranking, where tied items share the same rank and the next rank skips ahead by the number of ties.
RankKind.DenseA RankKind value using dense ranking, where tied items share the same rank and the next rank is always one higher.
RankKind.OrdinalA RankKind value using ordinal ranking, where every item gets a unique rank with no ties.
ODataOmitValues.TypeThe enumeration type that controls how null and default values are omitted in OData query results.
ODataOmitValues.NullsAn ODataOmitValues value that instructs the OData service to omit null-valued properties from the response.
SapBusinessWarehouseExecutionMode.TypeThe enumeration type for SAP Business Warehouse query execution modes, used in SAP BW connector options.
SapBusinessWarehouseExecutionMode.DataStreamAn execution mode value that retrieves SAP BW data using the DataStream protocol.
SapBusinessWarehouseExecutionMode.BasXmlAn execution mode value that retrieves SAP BW data using BasXml format.
SapBusinessWarehouseExecutionMode.BasXmlGzipAn execution mode value that retrieves SAP BW data using BasXml format with GZip compression.
SapHanaRangeOperator.TypeThe enumeration type for comparison operators used in SAP HANA range input parameters.
SapHanaRangeOperator.GreaterThanA SapHanaRangeOperator value representing the greater-than comparison.
SapHanaRangeOperator.LessThanA SapHanaRangeOperator value representing the less-than comparison.
SapHanaRangeOperator.GreaterThanOrEqualsA SapHanaRangeOperator value representing the greater-than-or-equal comparison.
SapHanaRangeOperator.LessThanOrEqualsA SapHanaRangeOperator value representing the less-than-or-equal comparison.
SapHanaRangeOperator.EqualsA SapHanaRangeOperator value representing an equality comparison.
SapHanaRangeOperator.NotEqualsA SapHanaRangeOperator value representing a not-equal comparison.
SapHanaDistribution.TypeThe enumeration type for SAP HANA connection distribution modes, used in SAP HANA connector options.
SapHanaDistribution.OffA SapHanaDistribution value that disables connection distribution across SAP HANA nodes.
SapHanaDistribution.ConnectionA SapHanaDistribution value that distributes connections across SAP HANA nodes at the connection level.
SapHanaDistribution.StatementA SapHanaDistribution value that distributes work across SAP HANA nodes at the statement level.
SapHanaDistribution.AllA SapHanaDistribution value that enables all available distribution modes.
WebMethod.TypeThe enumeration type for HTTP request methods, used by Web.Contents and related web connector functions.
WebMethod.DeleteA WebMethod value specifying the HTTP DELETE method.
WebMethod.GetA WebMethod value specifying the HTTP GET method.
WebMethod.HeadA WebMethod value specifying the HTTP HEAD method, which retrieves headers only without a response body.
WebMethod.PatchA WebMethod value specifying the HTTP PATCH method.
WebMethod.PostA WebMethod value specifying the HTTP POST method.
WebMethod.PutA WebMethod value specifying the HTTP PUT method.

Of course, you don’t need to know all of these functions, and even the most advanced Power Query users would only end up using a handful of these functions regularly.

Other Power Query articles you may also like:

I am a huge fan of Microsoft Excel and love sharing my knowledge through articles and tutorials. I work as a business analyst and use Microsoft Excel extensively in my daily tasks. My aim is to help you unleash the full potential of Excel and become a data-slaying wizard yourself.