Finding the Most Frequent Value in Google Sheets
Master finding the most frequent value in Google Sheets with MODE.SNGL and MODE.MULT, plus COUNTIF-based methods for text data. Includes practical examples and common pitfalls.
The most frequent value in Google Sheets is the mode of your data. For numeric data, MODE.SNGL returns a single mode, while MODE.MULT returns all modes. For text data, use UNIQUE with COUNTIF to identify the most common category.
Understanding the most frequent value and its role in data analysis
In data analysis, the most frequent value—often called the mode—summarizes the most common value or category in a dataset. In Google Sheets, identifying the mode helps you quickly spot dominant trends, detect skew, and validate data quality. According to How To Sheets, the mode is especially useful when you work with survey results, categorical data, or irregular distributions where the mean or median may be misleading. The easiest numeric case uses MODE.SNGL to return a single most frequent number, but real datasets often contain ties or multiple modes that MODE.MULT can reveal. When data contains text, you cannot rely on MODE alone; you need a text-capable approach, such as combining UNIQUE with COUNTIF to count occurrences and locate the most frequent category. The process becomes a practical habit for data cleaning and quick profiling.
=MODE.SNGL(A2:A100)=MODE.MULT(A2:A100)Notes: blanks are ignored by MODE.SNGL; you may want to wrap formulas with IFERROR to present a cleaner result. For text data, a separate approach is required (see block 4).
Quick numeric example: using MODE.SNGL in practice
The simplest way to find a single most frequent value in a numeric column is MODE.SNGL. If your data contains blanks or non-numeric cells, wrap the function in IFERROR to return a friendly message or blank. The How To Sheets team emphasizes testing with a small sample before applying to larger ranges.
=MODE.SNGL(A2:A20)=IFERROR(MODE.SNGL(FILTER(A2:A20, ISNUMBER(A2:A20))), "No numeric mode")Why this matters: if you have a data column with values like 3, 7, 3, 2, 3, the result is 3. If the data has no clear single mode, the function may return #N/A; use IFERROR to handle that gracefully.
Getting all modes with MODE.MULT
MODE.MULT returns all values that tie for the top frequency. In Sheets, this function spills across adjacent cells, making it ideal for datasets with multiple modes. If your data set is large or you want to ignore blanks, you can apply it to a filtered range. How To Sheets emphasizes that you should expect more than one mode only when ties occur; otherwise MODE.MULT will still display the primary mode in the first cell. The following illustrates its use and the spill behavior.
=MODE.MULT(A2:A20)Beneath the hood, MODE.MULT computes the frequency of each distinct value and returns the winners in a vertical spill. If you want a stable single cell result, you can wrap MODE.MULT with INDEX to pick the first mode:
=INDEX(MODE.MULT(A2:A20), 1)If no mode exists or the data is empty, wrap with IFERROR to present a friendly message.
Handling non-numeric data: COUNTIF + UNIQUE approach
MODE.SNGL and MODE.MULT work only with numbers. For text or mixed data, you can identify the most frequent category by counting occurrences of each unique value and selecting the maximum. The combination of UNIQUE and COUNTIF, with a final INDEX/MATCH, yields the modal category in one formula:
=INDEX(UNIQUE(A2:A100), MATCH(MAX(COUNTIF(A2:A100, UNIQUE(A2:A100))), COUNTIF(A2:A100, UNIQUE(A2:A100)), 0))Explanation: UNIQUE(A2:A100) produces the list of categories; COUNTIF counts each category's appearances; MAX finds the highest frequency; MATCH locates the index; INDEX returns the corresponding category. If there are ties, you can adapt with a broader approach to return all modes (see block 3).
Practical example: numeric data in a small dataset
Suppose A2:A14 contains numbers with several repeats. The following array-based tests let you verify results without altering your sheet structure:
=MODE.SNGL({5;3;5;7;3;5;9;5;3;3;3})=MODE.MULT({5;3;5;7;3;5;9;5;3;3;3})To guard against blanks:
=IFERROR(MODE.SNGL(FILTER(A2:A14, A2:A14<>' ')), "No numeric mode")These approaches work on a compact sample and scale up to larger ranges. For large datasets, consider using FILTER to limit to the relevant subset (e.g., non-blank values).
Working with text data and mixed columns
If your column contains text labels or categories like "A", "B", "A", "A", "C", you can apply the text-based approach described in block 4, but you can also use a pivot-table to visualize the frequencies. The COUNTIF-based method can be extended to multiple columns with FLATTEN or similar techniques; the exact approach depends on how you want to present the results. A compact test using an array constant lets you sanity-check in a single cell:
=LET(d, {"A";"B";"A";"C";"A";"B"}, INDEX(UNIQUE(d), MATCH(MAX(COUNTIF(d, UNIQUE(d))), COUNTIF(d, UNIQUE(d)), 0)))Notes: When data is sparse, you may encounter ties or #N/A; always use IFERROR wrappers to improve the UX. How To Sheets recommends testing with raw data plus a secondary check (frequency tallies) to ensure accuracy.
Alternative methods and visualization
If you want to compare modes across groups, pivot tables provide an elegant solution: set the data column as Rows, and add a Count of Values as Values. The mode can be approximated by identifying the most frequent row label. You can also plot the frequencies with a column chart to show the distribution and highlight the mode visually. For numeric distributions, a frequency-based approach can help identify the peak alongside a visual histogram:
=INDEX(UNIQUE(A2:A100), MATCH(MAX(FREQUENCY(A2:A100, UNIQUE(A2:A100))), FREQUENCY(A2:A100, UNIQUE(A2:A100)), 0))This method reveals the most frequent value even when MODE functions are ambiguous, and is a robust fallback for simple charts and dashboards.
Steps
Estimated time: 15-25 minutes
- 1
Prepare your data
Ensure the data column contains the values you want to analyze. Remove extraneous text or blanks if needed; decide whether you will analyze numbers, text, or both.
Tip: Use a clean data range to avoid false results. - 2
Choose a method
For numeric data, MODE.SNGL gives a single mode; MODE.MULT returns all modes. For text data, plan to use UNIQUE + COUNTIF for accuracy.
Tip: Know whether you expect ties in your data. - 3
Apply the formula
Enter the appropriate formula in an empty cell and reference your data range. Use IFERROR to handle #N/A gracefully.
Tip: Test with a small sample first. - 4
Validate results
Cross-check results with a frequency tally or a small pivot table to confirm the mode.
Tip: Visual checks help catch edge cases. - 5
Handle blanks and errors
Wrap formulas with IFERROR or FILTER to exclude blanks. Decide how to present no-mode scenarios.
Tip: Provide a friendly message instead of raw errors. - 6
Scale to larger datasets
If analyzing large datasets, use FILTER or LET to optimize range calculations.
Tip: Avoid volatile ranges that re-calculate often.
Prerequisites
Required
- Google account with Google Sheets accessRequired
- Familiarity with basic spreadsheet functions (SUM, COUNTIF)Required
- Web browser up-to-date (Chrome/Edge/Safari)Required
Optional
- Optional: sample dataset prepared for testingOptional
Keyboard Shortcuts
| Action | Shortcut |
|---|---|
| Copy cell rangeCopy selected cells | Ctrl+C |
| Paste into cellsPaste starting at active cell | Ctrl+V |
| Find in sheetSearch within sheet | Ctrl+F |
| Bold textFormat selected cells | Ctrl+B |
| Undo last actionRevert mistakes | Ctrl+Z |
FAQ
What is the difference between MODE.SNGL and MODE.MULT in Google Sheets?
MODE.SNGL returns a single most frequent value, suitable when there is a clear mode. MODE.MULT returns all values tied for the highest frequency, spilling into adjacent cells. Use MODE.MULT when you suspect multiple modes in your data.
MODE.SNGL gives one mode; MODE.MULT shows all modes when there are ties.
Can I find the most frequent value in text data?
MODE does not operate on text. For text data, use a combination of UNIQUE and COUNTIF to count occurrences, then locate the maximum with INDEX and MATCH. This approach identifies the most frequent category.
For text data, use UNIQUE and COUNTIF to count and then find the maximum.
What happens if there is no mode in the dataset?
If the data has no repeated values, MODE.SNGL and MODE.MULT may return #N/A. Use IFERROR to handle this case gracefully and present an alternative message or blank.
If there’s no mode, you’ll see an error unless you handle it with IFERROR.
How do I get all modes in a single cell?
Google Sheets does not return all modes in a single cell by a standard function. Use MODE.MULT for multiple cells (spill) or use a separate ARRAYFORMULA with INDEX to fetch the first mode as a workaround.
All modes usually spill; you can pick the first if needed.
Are there performance considerations for large ranges?
For very large datasets, use FILTER or LET to constrain calculations to relevant data and avoid recalculating on every change. This improves responsiveness in Google Sheets.
Limit the range to improve performance on big datasets.
What’s a quick way to verify the mode results?
Cross-check with a frequency table or a small pivot table showing counts per value. A quick frequency calculation can confirm which value is most common.
Double-check with a frequency table to verify the mode.
The Essentials
- Identify mode with MODE.SNGL for a single value.
- Use MODE.MULT to reveal all tied modes.
- COUNTIF+UNIQUE handles text data effectively.
- Wrap formulas with IFERROR to improve UX.
- Validate results with a frequency tally or pivot.
