How to make a histogram in Google Sheets

There are two answers and they are for different jobs. The built-in chart draws the shape from the Insert menu and picks the buckets for you. Counting the bins yourself takes a formula and gives you a number you can put in a promise. Here is both, on the same 24 wait times.

How-to for Google Sheets Bins, counts and the cumulative share the built-in path needs nothing installed

The picture, straight from the Insert menu

Google’s own instructions are three steps: “Select the cells you want to include in your chart”, then “Click Insert and then Chart”. If what appears is not a histogram, “Double-click the chart you want to change”, click Setup on the right, and pick Histogram under Chart type.

That is a real answer, and for plenty of jobs it is the whole answer. If the question is whether your numbers pile up in one place, run long on one side, or arrive in two humps, the chart shows you in seconds and there is nothing to install.

What it does not tell you is where it cut. Google’s help page for chart types describes the histogram in one sentence, “Use a histogram chart to show the distribution of a data set across different buckets”, and says nothing about how the buckets are chosen. The chart engine documents the rest: it “will choose the bucket size automatically, using a well-known algorithm”, and how many buckets that algorithm starts from is an option named numBucketsRule with three possible values, sqrt, sturges and rice, whose default is sqrt, the square root of the number of data points. Bucket size itself is “auto” until you set it.

You can set it. Google’s help page for histogram charts says the Customize tab lets you “change bucket size or outlier percentile”, so the built-in chart is not a black box. But a width is not an edge. Six minutes falls on a boundary only if the width you picked happens to divide to it.

Quoted from Google’s Add and edit a chart, Types of charts, Histogram charts and histogram chart pages, read 6 September 2026. Google’s wording, not ours, so you can check it.

The first bars you see are one opinion about your data out of at least three, formed without you. That is fine for a picture and not fine for a promise.

The same 24 calls, binned twice

Twenty-four support calls and how long each caller held, from 1.2 to 11.5 minutes, averaging 5.175 with a middle value of 4.95. Bin them once at the numbers the business promises customers, 2, 4, 6, 8 and 10 minutes, and once with the bins chosen automatically. Nothing else changes.

Answered within 6 minutes
70.8%
Fullest bin, your edges (4 to 6 min)
9 of 24 calls
Fullest bin, automatic edges (3.26 to 5.32 min)
9 of 24 calls
Calls past the last edge
1 with your edges, none automatic
Your edges: 2, 4, 6, 8 and 10 minutes
Bin (min)CallsCumulative %
228.3%
4633.3%
6970.8%
8487.5%
10295.8%
More1100.0%
Automatic edges: five equal bins from 1.2 to 11.5
Bin (min)CallsCumulative %
3.26520.8%
5.32958.3%
7.38683.3%
9.44395.8%
11.51100.0%
More0100.0%

Same numbers, same tool, two pictures. The first answers the question the business actually asks: 70.8% of callers were done inside six minutes, 95.8% inside ten, and one person waited longer than that. The second cannot answer it at all, because no edge lands on six. The nearest readings it offers are 58.3% by 5.32 minutes and 83.3% by 7.38, and neither is a promise anybody made.

Then look at what happened to the slowest call. With your own edges it sits alone in a row called More, where nobody can miss it. With automatic edges the top of the last bin is snapped to the largest value in the column, so the 11.5-minute call becomes the edge of the picture and the overflow row is empty. Same call, same data. One layout puts it in front of you and the other tucks it under the last bar.

Bin width is an argument you are making about your data, not a setting you accept. Put the edges at the numbers someone will hold you to, and the histogram stops being a picture and starts being a claim that can be checked.

How many bins, and who decided

The automatic edges above came from the square-root rule: the number of bins is the square root of the number of values, rounded up, and they are equal width from the smallest value to the largest, with the top edge snapped to the maximum so floating-point drift cannot push the largest value into the overflow row. Twenty-four calls gives five bins, each (11.5 minus 1.2) divided by 5, which is 2.06 minutes wide. It is about ten lines of code, in stat_histogram in the add-on’s source. That is the add-on’s own cut and not a redraw of the built-in chart: Google’s engine counts its buckets the same way and then works out a width of its own, and the widths in its own worked example are round numbers, so do not expect the two to land on the same edges.

That rule is a convention, not a fact about your data. Here is what the four common ones say about these same 24 numbers:

  • Square root. The square root of 24 is 4.9, rounded up to 5 bins. This is what Google’s chart engine defaults to for the number of buckets, and the rule used above.
  • Sturges. The base-2 logarithm of 24 plus one, rounded up: 6 bins.
  • Rice. Twice the cube root of 24, rounded up: 6 bins.
  • Freedman-Diaconis. Bin width is twice the interquartile range divided by the cube root of the count. Quartiles of 3.625 and 6.30 give an interquartile range of 2.675, a width of 1.85 minutes, and 6 bins across this range.

