Written and maintained by CASRAI Editorial Board
Last updated
Excel’s documented function list includes no formal normality test. What it does document are the functions that describe the shape of a sample, SKEW and KURT, plus NORM.S.INV, which is the building block for a normal Q-Q plot. Together they let you check whether a sample looks normal; they do not give a p-value. For a formal test, NIST names the Shapiro-Wilk test as one that checks whether a sample comes from a normal distribution, and it is available in statistical software such as R and SciPy rather than as a standard worksheet function.
This page walks through the checks Excel supports using the sample values from Microsoft Support’s function documentation, so you can reproduce every number below, and then says clearly where to hand off.
What a normality check is used for in research
Many common procedures, including the t test and ANOVA, are described with a normality assumption about the data or the residuals. A normality check is the step that asks whether that assumption is plausible for your sample. For the underlying distribution, see normal and standard normal distribution; for the wider question of what to do with the answer, see parametric vs non-parametric tests.
In Excel the checks fall into two groups:
- Numeric shape summaries: skewness (
SKEW) and excess kurtosis (KURT). - A graphical check: a normal Q-Q plot built from sorted data and
NORM.S.INV. The Q-Q plot guide explains how to read one.
Install or access (official source only)
SKEW, KURT, SMALL, COUNT and NORM.S.INV are worksheet functions, so there is nothing to install for the steps below. If you also want the Data Analysis tools (for example descriptive statistics output), load the Analysis ToolPak, following Microsoft Support’s “Load the Analysis ToolPak in Excel”:
- Windows: File > Options > Add-ins. In the Manage box, select Excel Add-ins and choose Go. Tick Analysis ToolPak and choose OK.
- Mac: Tools > Excel Add-ins. Tick Analysis ToolPak and choose OK. Restart Excel; Data Analysis then appears on the Data tab.
Step-by-step: check normality in Excel
Use this sample, which is the example data in Microsoft’s SKEW and KURT documentation. Enter the ten values in cells A2:A11:
3, 4, 5, 2, 3, 4, 5, 6, 4, 7
Step 1. Skewness
- In an empty cell enter
=SKEW(A2:A11). - The result for this sample is 0.359543, which matches Microsoft’s documented example.
Step 2. Kurtosis
- In another empty cell enter
=KURT(A2:A11). - The result for this sample is -0.151799637, which matches Microsoft’s documented example.
Step 3. Build a normal Q-Q plot
Plotting positions of the form (i – 0.5) / n are one common convention; the choice is the author’s and is stated here so you can reproduce the result. Put the headers Sorted, i, p and Theoretical z in B1:E1, then:
- In B2 enter
=SMALL($A$2:$A$11,C2)and fill down to B11.SMALL(array,k)returns the k-th smallest value, so this sorts the data without changing column A. - In C2:C11 enter the ranks 1 to 10.
- In D2 enter
=(C2-0.5)/COUNT($A$2:$A$11)and fill down to D11. This gives 0.05, 0.15, …, 0.95. - In E2 enter
=NORM.S.INV(D2)and fill down to E11. - Select E2:E11 and B2:B11 (theoretical z first, sorted data second) and insert a scatter chart from the Insert tab. The x-axis is the theoretical normal quantile and the y-axis is the observed value.
For the sample above, the theoretical z values come out as -1.645, -1.036, -0.674, -0.385, -0.126, 0.126, 0.385, 0.674, 1.036 and 1.645.
| Sorted value | Plotting position p | Theoretical z |
|---|---|---|
| 2 | 0.05 | -1.645 |
| 3 | 0.15 | -1.036 |
| 3 | 0.25 | -0.674 |
| 4 | 0.35 | -0.385 |
| 4 | 0.45 | -0.126 |
| 4 | 0.55 | 0.126 |
| 5 | 0.65 | 0.385 |
| 5 | 0.75 | 0.674 |
| 6 | 0.85 | 1.036 |
| 7 | 0.95 | 1.645 |
The same construction for a fitted normal curve is covered in how to construct a normal distribution curve in Excel.
Output and how to read it
- SKEW: Microsoft documents this as the skewness of a distribution. A value near zero indicates no marked asymmetry; the sign shows which tail is longer. See left-skewed vs right-skewed.
- KURT: Microsoft documents that a positive value indicates a relatively peaked distribution and a negative value a relatively flat one, compared with a normal distribution. Our sample’s -0.15 is slightly flat.
- Q-Q plot: points lying close to a straight line are consistent with normality; systematic curvature or a bent tail suggests departure.
None of these produces a p-value, so none of them is a significance test. They are descriptive checks. A sample of ten points, as above, can look tidy by chance and still come from a non-normal population, so treat the numbers as a screen. NIST describes the Shapiro-Wilk test as testing whether a random sample comes from a normal distribution, with small values of W as evidence of departure from normality. That is the formal route; the normality of distribution guide discusses how formal tests and plots fit together, and Shapiro-Wilk test in R shows the test itself.
Troubleshooting
| Symptom | Cause (per Microsoft Support) |
|---|---|
SKEW returns #DIV/0! |
Fewer than three data points, or the sample standard deviation is zero. |
KURT returns #DIV/0! |
Fewer than four data points, or the standard deviation is zero. |
NORM.S.INV returns #NUM! |
The probability is less than or equal to 0, or greater than or equal to 1. Plotting positions such as (i – 0.5) / n stay inside that range. |
NORM.S.INV returns #VALUE! |
The probability argument is nonnumeric. |
SMALL returns #NUM! |
The array is empty, k is zero or negative, or k is larger than the number of data points. |
| Result ignores some cells | For SKEW, text, logical values and empty cells in a reference are ignored, but zeros are included. |
Free alternatives for a formal test
| Tool | Formal normality test | CASRAI guide |
|---|---|---|
| R | shapiro.test(), the Shapiro-Wilk test |
Shapiro-Wilk test in R |
| SciPy (Python) | scipy.stats.shapiro |
SciPy stats |
SPSS is not free software, but if your institution provides it, see testing normality in SPSS. For a test that compares a sample with a reference distribution, see Kolmogorov-Smirnov test.
FAQ
Does Excel have a built-in normality test?
Excel’s documented statistical functions include SKEW, KURT and NORM.S.INV, which support descriptive checks and a Q-Q plot, but not a normality significance test. For Shapiro-Wilk, use R or SciPy.
Can I check normality in Excel with a histogram?
A histogram is a rough visual check, and the histograms and the normal distribution guide covers reading one. A Q-Q plot is easier to judge by eye for small samples because departures show as deviations from a straight line.
How many data points do I need for SKEW and KURT?
At least three for SKEW and four for KURT; fewer returns #DIV/0!. Those are only the minimums for the formula to compute, not sample sizes that make the result reliable.
Sources
- Microsoft Support, SKEW function: https://support.microsoft.com/en-us/office/skew-function-bdf49d86-b1ef-4804-a046-28eaea69c9fa (checked 2026-10-29)
- Microsoft Support, KURT function: https://support.microsoft.com/en-us/office/kurt-function-bc3a265c-5da4-4dcb-b7fd-c237789095ab (checked 2026-10-29)
- Microsoft Support, NORM.S.INV function: https://support.microsoft.com/en-us/office/norm-s-inv-function-d6d556b4-ab7f-49cd-b526-5a20918452b1 (checked 2026-10-29)
- Microsoft Support, SMALL function: https://support.microsoft.com/en-us/office/small-function-17da8222-7c82-42b2-961b-14c45384df07 (checked 2026-10-29)
- Microsoft Support, Load the Analysis ToolPak in Excel: https://support.microsoft.com/en-us/office/load-the-analysis-toolpak-in-excel-6a63e598-cd6d-42e3-9317-6b40ba1a66b4 (checked 2026-10-29)
- NIST/SEMATECH e-Handbook of Statistical Methods, 7.2.1.3 Anderson-Darling and Shapiro-Wilk tests: https://itl.nist.gov/div898/handbook/prc/section2/prc213.htm (checked 2026-10-29)
- SciPy manual, scipy.stats.shapiro: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.shapiro.html (checked 2026-10-29)








