Step-by-step guide · 10 min read

How to Connect Google Sheets to Power BI

Two ways to pull your Google Sheets into Power BI, how to set up automatic refresh in the service, and the mistakes that waste an hour. Field-tested on client projects. Version française ici.

Power BI connects to Google Sheets in two ways: the native Google Sheets connector in Power BI Desktop (Google sign-in, private data) or the Web connector pointed at a sheet published as CSV (no account needed, but the data becomes public). The first one covers the vast majority of cases; the second is a fallback for read-only sharing. This guide walks through both, then covers scheduled refresh in the Power BI service, which is where most connections break.

Method 1 · Recommended

The native Google Sheets connector

Available in Power BI Desktop since 2022. It reads a private workbook with your Google account, without publishing anything.

  1. Copy the full workbook URL from your browser, in the form https://docs.google.com/spreadsheets/d/…. The connector needs the complete URL, not a shortened share link.
  2. In Power BI Desktop: Home → Get data → More… → Google Sheets.
  3. Paste the URL, confirm, then sign in with the Google account that has access to the document (an authorization window opens; grant read access).
  4. In the Navigator, tick the sheets you want to load. The connector exposes every tab in the workbook.
  5. Click Transform Data rather than Load: in Power Query, check the header row (Use First Row as Headers) and the column types. Dates and decimal separators are the classic traps of a hand-maintained sheet.
  6. Close & Apply: your data is in the model, ready for visuals.

Three things to watch

  • The connector reads the whole workbook: no named ranges, no server-side filtering. Trimming happens in Power Query.
  • The account you use must have access to the document at the time of every refresh, not just when you first connect.
  • On large workbooks (tens of thousands of rows), loading is noticeably slower than from an Excel file: Google Sheets is not a database. See the last section.
Method 2 · No Google account

The Web connector on a published sheet

Useful when the report must refresh without Google credentials, or to feed a read-only sheet to a third-party tool. The trade-off: published data is accessible to anyone who has the URL. Keep it for non-sensitive data.

  1. In Google Sheets: File → Share → Publish to web.
  2. Pick the tab to publish and the “Comma-separated values (.csv)” format, publish, and copy the generated URL.
  3. In Power BI Desktop: Get data → Web, paste the URL.
  4. When prompted for authentication, keep Anonymous.
  5. Power Query receives a clean CSV: promote the headers, set the column types, load.

Good to know: Google regenerates the published CSV with a small delay (a few minutes after an edit), and publishing covers one tab per URL.

The step everyone misses

Automatic refresh in the Power BI service

After publishing the report to app.powerbi.com, scheduled refresh fails until the service has its own credentials: the ones from Power BI Desktop do not travel with the file.

  1. In the service: Semantic model settings (formerly “dataset”) → Data source credentials.
  2. On the Google Sheets source: Edit credentials → OAuth2 → Sign in with the same Google account.
  3. Then configure scheduled refresh: the source lives in the cloud, so no gateway is required.

With method 2 (anonymous Web connector), there are no credentials to enter: refresh works right away.

Common errors and their causes

SymptomUsual cause
“Couldn’t authenticate” on refreshOAuth2 credentials never re-entered in the service, or the account lost access to the document.
“Invalid reference” or source not foundIncomplete URL (shortened share link) or the document was moved/deleted on the Google side.
Columns shifted after a refreshSomeone inserted or renamed a column in the sheet: Power Query references header names. Lock the structure or handle renames in the query.
Numbers loaded as textDecimal separator or regional format of the sheet: force the type in Power Query using the appropriate locale.
Choose in 30 seconds

Which method for which need?

Google Sheets connectorWeb connector (published CSV)
PrivacyPrivate document, account-based accessPublic to anyone with the URL
Service authenticationOAuth2, set up onceNone
ScopeAll tabs of the workbookOne tab per published URL
Best forThe standard: internal dataAlready-public data, prototypes

If your volumes grow or the spreadsheet becomes the bottleneck of your reporting, the natural next step on the Google side is BigQuery (or an equivalent warehouse) fed properly, with Power BI or Looker Studio on top. And once the data is connected, our Power Query & DAX reference covers the essential functions (in French).

FAQ

What we get asked about Google Sheets × Power BI

Yes in Power BI Desktop, which is free. What requires a license (Pro or above) is sharing the report with other readers in the Power BI service, as with any source.

Yes: since the source lives in the cloud, scheduled refresh works without a gateway. You just have to re-enter the OAuth2 credentials in the semantic model settings after publishing, then pick the frequency.

Looker Studio connects natively to Google Sheets and is fine for lightweight reporting. Power BI wins as soon as you need to combine several sources, model KPIs in DAX, or distribute to an organization already on Microsoft 365.

To get started, yes. But a hand-editable sheet stays fragile: renamed columns, deleted rows, no history. Once reporting becomes critical, freeze the data collection (forms, automated exports) or move to a data warehouse.

Is your reporting held together by spreadsheets?

We are a Paris-based data consulting firm: we build reliable reporting pipelines end to end, from source to dashboard. Our express data audit maps your flows in a few days, quick wins included.

Talk to a consultant
01 83 64 60 25 Réserver un appel