How to Calculate the Mode in Google Sheets

Mode is the simplest measure of central tendency to understand: it's the value that appears most frequently in your dataset. While mean gives you the average and median gives you the middle value,...

Key Insights

  • Google Sheets offers three mode functions—MODE(), MODE.SNGL(), and MODE.MULT()—each serving different analytical needs, with MODE.MULT() being essential when your data contains multiple equally frequent values.
  • The mode function silently fails when no value repeats, returning #N/A instead of an error message, making IFERROR() wrappers critical for production spreadsheets.
  • Combining MODE() with FILTER() unlocks conditional mode calculations, letting you find the most frequent value within specific segments of your data without helper columns.

Introduction to Mode

Mode is the simplest measure of central tendency to understand: it’s the value that appears most frequently in your dataset. While mean gives you the average and median gives you the middle value, mode tells you what’s most common.

Use mode when analyzing categorical data, survey responses, or any situation where “most popular” matters more than “average.” If you’re analyzing customer shirt size preferences, the mode tells you which size to stock most heavily. If you’re reviewing support ticket categories, the mode reveals your most common issue type.

Mode shines in scenarios where mean would be meaningless. You can’t calculate the average of “Red,” “Blue,” and “Green,” but you can absolutely find which color appears most often. Even with numerical data, mode often provides more actionable insights—knowing that most customers buy exactly 3 items per order is more useful than knowing the average is 3.7 items.

Using the Basic MODE Function

The MODE() function in Google Sheets follows a straightforward syntax:

=MODE(value1, [value2, ...])

You can pass individual cell references, ranges, or a combination. The function ignores text values and empty cells, focusing only on numbers.

For a simple dataset tracking daily website visitors:

=MODE(A1:A20)

This returns the visitor count that occurred most frequently across those 20 days. If your data in A1:A20 contains the values 150, 200, 150, 175, 200, 150, 225, the function returns 150 because it appears three times.

You can also reference multiple non-contiguous ranges:

=MODE(A1:A20, C1:C20, E1:E20)

This calculates the mode across all three ranges combined, treating them as a single dataset. This approach works well when your data is split across multiple columns representing different time periods or categories that you want to analyze together.

MODE.SNGL vs. MODE.MULT

Google Sheets provides two specialized mode functions that handle multi-modal datasets differently.

MODE.SNGL() behaves identically to MODE()—it returns a single value. When multiple modes exist (a tie for most frequent), it returns the first one encountered in the data:

=MODE.SNGL(B2:B100)

MODE.MULT() returns all modes when ties exist. This function must be used as an array formula and will spill results into multiple cells:

=MODE.MULT(B2:B100)

Consider a dataset where both 25 and 30 each appear 5 times (the maximum frequency). MODE.SNGL() returns whichever value appears first in your range. MODE.MULT() returns both 25 and 30 in adjacent cells.

Here’s a practical comparison. Given this data in column B:

B2: 10
B3: 25
B4: 30
B5: 25
B6: 30
B7: 25
B8: 30

The formulas produce different results:

=MODE.SNGL(B2:B7)    // Returns: 25
=MODE.MULT(B2:B7)    // Returns: 25, 30 (in two cells)

Use MODE.SNGL() when you need a single answer for further calculations. Use MODE.MULT() when you need complete information about your data’s distribution, such as when presenting findings or when multiple “winners” matter to your analysis.

Handling Edge Cases

Mode calculations can fail in ways that break your spreadsheets if you’re not prepared.

No repeating values: When every value in your dataset is unique, no mode exists. Google Sheets returns #N/A rather than picking an arbitrary value:

=MODE(1, 2, 3, 4, 5)    // Returns: #N/A

Text values: The mode functions ignore text entirely. A range containing only text returns #N/A:

=MODE("Red", "Blue", "Red")    // Returns: #N/A

Mixed data: Numbers are evaluated; text is skipped:

=MODE(5, "Red", 5, "Blue", 10)    // Returns: 5

Wrap your mode calculations with IFERROR() to handle these gracefully:

=IFERROR(MODE(A:A), "No mode found")

For more sophisticated error handling, you can provide a fallback calculation:

=IFERROR(MODE(A2:A100), AVERAGE(A2:A100))

