Google Sheets

This article describes how to connect Tableau to Google Sheets and set up the data source.

Before you begin

Before you begin, gather this connection information:

  • Google email address and password

    Note: The Google Sheets connector does not support Google shared drives.

Make the connection and set up the data source

  1. Start Tableau and under Connect, select Google Sheets. For a complete list of data connections, select More under To a Server. In the tab Tableau opens in your default browser, do the following:

    1. Sign in to Google Sheets using your email or phone, and then select Next to enter your password. If multiple accounts are listed, select the account that has the Google Sheets data you want to access and enter the password, if you're not already signed in.

    2. Select Allow so that Tableau Desktop can access your Google Sheets data.

    3. Close the browser window when notified to do so.

    4. Select a Google Sheet from the list or use the text box to search for a Google Sheet by name or by URL, and then select Connect.

  2. On the data source page, do the following:

    1. (Optional) Select the default data source name at the top of the page, and then enter a unique data source name for use in Tableau. For example, use a data source naming convention that helps other users of the data figure out which data source to connect to.

    2. If your Google Sheets file has one table, select the sheet tab to start your analysis.

Note: Tableau doesn't support pivot tables in Google Sheets.

Select Your Google Sheet dialog box functionality

The Select Your Google Sheet dialog box includes the following functionality:

  • The list of sheets that you can select from includes your private sheets, sheets shared with you, and the public sheets that you've accessed in the past.

  • If you search by URL and the URL doesn't exist or you don't have access to it, an error displays.

  • You can select the Name and Last opened by me column names to sort the Google Sheets, and when you select a sheet you can preview it in the right pane. You cannot sort by Owned by.

Connect to more data

You can connect to more than one table by using join. For more information, see Join Your Data.

You can also connect to a named range the same way you connect to a worksheet. The named range functions as a table in Tableau.

You create named ranges in Google Sheets by highlighting a range of cells and then selecting Data > Named ranges. When you connect to a named range in Tableau, an icon appears next to the sheet in the Data Source tab as shown below.

About .ttde and .hhyper files

You might notice .ttde or .hhyper files when navigating your computer's directory. When you create a Tableau data source that connects to your data, Tableau creates a .ttde or .hhyper file. This file, also known as a shadow extract, is used to help improve the speed your data source loads in Tableau Desktop. Although a shadow extract contains underlying data and other information similar to the standard Tableau extract, a shadow extract is saved in a different format and can't be used to recover your data.

In certain situations, you might need to delete a shadow extract from your computer. For more information, see Low Disk Space because of shadow extract in the Tableau Knowledge Base.

Troubleshoot Google Sheets issues

Data limit in Google Drive

Google Drive supports a limited number of cells (in the millions) for spreadsheets that are created in or converted to Google Sheets. For more information, see Files you can store in Google Drive(Link opens in a new window) in the Google Drive Help.

Error message: Internal Error - An unexpected error occurred and the operation could not be completed.

If there are errors in your Google Sheet, such as #DIV/0! or #N/A, Tableau is unable to create an extract and an error message will appear. To resolve this issue, wrap the function with iferror() and have it return a blank, or any value that's appropriate.

For example, the sheet below includes a #DIV/0! error.

The solution is to wrap the calculation in an iferror() calculation.


See also

Thanks for your feedback!