NORM.DIST function

Returns the probability of a value in a normal distribution, or the probability density at that specific value.

=NORM.DIST(x, mean, standard_dev, cumulative)

Generate a NORM.DIST formula

Describe what you need. The generator will reach for NORM.DIST where NORM.DIST is the right tool, and tell you when it is not.

How to get a better answer
  • Name your columns by letter and by header: "column F (Net Value)" beats "the amount column".
  • State every condition, including the negatives — "not cancelled" changes the formula's shape.
  • Say where the data starts if it is not row 1, and whether it will grow.
  • Check the settings above match your spreadsheet: the wrong argument separator is a syntax error on your machine.

Arguments

How NORM.DIST reads its arguments
xrequiredmeanrequiredstandard_devrequiredcumulativerequiredNORM.DIST
ArgumentRequiredDescription
xRequiredThe value for which to calculate the distribution. Type: number. Can be any real number, positive or negative.
meanRequiredThe average (center) of the normal distribution. Type: number. Determines where the peak of the curve is located.
standard_devRequiredThe standard deviation (spread) of the distribution. Type: number. Must be positive; zero or negative values return #NUM! error.
cumulativeRequiredWhether to return cumulative probability (TRUE) or probability density (FALSE). Type: boolean. TRUE returns a value 0–1; FALSE returns the curve height.

Returns

A number between 0 and 1 (for cumulative) or a positive density value (for PDF).

Availability

Excel: All · Google Sheets: Supported

Worked examples

1. Probability that Housing spending stays below budgeted amount

CategoryMonthBudgetedActualVariance
HousingJan1000105050
HousingFeb1000980-20
HousingMar1000102020
=NORM.DIST(1000, AVERAGE(D2:D4), STDEV(D2:D4), TRUE)

Result: 0.2858

Historical Housing actuals average $1,016.67 with standard deviation $28.93. The result 0.2858 means there's approximately a 28.6% chance actual Housing spending will be $1,000 or less. Using cumulative=TRUE gives the full probability up to that point on the normal curve.

2. Calculate probability density of Food spending at budgeted level

CategoryMonthBudgetedActualVariance
FoodJan40042020
FoodFeb400380-20
FoodMar40041010
=NORM.DIST(400, AVERAGE(D5:D7), STDEV(D5:D7), FALSE)

Result: 0.01835

With cumulative=FALSE, this returns the height of the normal curve at $400 (not a probability). The Food distribution has mean $403.33 and standard deviation $21.86. The density value 0.0184 indicates how 'typical' that exact spending level is relative to the distribution shape—useful for graphing or understanding likelihood.

3. Probability that Transportation spending exceeds $310

CategoryMonthBudgetedActualVariance
TransportationJan30032020
TransportationFeb300290-10
TransportationMar30031515
=1 - NORM.DIST(310, AVERAGE(D8:D10), STDEV(D8:D10), TRUE)

Result: 0.4438

To find probability above a threshold, subtract the CDF from 1. Transportation actuals average $308.33 with standard deviation $13.12. The result 0.4438 (44.4%) means that based on historical patterns, spending above $310 occurs roughly 44% of the time. This is useful for risk assessment in budget planning.

Common errors

Which NORM.DIST error are you seeing?
NORM.DIST returned an error#NUM!
Verify your standard deviation calculation references data with actual variation. If all values are identical, consider a different analysis—a distribution with zero deviation is undefined.
#VALUE!
Ensure cumulative is a boolean (TRUE or FALSE, not quoted). For numeric arguments, verify they reference cells with numbers, not text-formatted values; use VALUE() to convert if needed.
#VALUE!
Check that x, mean, and standard_dev all reference numeric cells or numeric literals. If pulling from a calculated field, ensure it returns a number; wrap with VALUE() if the result is stored as text.
ErrorWhy it happensHow to fix it
#NUM!The standard_dev argument is zero or negative. NORM.DIST requires a positive standard deviation because spread cannot be zero or inverted.Verify your standard deviation calculation references data with actual variation. If all values are identical, consider a different analysis—a distribution with zero deviation is undefined.
#VALUE!The cumulative argument is not TRUE or FALSE—for example, entered as text "TRUE" or as a number like 1 or 0, or x/mean/standard_dev are text strings.Ensure cumulative is a boolean (TRUE or FALSE, not quoted). For numeric arguments, verify they reference cells with numbers, not text-formatted values; use VALUE() to convert if needed.
#VALUE!One or more of the numeric arguments (x, mean, or standard_dev) is text instead of a number, or refers to an empty cell.Check that x, mean, and standard_dev all reference numeric cells or numeric literals. If pulling from a calculated field, ensure it returns a number; wrap with VALUE() if the result is stored as text.

Tips and when to use something else

  • Use AVERAGE and STDEV on your historical data to calculate mean and standard deviation automatically—don't estimate these values by hand.
  • cumulative=TRUE (the default) calculates cumulative probability and is used most often. Use FALSE only when you specifically need the probability density curve height, typically for visualization.
  • To find probability in a range (e.g., between $300 and $350), call NORM.DIST twice with cumulative=TRUE and subtract: =NORM.DIST(350,...,TRUE) − NORM.DIST(300,...,TRUE).
  • NORM.DIST assumes a perfect normal (bell-curve) distribution. If your data is skewed or has outliers, results will be inaccurate—use MEDIAN or MODE.SNGL as a check, or verify normality with other tests.

Frequently asked questions

What's the difference between cumulative TRUE and FALSE in NORM.DIST?
cumulative=TRUE returns the cumulative distribution function (CDF): the probability that a random value is at or below x, ranging from 0 to 1. cumulative=FALSE returns the probability density function (PDF): the height of the normal curve at x, which is rarely used directly but needed for charting the distribution curve.
How do I find the probability a value falls between two numbers?
Use two NORM.DIST calls with cumulative=TRUE and subtract them: =NORM.DIST(upper_limit, mean, stdev, TRUE) − NORM.DIST(lower_limit, mean, stdev, TRUE). This gives you the probability of any value falling between those two boundaries.
What if my budget data doesn't look like a normal distribution?
NORM.DIST assumes a perfect bell curve, so it will give inaccurate results for skewed or multi-peaked data. Verify your data is roughly normal before relying on NORM.DIST. For other distribution shapes, consider MEDIAN or MODE.SNGL, or apply data transformations before calculating.
Can NORM.DIST predict my future budget overruns?
No. NORM.DIST calculates probabilities within a historical distribution—it answers 'how likely is this value given past data?' but does not forecast trends, inflation, or external changes. Use it for understanding historical patterns, not for predictive budgeting alone.

Need a different formula?

The full generator is not scoped to one function — describe any spreadsheet problem and it will pick.

Open the formula generator

Reviewed 2026-09-17