In descriptive statistical analysis, identifying the central tendency of a dataset requires evaluating the mean (average), median (middle value), and mode (most frequently occurring value). While the legacy MODE function works for simple datasets, it has a critical mathematical limitation: if a dataset contains two or more values that tie for the highest frequency (a bimodal or multimodal distribution), legacy MODE returns only the first value it encounters and discards the rest.
To perform accurate statistical modeling, Google Sheets provides two modern replacement functions: MODE.SNGL (which returns a single modal value) and MODE.MULT (which outputs a dynamic vertical array containing every tied modal value). This tutorial explains how to formulate and interpret both functions for statistical workflows.
Syntax and Behaviour of MODE.SNGL and MODE.MULT
Both functions accept cell ranges, individual numbers, or comma-separated arrays.
MODE.SNGL Formula Syntax
=MODE.SNGL(value1, [value2, ...])
Calculates the single most frequently occurring value in a dataset. If two or more values share the highest frequency, MODE.SNGL returns the one that appears earliest in the source range.
MODE.MULT Formula Syntax
=MODE.MULT(value1, [value2, ...])
Calculates all frequently occurring values that share the highest frequency. Because modern Google Sheets supports dynamic array spilling, MODE.MULT automatically spills down as a vertical array of numbers across multiple cells.
| Function | Distribution Handling | Output Dimensions |
|---|---|---|
| MODE.SNGL | Unimodal / Single value tie-break | Single cell numeric output. |
| MODE.MULT | Bimodal, Trimodal, Multimodal | Dynamic vertical array spilling downwards into adjacent empty rows. |
| Legacy MODE | Deprecated backwards compatibility | Single cell; identical mathematical output to MODE.SNGL. |
Step-by-Step Example: Detecting Multimodal Survey Results
Consider an operational customer survey where respondents rated a software feature on a scale from 1 to 10. The score ledger resides in cells A2:A16:
Scores: 4, 7, 8, 5, 8, 9, 7, 3, 7, 2, 8, 6, 10, 5, 1
In this dataset, the number 7 appears 3 times, and the number 8 also appears 3 times. All other numbers appear fewer times.
Applying MODE.SNGL
Enter the following formula in cell C2:
=MODE.SNGL(A2:A16)
Google Sheets evaluates the range and returns 7 (because 7 appears prior to 8 in the source array). It completely hides the fact that score 8 was equally popular among respondents.
Applying MODE.MULT
Ensure that the cell directly below your formula (cell C5) is empty, and enter this formula in cell C4:
=MODE.MULT(A2:A16)
Google Sheets dynamically spills the complete list of modes:
- Cell
C4displays: 7 - Cell
C5displays: 8
By using MODE.MULT, business analysts immediately identify the bimodal distribution, revealing two distinct clusters of customer satisfaction.
Transposing Multimodal Arrays Horizontally
By default, MODE.MULT spills vertically down rows. If your dashboard requires results to populate horizontally across columns, wrap the function with TRANSPOSE: =TRANSPOSE(MODE.MULT(A2:A16)).
Combining MODE.MULT with Dynamic Array Helpers
To count how many modes exist in your dataset or display them as a comma-separated text string inside a single cell, pair MODE.MULT with text and counting functions:
Counting Total Modes
=COUNT(MODE.MULT(A2:A16))
Returns 2, confirming that the dataset is bimodal.
Concatenating Modes into a Single Text Summary
="Most Frequent Scores: " & TEXTJOIN(", ", TRUE, MODE.MULT(A2:A16))
Outputs: Most Frequent Scores: 7, 8.
Troubleshooting Common MODE Function Errors
If your mode calculation throws formula errors, review these common statistical causes:
- #N/A Error (No Duplicates Found): Occurs if every number in the dataset appears only once (zero repetition). Unlike
AVERAGEorMEDIAN, a mode does not mathematically exist if there are no recurring duplicates. Wrap your formula inIFERRORto handle this gracefully:=IFERROR(MODE.MULT(A2:A16), "No mode detected") - #REF! Error (Spill Blocked): Triggered when
MODE.MULTattempts to spill down into adjacent rows, but one of the destination cells already contains data or text. Clear the cells directly beneath the formula to resolve the collision. - Ignoring Text and Boolean Values: Both
MODE.SNGLandMODE.MULTignore empty cells, text strings, and boolean flags (TRUE/FALSE). If your values are stored as numbers formatted as text, convert them first usingVALUE().