ROWS Function in☝️ Google Sheets Explained (Definition, Syntax, How to Use It, Examples)

This guide covers everything you need to know about the Google Sheets ROWS function, including its definition, syntax, use cases, and how to use it.

What is the ROWS Function? How Does It Work?

The ROWS function in Google Sheets returns the number of rows within a specified array or range. It’s one of the basic but most useful functions in Google Sheets that helps manage and manipulate data. Based on the given range or array, the ROWS function is able to count how many rows are present and deliver that number as a result.

The primary purpose of the ROWS function is to provide an accurate count of rows in large data sets. This can be particularly useful when dealing with extensive databases or data analysis workflows. It can help users to understand the extent of their data, organize their work, and navigate their spreadsheets more effectively.

The ROWS function takes a designated range or array as an input. The function then examines this input and calculates its total number of rows. The outcome of the function is always a numeric value – the exact count of the rows.

For example, if you’re dealing with a range, the ROWS function will calculate the number of rows within that range. Similarly, if you have an array like {1;2;3;4;5}, the ROWS function will count the number of elements within that array, treating each element as a row.

ROWS Syntax

The syntax and arguments for the function are as follows:




  • range – This represents the range of cells whose row count you wish to return.

Usage notes related to syntax and arguments include:

  • The range argument is required. You cannot use the ROWS function without defining a range.
  • The range can be defined with cell coordinates (like “A1:B5”), named ranges (like “myRange”), or array constants (like {1,2,3;4,5,6}).
  • The ROWS function will return the number of rows in the specified range or array. It does not count the actual content in the cells; it only counts the number of rows.
  • If the range is a single cell, ROWS will return 1.
  • If the range is an array constant, the number of rows in the array will be counted. The array constant must be defined using semicolons to separate rows (like {1;2;3}) and commas or backslashes to separate columns (like {1,2,3} or {1\2\3}).
  • The ROWS function is not case-sensitive. Therefore, “A1:B5” and “a1:b5” will yield the same result.
  • If you use an invalid range (like “A1:B5:C6”), the ROWS function will return a #VALUE! error.
  • ROWS function will also return a #VALUE! error if the range includes a reference to a cell that contains a non-numeric value.
  • The ROWS function ignores any filters that might be applied to the range. It counts all rows, whether they are hidden by a filter or not.
  • The ROWS function can be nested within other functions to provide the row count as an argument.

Examples of How to Use the ROWS Function

Here are some practical examples that illustrate how to use the ROWS function in Google Sheets.

Example #1: Counting the Number of Rows in a Data Range

Let’s assume you have a list of employees in cells A1 to A10 and you want to find out how many employees are in the list. You can use the ROWS function to achieve this.

In an empty cell, type the following formula:


After pressing Enter, Google Sheets will return the number 10, indicating that there are 10 rows in the selected range.

Example #2: Counting the Number of Rows with Data

If you have a range of cells but not all contain data, you can use the ROWS function in combination with other functions to count only the rows with data.

For instance, if you have a list of employees from A1 to A20, but only the first 15 cells contain data, you can use the following formula:

=ROWS(FILTER(A1:A20, LEN(A1:A20)))

This formula uses the FILTER function to create a new array that only includes cells from A1 to A20 that contain data. It then applies the ROWS function to this new array, returning the number 15.

Example #3: Determining the Number of Rows in a Dynamic Range

Sometimes, you may have a dynamic range where rows get added or removed frequently. In such cases, you can use the ROWS function to keep track of the number of rows.

Assume you have a list of employees from A1 to A100, but the list is dynamic and keeps changing. You can use the following formula:


The COUNTA function counts the number of cells in column A with data, and the INDEX function returns the cell reference at that position. The ROWS function then calculates the number of rows in the range from A1 to this cell reference.

ROWS: Common Mistakes & Problems