Three of the four say six and one says five, on one small column of numbers. Not one of them knows that six minutes is the number in your service promise, because none of them has been told what the data is for. That is the whole reason to type the edges yourself.

The bin table, with nothing installed

You do not need an add-on to get the counts. Google’s own FREQUENCY function bins a column into classes you name, and one formula plus a fill-down rebuilds the first table on this page.

  1. Put your values in a column, say A2:A25, and your bin edges in another, ascending, say 2, 4, 6, 8 and 10 in C2:C6.
  2. In D2, type the frequency formula. Google documents that it “calculates the frequency distribution of a one-column array into specified classes” and returns a result “one size larger than classes”, because “the final value is the number of elements in data greater than any of the class boundaries”. Five edges give six counts, so leave a row for the overflow.

    =FREQUENCY(A2:A25, C2:C6)

  3. For the cumulative share, put this in E2 and fill it down. That column is the one people quote.

    =SUM($D$2:D2)/COUNT($A$2:$A$25)

  4. To draw it, select the bin column and the count column and insert a column chart. The bars are then the bins you chose rather than the bins a rule chose, and the picture and the table can no longer disagree.

One thing to settle before you publish a number from it: which side of an edge a value belongs to. A bin edge is an upper limit that includes itself, in the add-on and in the formula alike. Google’s own wording for the extra row is the count of values “greater than any of the class boundaries”, which leaves a value sitting exactly on an edge inside that edge’s bin, and the add-on counts it the same way, so a call of exactly 6.0 minutes is inside the six-minute bin rather than the next one. If your own rule is different, or you would rather see the boundary written down where a reviewer can see it, count each band explicitly with COUNTIFS, which “returns the count of a range depending on multiple criteria”:

=COUNTIFS(A2:A25, ">4", A2:A25, "<=6")

Quoted from Google’s FREQUENCY and COUNTIFS reference pages, read 6 September 2026.

The column that gets quoted

A tall bar is not a sentence. “Seven callers in ten are answered inside six minutes, and one in twenty-four waited 11.5” is a sentence, and it survives being forwarded to somebody who never saw the chart. The cumulative column is where it comes from: the running share of every value at or below each edge.

It also puts a price on the tail, which is the part a shape alone hides. Thirty-two finished tasks in another model come back 50% done inside four days and 84.4% inside twelve, and the five that took longer than twelve days ate 44.6% of all the elapsed days in the quarter. The bars show a lump on the left. The cumulative column shows where the calendar went.

That one is How Long Do Our Tasks Really Take?, with the same three columns on task durations instead of hold times.

What a histogram will not tell you

  • Whether the peak is real. Twenty-four calls across six bins is four to a bin on average, and counts that small move when you barely touch them. Move the edges to 3, 5, 7 and 9 and the counts come back 4, 8, 7, 3, with 2 past the last edge: the peak slides one band left and flattens from 9 to 8. Nothing about the calls changed. The one thing that does not move is the tail, and it is one call: 11.5 minutes, with the next longest at 9.2.
  • What shape it is. A histogram shows a shape and never names one, and it will not tell you whether the average or a percentile is the safe number to plan on. That is the next question, and it has its own page: is my data normal, and does it matter here.
  • Whether the far value is an error or a fact. The same 11.5-minute call the automatic bins tuck under the last bar is the one the interquartile fences flag: quartiles of 3.625 and 6.30 put the upper fence at 10.3125, and exactly one row falls outside it. A histogram invites you to look at the tail. It does not tell you whether to fix it or plan for it.

If you want the counting done for you

Histogram is one of the 38 statistics tools in the Sortia sidebar. Point it at your column, point it at your bin column if you have one, tick Cumulative percentage and press Run. It writes a tab called Histogram Output with three columns, Bin, Frequency and Cumulative %, draws a column chart of the counts, and writes a line beside the table stating what it found. On the 24 calls above that line reads: “This run: the busiest bin is 6, holding 9 of 24 values (37.5%).” Leave the bin column empty and it falls back to the square-root rule described above, which is how the second table on this page was made.

It is free, and no plan buys a bigger version of it. The 24 calls are a template, What Shape Are Your Wait Times?, which loads into your sheet with the bin column already filled so you can move the edges and watch the picture move with them.

And if all you want is the shape on a slide, the built-in chart is in the Insert menu and there is nothing to install. That is a real answer too, and this page would be dishonest if it did not say so twice.