This returns the mode when one exists, falling back to the mean when all values are unique. Whether this makes sense depends on your use case—sometimes “no mode” is meaningful information you shouldn’t hide.

For production spreadsheets that others will use, always include error handling:

=IFERROR(MODE.SNGL(B2:B500), "All values unique - no mode exists")

Finding Mode with Conditions

Real analysis rarely involves finding the mode of an entire column. You typically need the mode within a specific segment—the most common order size for premium customers, or the most frequent complaint type in Q4.

Combine FILTER() with MODE() to calculate conditional modes without helper columns:

=MODE(FILTER(B2:B50, A2:A50="Category1"))

This formula filters column B to only include rows where column A equals “Category1,” then calculates the mode of those filtered values.

For multiple conditions, use multiplication (AND logic) or addition (OR logic):

// Mode where Region is "West" AND Status is "Active"
=MODE(FILTER(C2:C100, (A2:A100="West")*(B2:B100="Active")))

// Mode where Region is "West" OR Region is "East"
=MODE(FILTER(C2:C100, (A2:A100="West")+(A2:A100="East")))

You can also filter by numerical conditions:

// Mode of order quantities where order value exceeds $500
=MODE(FILTER(B2:B200, C2:C200>500))

Combine this with error handling for robust conditional mode calculations:

=IFERROR(MODE(FILTER(B2:B200, A2:A200="Premium")), "No repeat purchases")

For date-based filtering, find the mode within a specific time period:

// Most common order quantity in January 2024
=MODE(FILTER(B2:B500, MONTH(A2:A500)=1, YEAR(A2:A500)=2024))

Practical Applications

Let’s walk through complete, production-ready formulas for common business scenarios.

Most common product sold:

Assuming column A contains product names and column B contains quantities, first find the product with the highest total sales frequency:

=INDEX(A2:A500, MATCH(MAX(COUNTIF(A2:A500, A2:A500)), COUNTIF(A2:A500, A2:A500), 0))

This formula counts how often each product appears, finds the maximum count, then returns the corresponding product name. It handles text data that MODE() cannot process directly.

Most frequent survey response by department:

With departments in column A, responses (1-5 scale) in column B:

=MODE(FILTER(B2:B200, A2:A200="Engineering"))

Most common support ticket category this month:

With dates in column A, categories coded numerically in column B:

=IFERROR(
  MODE(FILTER(B2:B1000, 
    MONTH(A2:A1000)=MONTH(TODAY()), 
    YEAR(A2:A1000)=YEAR(TODAY())
  )),
  "Insufficient data"
)

Inventory reorder point analysis:

Find the most common daily sales quantity to set reorder triggers:

=MODE(FILTER(C2:C365, B2:B365="SKU-12345"))

Customer behavior clustering:

Identify the most common purchase frequency (orders per month) among your customer base:

=MODE.MULT(D2:D500)

Using MODE.MULT() here reveals if you have multiple distinct customer segments with different purchasing patterns.

Summary & Quick Reference

Function Syntax Cheat Sheet:

Function Syntax Returns
MODE =MODE(range) Single most frequent value
MODE.SNGL =MODE.SNGL(range) Single most frequent value
MODE.MULT =MODE.MULT(range) All modes (array)

Decision Guide:

  • Need one answer for calculations? Use MODE() or MODE.SNGL()
  • Need all tied modes? Use MODE.MULT()
  • Working with text categories? Use COUNTIF() with INDEX/MATCH instead
  • Need conditional mode? Wrap with FILTER()
  • Building for others? Always wrap with IFERROR()

Common Patterns:

// Basic mode with error handling
=IFERROR(MODE(A:A), "No mode")

// Conditional mode
=MODE(FILTER(values, conditions))

// Mode with multiple conditions
=MODE(FILTER(B:B, (A:A="X")*(C:C>100)))

Mode functions are deceptively simple but become powerful when combined with filtering and proper error handling. Start with the basic MODE() function, add IFERROR() for resilience, and layer in FILTER() when you need segmented analysis. These three patterns cover the vast majority of real-world mode calculations you’ll encounter.

Liked this? There's more.

Every week: one practical technique, explained simply, with code you can use immediately.