Create a Reusable Custom Function in Power Query M

Defines a query as a function so it can be called with different arguments from other queries.

Advanced M FunctionsAdvancedfunctionreusableparameter

Power Query M code

(FilePath as text) as table =>
let
    Source = Csv.Document(File.Contents(FilePath), [Delimiter = ",", Encoding = 1252]),
    PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars = true])
in
    PromotedHeaders

Notes

Paste this as the entire content of a new blank query (name it, for example, fnLoadCsv), then call it elsewhere as fnLoadCsv("C:\data\sales.csv").

Requirements

How to use this snippet

  1. In Power BI Desktop, choose Transform data to open Power Query, then open the Advanced Editor on a query (or start from a blank query).
  2. Paste the snippet and replace the placeholder names (tables, columns, file paths) with your own. Check the requirements above first.
  3. Run it through the Power Query M Formatter to tidy the layout.

Related Power Query M snippets

More Power Query M resources

Browse all 145 snippets in the Power Query M Code Snippets, or search the library for something similar to Create a Reusable Custom Function.