Written and maintained by CASRAI Editorial Board
Last updated
To calculate probability in Excel, pick the function that matches the question you are asking. Use PROB when you have a table of outcomes and their probabilities, COUNTIF divided by COUNT when you have observed data, BINOM.DIST for a count of successes in repeated yes/no trials, and a difference of two NORM.DIST results for the chance that a normally distributed value falls between two limits. Most mistakes come from using a valid function on the wrong kind of question.
Which Excel function answers which probability question
| Your question | Function | What you supply |
|---|---|---|
| Probability of one outcome, or of a range of outcomes, from a table you already have | PROB |
Outcome values, their probabilities, and the limit(s) |
| How often something happened in my data | COUNTIF / COUNT |
A range of recorded values and one criterion |
| Chance of k successes in n independent yes/no trials | BINOM.DIST |
Number of successes, trials, success probability, cumulative or not |
| Chance that a normally distributed value falls below, above or between limits | NORM.DIST |
Value, mean, standard deviation, TRUE for cumulative |
What it is used for in research
Researchers calculate probabilities in a spreadsheet to turn a table of outcomes into a single risk figure, to report how often an event occurred in a sample, to check a binomial or normal model against data, and to get a quick answer before moving to a dedicated statistics package. A probability is always between 0 and 1; multiply by 100 to express it as a percentage. For the wider set of Excel statistics functions, see Excel statistics functions for research.
Install or access (official source only)
PROB, COUNTIF and NORM.DIST are worksheet functions: type them into a cell after an equals sign. Their syntax and examples are documented on Microsoft Support’s function pages, listed under Sources below. Follow the argument order shown there, because swapping arguments is the most common cause of a wrong answer rather than an error message.
Step-by-step: calculate probability in Excel
1. Probability from a table of outcomes with PROB
The syntax is PROB(x_range, prob_range, [lower_limit], [upper_limit]). x_range holds the numeric outcomes and prob_range holds the probability of each outcome.
- Enter the outcomes 0, 1, 2, 3 in A3:A6.
- Enter their probabilities 0.2, 0.3, 0.1, 0.4 in B3:B6. They add up to 1.
- For the probability of exactly 2, enter
=PROB(A3:A6,B3:B6,2). Excel returns 0.1. - For the probability that the outcome is between 1 and 3 inclusive, enter
=PROB(A3:A6,B3:B6,1,3). Excel returns 0.8, which is 0.3 + 0.1 + 0.4.
When upper_limit is left out, PROB returns the probability of the outcome equal to lower_limit. This is the Microsoft Support worked example.
2. Observed (empirical) probability with COUNTIF
The syntax is COUNTIF(range, criteria), with one criterion; use COUNTIFS for several. Criteria can be a number, a comparison such as ">55", a cell reference or text. Dividing the count by the number of values gives the observed relative frequency. That division is plain arithmetic, not a built-in probability function.
- Put 40 recorded numeric values in A2:A41.
- Enter
=COUNTIF(A2:A41,">55")/COUNT(A2:A41). - If 14 of the 40 values are above 55, the result is 14/40 = 0.35.
The 40 values and the count of 14 are an illustration of the arithmetic, not real data. This result describes your sample; it is an estimate of the underlying probability, not the probability itself.
3. Binomial probability with BINOM.DIST
For a count of successes in repeated yes/no trials, =BINOM.DIST(6,10,0.5,FALSE) returns 0.2050781, the probability of exactly 6 successes in 10 trials with a success probability of 0.5, matching the Microsoft Support example. The “at most”, “at least” and worked-example variants have their own pages: binomial probability calculator, probability mass function formula and probability of at least one.
4. Probability between two values with NORM.DIST
The syntax is NORM.DIST(x, mean, standard_dev, cumulative). With cumulative set to TRUE it returns the cumulative distribution function: the probability that a value is less than or equal to x. To get the probability that a value falls between a lower limit a and an upper limit b, subtract:
=NORM.DIST(b,mean,standard_dev,TRUE)-NORM.DIST(a,mean,standard_dev,TRUE)
Using the Microsoft Support example values (mean 40, standard deviation 1.5), =NORM.DIST(42,40,1.5,TRUE) returns 0.9087888. Because 40 is the mean, =NORM.DIST(40,40,1.5,TRUE) returns 0.5, so the probability of a value between 40 and 42 is 0.9087888 – 0.5 = 0.4087888. The probability of a value above 42 is 1 – 0.9087888 = 0.0912112. For the reverse question, finding the value that matches a given probability, see inverse normal.
Output and how to read it
- Every result above is a number between 0 and 1. Format the cell as a percentage only if you want to read it that way.
NORM.DISTwithcumulativeset toFALSEreturns the probability density function, not a probability. For a continuous variable, the probability of any single exact value is effectively zero; a density height must not be reported as a chance. UseTRUEand subtract to get a probability over an interval. The Microsoft Support example gives 0.10934 forFALSEand 0.9087888 forTRUEat the same inputs.PROBadds up the probabilities you typed in; it does not check that your table is a sensible model.- A
COUNTIFratio changes whenever the data change. APROBtable does not.
Troubleshooting
| Symptom | Cause (from the function documentation) |
|---|---|
PROB returns #NUM! |
Any value in prob_range is 0 or less, or greater than 1, or the values do not sum to 1 |
PROB returns #N/A |
x_range and prob_range contain different numbers of data points |
NORM.DIST returns #NUM! |
standard_dev is 0 or less |
NORM.DIST returns #VALUE! |
mean or standard_dev is not numeric |
COUNTIF ignores a second condition |
COUNTIF takes one criterion; use COUNTIFS for several |
Free alternatives in R and Python
| Task | Excel | R | Python (SciPy) |
|---|---|---|---|
| Normal cumulative probability | NORM.DIST(x,mean,sd,TRUE) |
pnorm(x, mean, sd) |
scipy.stats.norm.cdf(x, loc, scale) |
| Normal density | NORM.DIST(x,mean,sd,FALSE) |
dnorm(x, mean, sd) |
scipy.stats.norm.pdf(x, loc, scale) |
R and SciPy are free and documented at the links under Sources. For simulation-based probability rather than formulas, see Monte Carlo forecasting in Excel, and for drawing the normal curve itself see how to construct a normal distribution curve in Excel.
FAQ
How do I calculate probability in Excel?
Choose the function by the type of question: PROB for a table of outcomes and probabilities, COUNTIF divided by COUNT for observed frequency, BINOM.DIST for binomial counts and NORM.DIST for normal ranges. Each is entered as a formula starting with an equals sign.
How do I calculate the probability of a range of values?
With a table, give PROB both limits, for example =PROB(A3:A6,B3:B6,1,3). With a normal distribution, subtract two cumulative NORM.DIST results.
Why does PROB return #NUM!?
Because a probability in prob_range is 0 or less, or above 1, or the probabilities do not add up to 1.
Is COUNTIF/COUNT a true probability?
It is the observed relative frequency in your data. It estimates the probability of the event but does not prove it.
Sources (official docs)
- Microsoft Support, PROB function (checked 2026-10-29)
- Microsoft Support, NORM.DIST function (checked 2026-10-29)
- Microsoft Support, COUNTIF function (checked 2026-10-29)
- Microsoft Support, BINOM.DIST function (checked 2026-10-29)
- R documentation, The Normal Distribution (checked 2026-10-29)
- SciPy documentation, scipy.stats.norm (checked 2026-10-29)








