Skip to content
Back to all articles

How to make a bell curve in Excel: the overlooked scaling step

By Yurii Vasyliev6 min read
Laptop screen showing a bell curve chart on a desk

Learning how to make a bell curve in Excel is simple once you know the three pieces: a mean, a standard deviation, and a column of curve heights. Excel has no bell curve button, so you build the curve with the NORM.DIST function and plot it as a smooth scatter chart. This guide walks through that build. It then covers a step many tutorials skip, which is scaling the curve so it lines up with a histogram of your real data. The same logic works in Google Sheets, and the differences are near the end.

What you need before you start

You need one column of numbers, such as exam scores, sales per rep, or delivery times. A bell curve plots a normal distribution, and two values describe it fully: the mean and the standard deviation. MrExcel's tip on placing people on a bell curve starts the same way, by calculating both. Exceljet's NORM.DIST reference explains that the mean is the center of the curve, while the standard deviation shows how far values spread around it. The examples below assume 20 scores in A2:A21, so change the ranges to match your data.

How to make a bell curve in Excel with NORM.DIST

The build has three parts, and each one fits in a single column. Do them in order, because every column feeds the next. You do not need the Analysis ToolPak for any of it.

Step 1: Find the mean and standard deviation

Put the two summary formulas in D2 and D3. Use STDEV.S when your numbers are a sample of a larger group, and STDEV.P when they cover the whole group. The Microsoft support article on bell curve charts uses the older STDEV function, which is the sample version. Whichever you pick, stay consistent, because it sets the width of the curve.

D2: =AVERAGE(A2:A21)
D3: =STDEV.S(A2:A21)

Step 2: Build the x values

Skip sorting your raw data. Instead, build a fresh list of x values that runs from three standard deviations below the mean to three above, because the curve is almost flat beyond that. Start in F2 with the lower limit, the same idea Microsoft's article uses for its bin range. Then add a quarter of a standard deviation in each row below and fill down to F26. That gives 25 points in ascending order, which is exactly what a smooth scatter line needs.

F2: =$D$2-3*$D$3
F3: =F2+$D$3/4

Step 3: Calculate the heights and chart them

In G2, ask NORM.DIST for the height of the curve at each x value, and set the last argument to FALSE. According to Exceljet, NORM.DIST(5,3,2,FALSE) returns 0.121, the height of the curve at 5, while TRUE returns 0.841, the area to the left of 5. Fill the formula down to G26, select F1:G26, and choose Insert, then Scatter with Smooth Lines. The heights are small decimals because the total area under the curve equals 1, so low axis values are normal.

G2: =NORM.DIST(F2,$D$2,$D$3,FALSE)
Chart showing how to make a bell curve in Excel with a curve over histogram bars
A scaled NORM.DIST curve drawn over histogram bars of the same data.

You may also see the older method in Microsoft's article, which generates 2,000 random numbers and builds a histogram from them. It works, but it charts simulated values rather than your own. The NORM.DIST route is shorter and uses your real mean and spread. If you would rather describe the result in plain English, Formula Foundry's Excel formula generator can draft the column for you, though you should still check the cell references before you fill down.

The overlooked step: scaling the curve to match a histogram

Most people want the curve on top of a histogram, and that is where a plain NORM.DIST column falls short. The curve has an area of 1, so next to bars that are several units tall it hugs the bottom of the chart. The fix is a scale factor: the number of values multiplied by the bin width. In Ben Collins' histogram tutorial for Google Sheets, 1,000 scores sit in bins of 5, so he multiplies each curve value by 5,000. The scaled values then sum to 1,000, matching the number of scores.

H2: =G2*COUNT($A$2:$A$21)*$J$1
J1: 5

Here J1 holds the bin width, so 20 scores with a width of 5 give a factor of 100. Next, count the values in each bin with FREQUENCY or COUNTIFS, and chart those counts as columns. Add the scaled column as a line series on the same chart, and use the bin values as the curve's x values so the points sit above the bars. If you change the bin width later, update J1, because the bars and the curve must use the same width.

Check that your data is really bell shaped

Knowing how to make a bell curve in Excel is only half the job, because a curve built from your mean and standard deviation always looks symmetrical, even when your data is not. Compare it with the real bars. Also compare the mean with the median, since a gap between them hints at skew. The SKEW function boils that down to one number, and a value near zero means the data is roughly symmetrical.

Then test the empirical rule. Exceljet says 68.3% of the area lies within one standard deviation of the mean, and Ben Collins expects about 95% within two. This formula returns the share of your values within one standard deviation:

=COUNTIFS(A2:A21,">="&D2-D3,A2:A21,"<="&D2+D3)/COUNT(A2:A21)

A result far from 0.68 suggests your data is not normal, so treat the curve as a rough guide. With only 20 values, expect some wobble. You can also turn the curve into probabilities. Exceljet's example uses a mean of 80 and a standard deviation of 10, and it finds a 9.18% chance of scoring between 90 and 95.

=NORM.DIST(95,80,10,TRUE)-NORM.DIST(90,80,10,TRUE)

Common mistakes that break the curve

  • Using TRUE as the last argument, which draws an S-shaped cumulative curve instead of a bell.
  • Charting unsorted x values, which makes the smooth line zigzag.
  • Selecting the raw data column along with the x and y columns, which adds a stray series.
  • Picking the wrong standard deviation function, which changes the width of the curve.
  • Feeding in data where every value is identical, which makes the standard deviation zero, so NORM.DIST returns #NUM!.

Doing the same thing in Google Sheets

The formulas carry over almost unchanged. Ben Collins uses NORMDIST with the same four arguments, for example =NORMDIST(F2,$D$1,$D$4,FALSE), and he draws the curve as a smooth line chart. For the histogram overlay he builds a combo chart, with the curve as a line and the counts as columns. He fills the bin counts with ArrayFormula(FREQUENCY(scores,bins)).

To go further with that technique, read our guide to array formulas in Google Sheets. If you want a browser tool instead of formulas, our post on building a normal distribution graph covers an online bell curve generator and how to prep your data first.

Action steps

  1. Enter your data: Put your numbers in one column, such as A2:A21, with no blanks or text.
  2. Calculate the summary values: Use AVERAGE for the mean and STDEV.S or STDEV.P for the standard deviation.
  3. Build the x values: Start at the mean minus three standard deviations and add a quarter of a standard deviation per row.
  4. Add the heights: Use NORM.DIST with FALSE as the last argument and fill the formula down.
  5. Chart and scale: Insert a scatter chart with smooth lines, and multiply by the count and bin width to overlay a histogram.

Frequently asked questions

Do I need to sort my data before making a bell curve in Excel?

No. The x values you build in the helper column are already in ascending order, and those are the values the chart plots. The order of your raw data does not matter.

Should I use STDEV.S or STDEV.P?

Use STDEV.S when your numbers are a sample of a larger group. Use STDEV.P when they include every value in the group.

Why does my bell curve look flat next to my histogram?

NORM.DIST returns values for a curve with a total area of 1. Multiply each value by the number of data points and the bin width so it matches the bar heights.

Can I make a bell curve in Google Sheets?

Yes. Use NORMDIST with the same arguments, then insert a smooth line chart or a combo chart for a histogram overlay.

Share this article