When using the ROWS function in Google Sheets, you might come across various problems or mistakes. These can range from incorrect syntax usage to misunderstanding the function’s output. Here are some of the most common issues:

  • Incorrect Reference: One of the most common mistakes is using the wrong cell range reference. ROWS function requires a range of cells to operate. If the range is not correctly specified, the function will not work as expected.
  • Ignoring the Array Rule: ROWS function operates on an array of cells. It’s important to remember that it counts only the rows in the array, not the number of cells. If you input a single row with multiple columns, the function will still return 1.
  • Not Considering Hidden Rows: The ROWS function includes hidden rows in its count. If you have hidden rows within your range, it may throw off your results if you were only intending to count visible rows.
  • Confusing with the ROW Function: ROWS and ROW are two different functions. While ROWS counts the number of rows in a range, ROW returns the row number of a specific cell.
  • Incorrect Data Types: The ROWS function can only be used with cell ranges. Attempting to use it with other data types can result in errors or unexpected results.

Why Is ROWS Not Working? Troubleshooting Common Errors

If you are using the ROWS function in Google Sheets and run into issues, it’s important to understand what might be causing these problems. Here are some common errors and how to resolve them.

#VALUE! Error

Cause: The #VALUE! error is common when the input range is invalid or there’s a problem with the cells you’re referencing. This can occur when referencing a single cell, a range of cells that doesn’t exist, or a range of cells where some cells are merged.

Solution: To resolve this, double-check the range you’re referencing in your ROWS function. Ensure that all the cells within that range exist and that none of them are merged. If you want to reference a single cell, you must change this to a valid range of cells.

#REF! Error

Cause: The #REF! error usually appears when the cell or range of cells you’re referencing has been deleted.

Solution: To fix this, you’ll need to replace the deleted cells or adjust your function to reference a different range of cells that still exists. Go through your function step-by-step to identify the cell or range causing the problem.

#N/A Error

Cause: The #N/A error can occur when the ROWS function can’t find the value or data you’re searching for in the specified range. This might happen if your data has been moved, deleted, or if there’s a typo in your function.

Solution: Check your function for any potential typos. Also, make sure the data you’re searching for is present in the range you’ve specified. If it’s been moved or deleted, you’ll need to replace it or modify your function to look in the correct location.

#NUM! Error

Cause: The #NUM! error typically shows up when the ROWS function encounters non-numeric data in a range where it’s expecting numbers. You’ll see this error if you’re using the ROWS function to count rows in a range that contains text or other non-numeric values.

Solution: To fix this error, you need to ensure that the range you’re using with the ROWS function only contains numeric data. If there’s any non-numeric data in this range, you’ll need to remove it or change your function to reference a different range.

#DIV/0! Error

Cause: The #DIV/0! error is caused when you’re trying to divide by zero within your function. This isn’t allowed in Google Sheets and will result in an error.

Solution: You’ll need to modify your function so that you’re not dividing by zero. This might involve changing the range you’re referencing or adjusting the calculations in your function.

Using ROWS With Other Google Sheets Functions

Combining the ROWS function with other Google Sheets functions can make your data analysis even more powerful. Here are a few examples of how you can use ROWS in combination with other functions:


Usage: ARRAYFORMULA allows you to perform complex calculations and operations on ranges rather than individual cells. Combining it with ROWS can give you the number of rows in a range that satisfies a condition.

Example: Suppose you have a range of cells (A1:A10) with numbers, and you want to find out the number of cells that are greater than 5. Here’s how you can do it:



Usage: INDEX returns the value of a cell in a given range based on the row and column number. When used with ROWS, it can help you fetch the value from the last row of a range.

Example: If you want to fetch the value from the last row of a range (A1:A10), you can use the following formula:

=INDEX(A1:A10, ROWS(A1:A10))


Usage: VLOOKUP is a function that is used to find things in a table or a range by row. Combining it with ROWS can help you dynamically update the row index in the VLOOKUP function.

Example: Suppose you have a table of data in range A1:B10, and you want to fetch the value from column B corresponding to the last non-empty cell in column A. You can do this using the following formula:

=VLOOKUP(ROWS(A1:A10), A1:B10, 2, FALSE)

For more details on the ROWS function, check out the official documentation at the Google Docs Editors Help Center.

More Google Sheets Tutorials
More Microsoft Excel Tutorials
Share This Post
Daniel Smith
Daniel Smith
Daniel Smith is automation consultant with a passion for technology, data, AI, and machine learning.

The Spreadsheet Daddy add-on rebrands to Synterrix. Click here to learn more.