Statistical Distributions and Hypothesis Testing in Google Sheets
July 24th, 2026
Most of the statistics you need for real decisions — is this A/B test result real, how spread out are these scores, what's a reasonable forecast for next month — fit in a handful of Sheets functions. This walks through them together, using one running dataset: 200 test scores, a two-variant conversion experiment, and a small survey.
The normal distribution: NORM.DIST and NORM.INV
Say column A (A2:A201) holds 200 exam scores with a mean of 72 and a standard deviation of 9. NORM.DIST answers "what fraction of scores fall below this point," assuming a normal curve:
=NORM.DIST(85, 72, 9, TRUE)
This returns roughly 0.9247 — about 92.5% of students are expected to score below 85, so a score of 85 sits comfortably in the top decile.
NORM.INV runs the calculation in reverse: given a percentile, find the score. If you want the cutoff for the top 10% of students:
=NORM.INV(0.9, 72, 9)
That returns about 83.5 — anyone scoring above that is in the top 10%, assuming the normal approximation holds. Pairing these two lets you move freely between "what score is this rank" and "what rank is this score" without touching a z-table.
Comparing two samples: T.TEST
Now the A/B test. Variant A converted 40 out of 500 visitors on different days sampled as daily rates in B2:B31; variant B's daily rates are in C2:C31. T.TEST tells you whether the difference in means is likely real or just noise:
=T.TEST(B2:B31, C2:C31, 2, 3)
The 2 requests a two-tailed test (you don't know in advance which variant will win), and 3 treats the samples as two independent groups with unequal variance — the safe default for A/B tests where you can't assume both variants behave identically. The result is a p-value: below 0.05 and you can call the difference statistically significant at the conventional threshold; above it, and the observed lift could plausibly be random variation.
=T.TEST(B2:B31, C2:C31, 2, 1)
Use type = 1 instead only when the two columns are paired observations — the same day, same users, before and after — not independent groups.
Categorical data: CHISQ.TEST
Suppose a survey asks users to pick a favorite of three plan tiers, and you want to know if the observed split differs from an expected even split. Put the observed counts in A2:A4 (say 120, 95, 85) and the expected counts in B2:B4 (100, 100, 100 if you expected an even 300-response split). CHISQ.TEST returns the p-value for that comparison:
=CHISQ.TEST(A2:A4, B2:B4)
A small p-value (say 0.03) means the tiers are not chosen evenly — tier one is meaningfully more popular than chance would predict. This same pattern extends to any goodness-of-fit or independence question: observed frequencies in one range, expected in another, one formula for the verdict.
Linear relationships: CORREL
Back to the exam data — suppose column B (B2:B201) holds hours studied per student, and you want to know if more study time tracks with higher scores. CORREL computes Pearson's r:
=CORREL(A2:A201, B2:B201)
A result like 0.68 indicates a fairly strong positive relationship: students who studied more tended to score higher. Values close to 0 mean no linear relationship; close to -1 means a strong inverse one. CORREL doesn't prove causation, but it's the fastest way to screen dozens of candidate variables before building a full regression.
Summarizing a distribution: PERCENTILE and QUARTILE
For the same 200 exam scores, PERCENTILE pulls out any cut point:
=PERCENTILE(A2:A201, 0.9)
That's the 90th-percentile score — useful for "what score do you need to be in the top 10%" without assuming a normal distribution the way NORM.INV does. QUARTILE is the same idea restricted to the four standard quarters:
=QUARTILE(A2:A201, 1)
=QUARTILE(A2:A201, 3)
Those give the 25th and 75th percentiles — subtract one from the other and you have the interquartile range, a spread measure that ignores outliers, unlike standard deviation.
Measuring spread: VAR and STDEV
Speaking of standard deviation — STDEV and VAR quantify how spread out the scores are around their mean:
=STDEV(A2:A201)
=VAR(A2:A201)
If STDEV returns 9.1, that confirms the assumption used in the NORM.DIST examples above. A small STDEV means scores cluster tightly around the mean; a large one means wide variation, which changes how much you should trust any single score as representative.
Confidence intervals: CONFIDENCE
If those 200 scores are actually a sample standing in for a much larger population of students, you don't just want the sample mean — you want a margin of error around it. CONFIDENCE gives the half-width of that interval:
=CONFIDENCE(0.05, 9, 200)
With alpha 0.05 (a 95% confidence level), standard deviation 9, and sample size 200, this returns about 1.25. So the true population mean is likely within 72 ± 1.25, or roughly 70.75 to 73.25. Smaller alpha (say 0.01 for 99% confidence) widens the interval; a larger sample size narrows it.
Predicting values: LINEST and FORECAST
Finally, suppose you're tracking monthly signups over the last 12 months (A2:A13 = month index 1–12, B2:B13 = signup counts) and want a simple trend line. LINEST returns the slope and intercept of the best-fit line:
=LINEST(B2:B13, A2:A13)
If that returns {45, 310}, signups are growing by about 45 per month starting from a baseline of 310. FORECAST applies that same regression directly to predict a future point without extracting the coefficients yourself:
=FORECAST(15, B2:B13, A2:A13)
That estimates signups for month 15 — three months past your last data point — by extending the fitted line. Both functions assume the relationship is roughly linear; if a scatter plot of the data curves noticeably, treat the forecast as a rough guide rather than a precise prediction.
Putting it together
None of these functions require a statistics background to use correctly, but they do require matching the right tool to the question. NORM.DIST and NORM.INV answer questions about where a value falls in a known distribution. T.TEST and CHISQ.TEST answer whether an observed difference is real. CORREL, PERCENTILE, QUARTILE, VAR, and STDEV describe a dataset you already have. CONFIDENCE and FORECAST extend a sample or a trend into a statement about what you don't yet know. Used together on the same dataset, they turn a spreadsheet of raw numbers into an actual analysis.