In quantitative finance, quality control engineering, and scientific research, basic descriptive statistics—namely the arithmetic mean and standard deviation—tell only part of the story. Standard models often assume a textbook Gaussian bell curve (normal distribution), where data clusters symmetrically around the centre and extreme outliers remain predictably rare. However, real-world data distributions frequently exhibit structural asymmetry and “fat tails”, where extreme negative or positive outlier events occur far more frequently than normal models predict.
To accurately characterize the shape of any dataset and evaluate exposure to tail risk, analysts rely on higher statistical moments: Skewness (the third standardized moment) and Kurtosis (the fourth standardized moment). Microsoft Excel incorporates dedicated built-in functions—SKEW (and SKEW.P) and KURT—to calculate these metrics instantly across cell ranges. This comprehensive guide details how to implement, interpret, and leverage both functions in Microsoft Excel for rigorous statistical modeling.
Understanding Skewness and Kurtosis in Statistical Analysis
Before computing values in Excel, understanding how skewness and kurtosis describe distribution geometry is essential:
1. Skewness: Measuring Distribution Asymmetry
Skewness quantifies whether data points lean towards one side of the distribution mean:
- Zero Skewness (≈ 0): The data is symmetrical. The mean, median, and mode converge near the center, resembling a perfect normal distribution.
- Positive (Right) Skew (> 0): The tail on the right side of the distribution is longer or fatter. Most data points cluster at lower values, with a few exceptionally high values pulling the mean above the median (e.g. household income or startup valuations).
- Negative (Left) Skew (< 0): The tail on the left side is longer or fatter. Most observations cluster at high values, but occasional severe downside outliers pull the mean below the median (e.g. daily stock market returns or human lifespan data).
2. Kurtosis: Measuring Tail Risk and Peakedness
Kurtosis quantifies the propensity of a distribution to produce extreme outliers in its tails relative to a normal distribution. Excel calculates Excess Kurtosis, where the baseline normal distribution is calibrated to 0:
- Mesokurtic (≈ 0): Baseline normal distribution. Extreme outliers follow standard Gaussian probability bounds.
- Leptokurtic (> 0, Positive Excess Kurtosis): Heavy tails and a sharp central peak (“fat-tail” distribution). Outliers occur much more frequently than normal models anticipate. In financial portfolios, high positive kurtosis signals elevated crash risk.
- Platykurtic (< 0, Negative Excess Kurtosis): Thin tails and a flatter central peak. Data clusters evenly with fewer extreme outliers than a normal distribution.
To examine multimodal datasets that contain multiple distribution peaks, explore our companion tutorial on how to use the MODE.MULT function in Microsoft Excel for multimodal datasets.
How to Use the SKEW and SKEW.P Functions in Excel
Excel provides two functions for skewness depending on whether your data represents an entire population or a sample:
1. SKEW (Sample Skewness)
Use SKEW when your dataset represents a sample drawn from a larger population (such as 250 daily trade returns out of historical market data). The formula syntax is:
=SKEW(number1, [number2], ...)
Example: To calculate the sample skewness of investment returns stored in cells B2:B100:
=SKEW(B2:B100)
2. SKEW.P (Population Skewness)
Introduced in modern Excel builds, SKEW.P computes skewness when you have the entire universal population (such as all employee salaries across an enterprise):
=SKEW.P(B2:B100)
How to Use the KURT Function in Excel
The KURT function calculates sample excess kurtosis based on the fourth central moment:
=KURT(number1, [number2], ...)
Example: To evaluate the tail risk of portfolio returns in B2:B100:
=KURT(B2:B100)
Important Calculation Note: Excel’s KURT function automatically subtracts 3 from the raw fourth moment. Therefore, an output of 0 represents a normal distribution. If the function returns +2.45, your dataset is leptokurtic and carries fat-tailed outlier exposure.
Step-by-Step Practical Implementation Example
Suppose you are auditing monthly delivery lead times for an international supply chain, stored in cells C2:C50:
- In cell
E2, calculate the average:=AVERAGE(C2:C50) - In cell
E3, calculate the median:=MEDIAN(C2:C50) - In cell
E4, compute skewness:=SKEW(C2:C50) - In cell
E5, compute excess kurtosis:=KURT(C2:C50) - Interpret the combined results:
- If
SKEWis+1.85andKURTis+4.20, your operations suffer from occasional catastrophic delays (long right tail) with extreme outlier occurrences far beyond what a normal distribution predicts. Standard average-based buffer times will prove insufficient.
- If
To visualize the comparison between target medians and distribution spreads cleanly, review our guide on how to create and customise a lollipop chart in Microsoft Excel.
Automating Distribution Audits with LET and LAMBDA
If you perform distribution auditing regularly across multiple workbooks, you can consolidate skewness and kurtosis evaluations into a single reusable custom formula:
=LAMBDA(data_range,
LET(
s, SKEW(data_range),
k, KURT(data_range),
HSTACK(
IF(s > 0.5, "Right-Skewed", IF(s < -0.5, "Left-Skewed", "Symmetrical")),
IF(k > 1, "Fat-Tailed (High Risk)", IF(k < -1, "Thin-Tailed", "Normal-Tailed"))
)
)
)
To master advanced custom functional programming in Excel, check out our guide on how to build recursive LAMBDA functions in Microsoft Excel.
Troubleshooting Common Errors in SKEW and KURT
1. Function Returns #DIV/0!
Both skewness and kurtosis require a minimum number of valid numeric observations:
SKEWrequires at least 3 distinct numeric values (sample sizen >= 3). If the range contains fewer than 3 numbers, it divides by zero.KURTrequires at least 4 distinct numeric values (sample sizen >= 4).- If all numbers in the sample are identical, the sample variance equals zero, causing both functions to return
#DIV/0!.
2. Function Returns #VALUE!
If individual arguments passed directly into the function contain literal text strings that cannot be coerced into numbers, Excel triggers #VALUE!. When passing cell ranges (e.g. A2:A50), Excel automatically ignores empty cells, boolean values, and text entries.