Contact

FREQUENCY Function in Google Sheets: Formula, Examples & Troubleshooting

Array Intermediate Google Sheets

Count numeric observations into Google Sheets FREQUENCY bins, include the overflow row, and audit a response-time distribution with percentages.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Short answer

FREQUENCY(data, classes) produces a vertical count for each supplied class boundary, followed by an extra count for values above the largest boundary. It is useful for turning a column of response times into a compact distribution rather than reporting only an average.

Verification: NOT_TESTED_IN_GOOGLE_SHEETS. The examples below are independently counted. Google’s published example supports the numeric bin model, including a value exactly equal to 75; it is documentation evidence, not a fresh calculation in Google Sheets.

Syntax and arguments

=FREQUENCY(data, classes)

Both arguments are required. data is the numeric observation range; classes supplies the boundaries. Google describes a one-column input and a vertical output with one more row than the class range. It also says results follow the supplied class order. This guide uses ascending boundaries explicitly; it does not assume the function sorts an unsorted list. Google FREQUENCY reference.

For the ascending numeric model used here, interpret each boundary as the upper end of its class: at most 25, over 25 through 50, over 50 through 75, and over 75. The published audit supports that interpretation. Its direct equality example is 75; equality at 25 and 50 is inferred from the intended convention, not separately observed in that example.

Example: group support response times

A support manager has these twelve response times, in minutes. Put the values in A2:A13 with a heading in A1.

Cell Minutes Cell Minutes
A2 12 A8 44
A3 18 A9 58
A4 22 A10 66
A5 30 A11 75
A6 35 A12 81
A7 41 A13 95
  1. Enter 25, 50, and 75 in C2:C4.
  2. Leave D2:D5 available for four output values.
  3. Enter =FREQUENCY(A2:A13,C2:C4) in D2.
  4. Label E2:E5 with the corresponding intervals, including the overflow interval.

The independently expected result is:

Output cell Interval Count Included observations
D2 At most 25 3 12, 18, 22
D3 Over 25 through 50 4 30, 35, 41, 44
D4 Over 50 through 75 3 58, 66, 75
D5 Over 75 2 81, 95

The four counts total 12. Omitting the last row would lose the two longest responses and make the report look better than its underlying data.

The interval above 25 starts immediately above 25. A fractional observation such as 25.5 belongs conceptually in that interval; describing it as “26 to 50” would only be suitable for an integer-only dataset. This is a mathematical interpretation of the boundaries, not a separate fractional-input test.

Audit against Google’s published example

Google’s linked example uses observations 18, 30, 90, 91, 35, 27, 75, 28, and 58 with boundaries 25, 50, and 75. Its visible formula is =FREQUENCY(A2:A10,B2:B4) and the displayed counts are 1, 4, 2, and 2. In particular, 75 is counted in the third class. The example’s integer COUNTIF audit supports upper-inclusive bins, but its final audit row references an empty upper-bound cell; that row is not used to establish overflow behavior. The help page itself documents overflow. Published FREQUENCY example.

Advanced application: report service-level shares

In F2, enter =D2/SUM($D$2:$D$5) and fill through F5. Format these cells as percentages. Expected shares are 25%, 33.3333%, 25%, and 16.6667%.

For a target of at most 75 minutes, =SUM(D2:D4)/SUM(D2:D5) gives 83.3333%. The complementary share is 16.6667%. Keep the denominator tied to all four output rows, especially when changing the highest boundary.

As a separate audit of this clean numeric dataset, =COUNTIF(A2:A13,"<=75") should match =SUM(D2:D4), which is 10. Investigate differences before building a chart or excluding slow observations.

Troubleshooting and scope

  • The output looks incomplete: reserve the extra overflow row and check whether existing cells occupy the intended output range. No particular collision error code was established here.
  • Totals disagree: confirm the input range includes all twelve observations and excludes headings; check numeric storage rather than assuming imported text is handled identically.
  • Labels are misleading: distinguish upper-inclusive intervals from integer labels, and keep labels aligned with the supplied class order.
  • Repeated or unsorted boundaries: this guide does not establish their detailed allocation behavior. Use a deliberate ascending, distinct set for this workflow.
  • Blanks, logical values, errors, and text: coercion rules were not independently established; validate the source column instead of silently extrapolating from numeric examples.

Software and version notes

This is the documented Google Sheets function. Matching names in another spreadsheet product do not establish identical array expansion or coercion behavior. The reviewed sources do not establish an introduction date, a retirement date, or historical version-specific behavior.

Use COUNTIF for a single threshold audit, SUM for totals, and ISNUMBER to inspect imported data.

First-party references reviewed October 17, 2026: Google FREQUENCY help and the linked public example above.