Power BI is an incredibly powerful business intelligence tool that allows users to create interactive visualizations and dashboards. One of the key features of Power BI is its ability to connect to a variety of data sources, including Smartsheet, a popular cloud-based project management and collaboration tool. In this article, we will explore how to use Power Query M Language code to connect to Smartsheet from inside Power BI.

What is Power Query M Language?


Power Query is a data connection and transformation tool that is built into Power BI. It allows users to connect to a wide range of data sources, transform and clean the data, and load it into Power BI for analysis and visualization. Power Query uses a functional programming language called M to perform these transformations.

M is a powerful and flexible language that allows users to perform complex data transformations with ease. M includes a wide range of functions that can be used to clean and reshape data, and it can be extended with custom functions as well.

Connecting to Smartsheet with Power Query

To connect to Smartsheet from inside Power BI, we will need to use the Smartsheet API. The Smartsheet API allows users to access and manipulate data in their Smartsheet account programmatically. To use the Smartsheet API, you will need to obtain an API key from the Smartsheet developer portal.

Once you have your API key, you can use Power Query M Language code to connect to Smartsheet. The first step is to create a new query in Power Query. To do this, click on the “Get Data” button on the Home tab of the Power BI ribbon, and select “Web” from the list of data sources.


In the “From Web” dialog box, enter the URL for the Smartsheet API, along with any parameters that are required. For example, to retrieve a list of sheets in your Smartsheet account, you would use the following URL:

You would also need to include your API key as a parameter in the URL, like this: your_api_key_here

Once you have entered the URL and any required parameters, click the “OK” button to create the query.

Transforming the Smartsheet Data

Now that we have connected to the Smartsheet API, we can use Power Query M Language code to transform the data and load it into Power BI. Power Query includes a wide range of data transformation functions, including filtering, grouping, merging, and pivoting.

For example, let’s say we want to filter the list of sheets in our Smartsheet account to only include those that have been modified in the last 30 days. We can do this using the “Filter Rows” function in Power Query.

To filter the rows in our query, we would use the following M Language code:

= Table.SelectRows(SmartsheetData, each [Modified] > DateTime.LocalNow() – #duration(30, 0, 0, 0))

This code filters the “SmartsheetData” table to only include rows where the “Modified” column is greater than the current date minus 30 days.

Loading the Data into Power BI

Once we have transformed the data using Power Query M Language code, we can load it into Power BI for analysis and visualization. To do this, we simply need to click the “Close & Load” button on the Power Query Editor ribbon.

Power BI will then create a new query that includes the transformed data, which can be used to create visualizations and dashboards. Power BI also includes a wide range of visualization and formatting options, allowing users to create customized and interactive dashboards that can help drive business insights.


In conclusion, Power Query M Language code is a powerful tool for connecting to and transforming data from a wide range of sources, including Smartsheet. By using the Smartsheet API and Power Query M Language code, users can quickly and easily connect to their Smartsheet data from inside Power BI, and transform it to meet their specific needs. With Power BI’s powerful visualization and dashboarding capabilities, users can gain valuable insights into their data and make data-driven decisions that can help drive business success.

Power BI Training Courses by G Com Solutions (0800 998 9248)

Contact Us


    Your Name (required)


    Email (required)


    Training Course(s)

    Your Message

    Upload Example Document(s) (Zip multiple files)

    Similar Posts