Combining the Power of QUERY and UNIQUE Functions in Google Sheets

Google Sheets Tips

icon Get in-depth insights

QUERY and UNIQUE Functions template

icon Bonus for use

QUERY and UNIQUE Functions template

Let's say you're using Google Sheets to manage sales figures. You need to analyze sales by region, so using the QUERY function to filter the data sounds like a plan. But what if your data has duplicate entries? Well, unfortunately, QUERY can't handle that alone.

However, combining QUERY with UNIQUE allows you to easily clean up duplicates and tidy up the table before analysis and reporting. In this article, we'll explore how these functions team up to improve your data analysis in Google Sheets. Let's get started!

QUERY Function Explained

The QUERY function in Google Sheets is similar to a search tool that helps you find and organize data in a spreadsheet. It understands simple commands, which you can use to filter rows based on specific criteria, sort data, and even combine data from different tables in your spreadsheet. This makes it easier to analyze your data and locate what you need.

QUERY Function Syntax

The syntax of the QUERY function in Google Sheets looks like this:

=QUERY(data, query, [headers])

Here's what each parameter means:

  • "data": it refers to the cells where the data is stored.
  • "query": this parameter sets the conditions for filtering, sorting, and managing the data.
  • "[headers]": it shows how many rows at the top of your data contain headers. If not mentioned, Google Sheets assumes the first row has headers.
  • 💡For more information on how to use the QUERY function effectively, check out our detailed article covering all the ins and outs of QUERY in Google Sheets.

Dive deeper with this read

Exploring Google Sheets QUERY Function: Tips and Tricks for Efficient Data Management

Image for article: Exploring Google Sheets QUERY Function: Tips and Tricks for Efficient Data Management

UNIQUE Function Explained

Let's say you have a sales report in Google Sheets that includes multiple entries for the same product sold on different dates. You want to analyze your sales data to see which products sell better without counting duplicates. With the UNIQUE function, you can extract a list of product names from your sales report, identify each distinct product sold, and analyze sales trends more accurately.

UNIQUE Function Syntax

The syntax of the UNIQUE function in Google Sheets is as follows:


Where "range" specifies the range of cells from which you want to extract distinct or unique values. It can include a single range or multiple ranges separated by commas.

Understanding Unique vs. Distinct Values in Data Analysis

In data analysis, it is crucial to distinguish between 'unique' and 'distinct' values for accurate data manipulation, especially if you're using the UNIQUE Google Sheets function. While both terms identify different elements in a dataset, they serve different purposes:

  • Distinct Values: these are all the different values in your dataset, counted without repetition. This is what the UNIQUE function typically retrieves without any additional parameters.

  • Unique Values: these refer specifically to values that appear exactly once in a dataset. In Google Sheets, this can be achieved by setting the exactly_once parameter of the UNIQUE function to TRUE.

If we have a list of sales representatives and their sales figures, here is how the UNIQUE function can be applied to retrieve the list of distinct sales reps and the list of unique sales reps.

Understanding these distinctions not only enhances your ability to manipulate large datasets properly, but also equips you with the knowledge to apply the right type of data extraction based on your analytical needs.

💡For more practical applications and to see these concepts in action through detailed examples, consider exploring further in our complete guide on using the UNIQUE function in Google Sheets. Here, you'll find advanced techniques such as filtering data based on specific criteria and creating dynamic dropdown lists, which can significantly elevate your data analysis tasks.

Get Our Effective QUERY and UNIQUE Functions Template!

Tap into the power of QUERY and UNIQUE functions with our easy-to-follow examples, sourced directly from our this article. Simply download, open, and start applying these formulas effortlessly.


Mastering Distinct Data Display with QUERY in Google Sheets

Let's explore how QUERY paired with UNIQUE can simplify your daily tasks.

We'll examine 3 situations where this combination is useful:

  1. Isolating distinct values in one column
  2. Extending UNIQUE function across multiple columns

  3. Securing exclusively distinct rows in your data.

These methods help you identify distinct records more efficiently and improve data management. 

Isolating Distinct Values in a Single Column

When isolating distinct values in a single column, we're essentially organizing our data to identify individual entries without any repetition. This process is useful in various scenarios, such as analyzing sales figures by region.

By using QUERY with UNIQUE in Google Sheets, we can quickly filter out duplicate regions and focus solely on the distinct ones.


=UNIQUE(QUERY(range, "SELECT column"))

Here is the breakdown:

  • range: it refers to the range of cells containing the data.
  • "SELECT column": this specifies the column from which you want to extract distinct values.


If you have a sales dataset with seller names, regions, and sales figures, using this formula will give you a list where each combination of seller, region, and sales data appears only once.

You can use the following formula to get this result from your sales data:


It's a simple way to clean up your data and make sure you're working with information without duplicate entries.


Extending UNIQUE Function Across Multiple Columns

It means finding distinct combinations of values that span across more than 1 column in your dataset. Instead of just looking for distinct values in a single column, you're now considering combinations of values across different columns.


=UNIQUE(QUERY(range, "SELECT column1, column2, ..."))

In this syntax:

  • range: it's the range of cells containing the data.
  • "SELECT column1, column2, ...": it specifies the columns from which you want to extract distinct combinations of values.


Our sales dataset has columns for sales representative names, regions, and sales figures. Extending the UNIQUE function across multiple columns allows us to find distinct combinations of names and regions, rather than just values in each column separately.


Securing Exclusively Distinct Rows in Your Data Set

Securing only distinct rows in your dataset means making sure that there are no identical rows. Each row should be different from the others, with no duplicates. This helps maintain accurate data, especially when each row represents a specific sales transaction or customer information.


=UNIQUE(QUERY(data_range, "SELECT column1, column2 WHERE condition"))

In this formula:

  • data_range: it represents the range of cells containing the data you want to analyze.
  • column1, column2, etc.: these refer to the columns you want to include in the output.
  • condition: it specifies the criteria for filtering the rows.


Let's say we need to extract distinct rows from the range B3:C10, where the value in column B is either John Smith or Jane Doe.

=UNIQUE(QUERY(B3:C10, "SELECT B, C WHERE B='John Smith' OR B='Jane Doe'"))

Optimizing Data Analysis with Combined QUERY and UNIQUE Techniques

Combining QUERY and UNIQUE techniques in Google Sheets can improve your data analysis. By using the following techniques together, you will save time and improve accuracy.

Understand Both the Syntax and Functions Before Combining

Before you mix QUERY and UNIQUE functions, make sure you understand each one on its own and learn their syntax. Knowing them individually first helps you tackle more complex data tasks, and then you will be ready to combine them effectively.

Ensure Data Consistency

To avoid mistakes, use TO_TEXT, TO_NUMBER, or TO_DATE to make sure all data is in the same format before you start analyzing it. This helps prevent errors, such as mismatched formats or calculations. Keeping your data consistent means you can trust your analysis more and make better decisions based on the information you have.

Filter Data for Optimizing Performance

To make your spreadsheet run faster, filter your data with QUERY before using UNIQUE. Also, avoid complicated calculations or array formulas that you don't need. These can slow down your spreadsheet and make it harder to work with.

Simplifying Formulas with Named Ranges

Giving special names to specific groups of cells in Google Sheets is called Named Ranges. They will make formulas easier to understand, especially with functions like QUERY and UNIQUE. Instead of using confusing cell references (such as A1:B10), you can use names like Sales Data. This makes your formulas much clearer, especially when you're dealing with lots of data.

Navigating Through Common Challenges with QUERY and UNIQUE

Here are some common challenges you might face with QUERY and UNIQUE:

Incorrect Syntax Leading to Errors

⚠️ Error: A common problem you can face when using QUERY and UNIQUE is getting the syntax wrong. This can lead to error messages like #VALUE! or Unable to parse query string.

✅ Solution: Make sure your syntax for combining QUERY and UNIQUE is correct.


=QUERY(UNIQUE(range), "select * where Col1 is not null", 1)

This formula has a syntax error. In the QUERY function, "select" should be lowercase, and "Col1" should be enclosed in single quotes.

The correct syntax would be:

=QUERY(UNIQUE(range), "select * where 'Col1' is not null", 1)

Data Type Mismatch

⚠️ Error: A common problem happens when the data you're querying mixes different types, like text and numbers. This can mess up the results or cause errors in the QUERY function.

✅ Solution: To fix this, ensure consistent data formatting across columns. You can use functions like TO_TEXT, TO_DATE, or TO_NUMBER to convert data types before applying the QUERY function.


=QUERY(TO_TEXT(UNIQUE(range)), "select * where 'Col1' is not null", 1)

The issue with the formula is the incorrect syntax in the WHERE clause. Instead of using single quotes around 'Col1', it should use backticks (`) or no quotes at all to refer to column labels.

The corrected version should be:

=QUERY(TO_TEXT(UNIQUE(range)), "select * where Col1 is not null", 1)

Using single quotes ('Col1') can cause an error because Google Sheets interprets it as a string literal instead of a column reference.

If you're trying to find specific data in a big dataset or match data from different tables, you might need VLOOKUP functions. To learn more about using VLOOKUP and XLOOKUP, check out our detailed guide on these functions.

Dive deeper with this read

Top 5 Differences Between VLOOKUP and XLOOKUP in Google Sheets

Image for article: Top 5 Differences Between VLOOKUP and XLOOKUP in Google Sheets

Performance Issues with Large Datasets

⚠️ Error: Using QUERY and UNIQUE functions with large datasets can seriously slow down your Google Sheets.

✅ Solution: Increase performance by filtering your data with QUERY before using UNIQUE. Additionally, we recommend limiting the use of array formulas (ARRAYFORMULA) and avoiding overly complicated calculations.

If you're handling data professionally and regularly dealing with dynamic information, we suggest using tools that can query data directly from spreadsheets and automate tasks on a schedule.

Deepen Your Understanding with These Google Sheets Guides

If you want to improve your Google Sheets skills, learn more about mastering more advanced functions like ARRAY, XLOOKUP, and Pivot Table:

  • XLOOKUP: Helps find and retrieve information from your spreadsheet quickly and easily.

  • ARRAY: Conducts calculations across multiple cells or ranges, delivering multiple results simultaneously.

  • VLOOKUP: It enables you to locate and retrieve data from a table. Variants such as VLOOKUP combined with IF statements allow for more detailed analysis.

  • Pivot Table: This adaptable tool simplifies the summarization, organization, and examination of extensive data sets, allowing for easy extraction of insights and identification of trends.

  • IMPORT Functions: Essential for bringing in data from multiple external sources, such as other Google Sheets, websites, or RSS feeds, these functions significantly improve the capabilities of data analysis and integration within your spreadsheet.

  • CONCATENATE Function: This function combines multiple text items into a single continuous string, providing a seamless way to merge text from different cells.

Leveraging OWOX BI BigQuery Reports Extension for Next-Level Google Sheets Data Insights

With the OWOX BI BigQuery Reports Extension, you can create accurate reports that blend data, all at a faster pace. By surpassing the 50K row limit, you can analyze larger datasets more thoroughly. Also, you can use dynamic filters and aggregators which allow you to tailor the data view according to specific criteria, and easily share up-to-date reports with your team.


Explore BigQuery Data in Google Sheets

Bridge the gap between corporate BigQuery data and business decisions. Simplify reporting in Google Sheets without manual data blending and relying on digital analyst resources availability

Simplify Analytics Now


Expand all Close all
  • Is there a UNIQUE function in Google Sheets?

    Yes, Google Sheets has a UNIQUE function that extracts unique and distinct values from a range. The basic formula is: =UNIQUE(range).
  • What function counts unique values in Google Sheets?

    The COUNTUNIQUE function in Google Sheets counts the number of unique values in a range. Use the following formula: =COUNTUNIQUE(range).
  • Can the QUERY function display only unique rows?

    The QUERY function can display only unique rows by combining it with the UNIQUE function as follows: =UNIQUE(QUERY(data, query))
  • What is the syntax for using QUERY to display unique rows for a single column?

    To display unique rows for a single column using QUERY, use the syntax: =UNIQUE(QUERY(A1:B16, "SELECT A WHERE A is not null")).
  • How do I handle multiple columns when displaying unique rows?

    When handling multiple columns, include all desired columns in the SELECT statement within the QUERY function.
  • What are some best practices for using QUERY and UNIQUE functions together?

    Best practices include mastering the syntax of each function, ensuring consistent data types, and using named ranges for clarity.
  • What common issues might I encounter when using QUERY and UNIQUE together?

    Common issues include syntax errors and data type mismatches, leading to unexpected results or errors.
  • How can I troubleshoot performance issues when using QUERY and UNIQUE on large datasets?

    To troubleshoot performance, filter data with QUERY first to reduce dataset size and avoid complex calculations. Additionally, optimize formulas and minimize unnecessary array formulas.

icon Get in-depth insights

QUERY and UNIQUE Functions template

icon Bonus for use

QUERY and UNIQUE Functions template