How to Find P Value in Excel: T.TEST, CHISQ.TEST, F.TEST, and Data Analysis Toolpak
Find p value in Excel using T.TEST, CHISQ.TEST, F.TEST, and the Data Analysis Toolpak. Step-by-step formulas, interpretation, and common pitfalls.

The p value is the single number most analysts check before they trust a result. In Excel, you can get to it through a formula, through a ribbon dialog, or through the Data Analysis Toolpak — and which one you should use depends entirely on the test you are running. There is no universal "p value function" in Excel, which trips up almost everyone the first time. You pick a test based on your data, then you pick the formula that fits that test.
This guide walks through every method that actually works in current Excel versions on Windows, Mac, and the web. You will see T.TEST for comparing means, CHISQ.TEST for categorical data, F.TEST for comparing variances, CORREL paired with T.DIST.2T for correlations, and the full Data Analysis Toolpak workflow when you want a regression or ANOVA output that includes p values for every coefficient. Each section shows the formula, the syntax, what each argument means, and what the number you get back actually tells you.
If you've ever stared at =T.TEST(A2:A20, B2:B20, 2, 2) and wondered what those last two numbers do, this is the article for you. We'll also cover the older TTEST function (still works, but deprecated), what changed in Excel 2010 when the dotted-name versions arrived, and why =T.TEST(...) sometimes returns #N/A or a number you weren't expecting.
Using T.TEST for the most common p value
The T.TEST function returns the p value directly — you do not need to compute a t statistic first. The syntax is =T.TEST(array1, array2, tails, type). The first two arguments are your data ranges. The third argument is 1 for a one-tailed test or 2 for a two-tailed test. The fourth argument picks the kind of t-test: 1 for paired (same subjects measured twice), 2 for two-sample equal variance, and 3 for two-sample unequal variance (Welch's t-test).
Say you have before-and-after weights for 20 people in columns A and B. To test if the diet program actually changed weight, you'd write =T.TEST(A2:A21, B2:B21, 2, 1). Two tails because you don't know in advance whether weights went up or down. Type 1 because it's the same 20 people measured twice. A p value of 0.03 means there's a 3 percent chance you'd see a difference this big if the diet did nothing. Most fields treat 0.05 as the threshold, but biology and physics often want 0.01 or tighter.
The two-sample versions (types 2 and 3) compare two different groups. Type 2 assumes both groups have the same spread. Type 3 (Welch's) does not — it adjusts the degrees of freedom downward when variances differ. If you aren't sure, use type 3. It's more conservative and almost never gives you a worse answer than type 2 when variances are actually equal. The classic R default is Welch's for this exact reason.
P Value at a Glance
The One Rule That Saves You
A p value tells you the chance of seeing your data assuming the null hypothesis is true. It is NOT the chance the null hypothesis is true. This distinction is the source of most published statistical errors. Pick the test first based on your data type, then read the p value Excel returns — never pick a test because it gives you the p value you want.
CHISQ.TEST for categorical data
When your data is counts in categories — gender by product preference, region by survey response, treatment by outcome — you need a chi-square test of independence rather than a t-test. The Excel function is =CHISQ.TEST(actual_range, expected_range) and it returns the p value directly. You compute expected counts as (row total times column total) divided by grand total for each cell, then point CHISQ.TEST at both ranges.
A small example: 100 customers, split by city (NYC vs LA) and product choice (basic vs premium). Build the observed table in A1:C3. Build the expected table in E1:G3 using the row/column total formula. Then =CHISQ.TEST(B2:C3, F2:G3) gives the p value. A result below 0.05 says the two variables are not independent — city actually affects which product people buy.
The companion function CHISQ.INV.RT goes the other direction: give it a p value and degrees of freedom, and it returns the critical chi-square statistic. CHISQ.DIST.RT converts a chi-square value into a p value if you've already computed the statistic by hand. The same naming convention applies across most of Excel's statistical functions: a function ending in .RT works on the right tail, .INV goes from probability back to value, and bare names typically return a p value directly.
F.TEST when you're comparing variances
Sometimes the question isn't whether two groups have different averages — it's whether they have different spreads. Manufacturing tolerances, investment volatility, and test score consistency all fall into this category. =F.TEST(array1, array2) returns a two-tailed p value comparing the variances of two samples. There is no tails argument; if you want one-tailed, divide the result by 2 (or just use F.DIST.RT directly with the ratio of variances and the two degrees-of-freedom values).
This is also the test that often appears before a t-test. If F.TEST gives you a p value below 0.05, your two groups have significantly different variances, and you should switch your subsequent T.TEST from type 2 to type 3 (Welch's). It's a small habit that saves you from publishing a result that won't survive peer review.
One quirk: F.TEST is sensitive to non-normal data. If your distributions are skewed or have heavy tails, the p value can be wildly misleading. Levene's test or Brown-Forsythe are more robust alternatives, but Excel doesn't have them built in. You can compute them manually with AVERAGE, ABS, and the regular T.TEST framework, but at that point the Data Analysis Toolpak or a dedicated stats package starts to look attractive.

Pick the Right Test
Use T.TEST(range1, range2, tails, type). Type 1 paired, 2 equal variance, 3 unequal variance (Welch's). Tails 1 or 2.
Use CHISQ.TEST(actual, expected). Build observed and expected count tables first, then point the function at both ranges.
Use F.TEST(range1, range2). Returns a two-tailed p value. Divide by 2 for one-tailed if needed.
Compute r with CORREL, then feed t = r * sqrt((n-2)/(1-r^2)) into T.DIST.2T with n-2 degrees of freedom.
Run Data, Data Analysis, Regression. The output table includes a p value for every coefficient, plus the overall model F and its Significance F.
Run Data, Data Analysis, ANOVA Single Factor. The output ANOVA table includes an F statistic and a p value comparing all group means at once.
P value for a correlation coefficient
Excel's CORREL function gives you a correlation coefficient (Pearson's r) but it does not give you a p value. You have to convert. The formula is t equals r times the square root of (n minus 2) divided by (1 minus r squared), and then you feed that t into T.DIST.2T with n minus 2 degrees of freedom.
In Excel, that becomes =T.DIST.2T(ABS(CORREL(A2:A100, B2:B100)) * SQRT((COUNT(A2:A100) - 2) / (1 - CORREL(A2:A100, B2:B100)^2)), COUNT(A2:A100) - 2). It's ugly, but it works. The ABS() wrap is important because T.DIST.2T only accepts non-negative values. Without it, a negative correlation will give you #NUM!.
A cleaner approach: build a helper cell for r, another for n, another for t, and a final cell for the p value. Three short formulas read better than one twelve-argument monster, and they're far easier to debug when something looks off. For interactive dashboards, this also lets you display the correlation coefficient and its significance side by side, which is what most readers actually want to see.
The Data Analysis Toolpak: regression, ANOVA, and full output
When you want a regression with p values for every coefficient, or a one-way ANOVA across three or more groups, the Data Analysis Toolpak is the fastest path. It ships with Excel but is disabled by default. Turn it on via File then Options then Add-ins then Manage Excel Add-ins then Go, check Analysis Toolpak, then OK. On Mac, it's Tools then Excel Add-ins. Once installed, you'll see a new "Data Analysis" button on the Data tab.
For a regression, click Data Analysis then Regression. Point Y Range at your dependent variable, X Range at your predictors, check Labels if your first row has headers, and pick an output range. Hit OK. Excel drops a full ANOVA table, R-squared, adjusted R-squared, F statistic with its p value (labeled "Significance F"), and a coefficients table with t statistic, p value, and 95% confidence interval for each predictor. That coefficient p value column is what most people are actually looking for when they ask how to find a p value in Excel.
For ANOVA, pick the right flavor: Single Factor compares means across multiple groups, Two-Factor With Replication tests two grouping variables with multiple observations per cell, and Two-Factor Without Replication is the matched-block design. Each produces an ANOVA table with an F value and a p value. The p value is what you read off; the F statistic is mainly useful when you want to report it alongside the p value in a paper or report.
T.TEST Type Reference
Same subjects measured twice. Same row in both columns equals same subject. Both ranges must have identical length. Example: before/after weight loss study.
=T.TEST(A2:A21, B2:B21, 2, 1)
Common pitfalls and what to watch for
The first mistake is using TTEST instead of T.TEST. Both work and return the same value, but Microsoft renamed the function in Excel 2010 and the dotted-name versions are the official ones going forward. Some templates and add-ins still produce the old names, which can break when files move between very old and very new Excel versions. If you're sharing files, stick to T.TEST, CHISQ.TEST, F.TEST, and the newer naming throughout.
Second: the test type. Type 1 (paired) only works when your two ranges have the same number of rows and the rows correspond — same subjects, same order. Mixing up paired and unpaired tests is one of the most common errors in undergraduate statistics homework. If you're not sure, ask yourself: is row 5 in column A the same person/item/sample as row 5 in column B? If yes, paired. If no, unpaired.
Third: #N/A errors usually mean unequal sample sizes for a paired test. #DIV/0! from CORREL-based p value formulas means r is exactly 1 or -1, which makes the t statistic infinite. #NUM! from T.DIST.2T means you forgot the ABS() wrap on a negative correlation. None of these are bugs — they're Excel telling you the math broke.
Finally: a p value is not a probability that your hypothesis is true. It is the probability of seeing data this extreme assuming the null hypothesis is true. The distinction matters a lot when you start chaining tests or running many comparisons. Multiple testing correction (Bonferroni, Holm, FDR) is not built into Excel and has to be computed by hand if you need it.
The Data Analysis Toolpak is disabled by default. Enable via File, Options, Add-ins, Manage Excel Add-ins, check Analysis Toolpak. Without it, you cannot get a regression p value through the ribbon — you'd have to build the t statistic and p value manually from LINEST output, which is significantly more error-prone.
Practical workflow: from raw data to publishable result
Here's what a real analysis looks like end to end. You have a spreadsheet with two columns of measurements. First, plot them — scatter, histogram, or box plot — and look. If one column has an obvious outlier or the distributions look very different, you've already learned something the p value can't tell you. Visual inspection is free and prevents embarrassment.
Second, decide the test. Means go to t-test. Variances go to F-test. Categorical counts go to chi-square. Relationships go to correlation or regression. Three or more groups go to ANOVA. The test follows the data type and the question, not the other way around. Picking a test because it gives you the p value you want is the cardinal sin of applied statistics, and Excel makes it dangerously easy to do.
Third, run the test and read the p value. Compare to your pre-registered threshold (0.05, 0.01, whatever your field uses). Report the test, the test statistic, the degrees of freedom, and the p value — not just the p value alone. A p value of 0.04 from n = 8 means almost nothing; the same p value from n = 800 is much stronger. Effect size matters too. The means, the difference between them, and the standard deviation together tell a much richer story than the p value alone.
Fourth, sanity check. If your p value is shockingly small (1e-15), make sure you didn't accidentally select overlapping ranges or include header cells. If it's exactly 1, you probably have identical columns. Excel will not warn you about these — it just returns whatever the math says.
Before You Trust Your P Value
- ✓Plotted the data and inspected for outliers before running any test
- ✓Picked the test based on data type and research question - not the result
- ✓Confirmed paired tests have matching row counts and corresponding rows
- ✓Used T.TEST (not TTEST) for forward compatibility with newer Excel versions
- ✓Reported the test statistic and degrees of freedom alongside the p value
- ✓Checked effect size - a tiny p value with a tiny effect is rarely interesting
- ✓Adjusted for multiple comparisons if running more than one test on the same data
- ✓Used Welch's (type 3) when variances differ - confirmed with F.TEST first

Alternatives when Excel isn't enough
Excel handles 90% of routine p value work fine, but it has real limits. Repeated-measures ANOVA, mixed-effects models, survival analysis, and non-parametric tests like Wilcoxon and Kruskal-Wallis are either missing or require manual workarounds. If your analysis needs any of these, R or Python (with scipy.stats) is going to be faster and less error-prone than wrestling Excel into shape.
That said, Excel's strength is reproducibility for collaborators who don't code. A clean spreadsheet with named ranges, labeled formulas, and visible p values is something anyone can audit. A Python notebook is faster to write but harder to share with a non-technical reviewer. Pick the tool that fits the audience as much as the analysis.
For most homework, business reports, and exploratory work, the functions covered in this article — T.TEST, CHISQ.TEST, F.TEST, CORREL with T.DIST.2T, and the Data Analysis Toolpak — will cover everything you actually need. The trick is knowing which one to reach for, and that comes down to recognizing the shape of your data and the question you're asking, not memorizing function names.
Interpreting borderline p values
Real data almost never gives you a clean 0.001 or a clean 0.5. You get a 0.07 or a 0.043, and you have to decide what to do. The honest answer is that 0.05 is a convention, not a law. A p value of 0.051 and a p value of 0.049 are statistically indistinguishable, yet papers routinely treat them as opposite conclusions. The American Statistical Association published a formal statement in 2016 warning against this exact behavior.
When you have a borderline result, the right move is to report it as-is and let the effect size and confidence interval do the talking. A p value of 0.07 with a large effect and a tight confidence interval is more interesting than a p value of 0.04 with a microscopic effect and a wide interval. Excel's regression output gives you the 95% confidence interval right next to the p value for free, and it's almost always the more informative number.
Sample size is the other lever. A borderline p value at n equals 30 might become clearly significant at n equals 100, or it might wash out. If your study is small and your p value is in the 0.05 to 0.10 range, that's a signal to collect more data rather than to write up an inconclusive result. Power calculations live in their own world and Excel can't help much there, but free online calculators handle the most common cases in under a minute.
Documenting your analysis
The last step nobody talks about is documentation. A p value sitting in cell M47 with no context is useless six months later when you reopen the file. Add a comment to the cell explaining the test, the sample size, and the hypothesis. Better yet, build a small "analysis log" sheet that records date, test, ranges used, p value, and the decision you made. When your boss or a reviewer asks why you used a Welch's t-test instead of a regular one, you'll have an answer.
Named ranges help here too. Instead of =T.TEST(A2:A21, B2:B21, 2, 1), you can define "before_diet" and "after_diet" as named ranges, then write =T.TEST(before_diet, after_diet, 2, 1). It reads like English and survives column reordering. The same principle applies to thresholds: define a cell called "alpha" with value 0.05, then write =IF(p_value < alpha, "significant", "not significant") instead of hardcoding 0.05 in fifteen places.
Quick Function Reference
Returns the probability associated with a Student's t-test. Args: array1, array2, tails (1 or 2), type (1 paired, 2 equal variance, 3 unequal variance Welch's). Returns the p value directly, no manual t statistic calculation needed.
Returns the test for independence between two categorical variables. Args: actual_range (observed counts), expected_range (computed as row_total times column_total divided by grand_total). Returns the p value of the chi-square test.
Returns the two-tailed p value comparing variances of two samples. Args: array1, array2. Useful as a pre-test before deciding between T.TEST type 2 and type 3. Sensitive to non-normal data.
Converts a t statistic to a two-tailed p value. Args: x (must be non-negative, wrap in ABS), deg_freedom. Used to derive p values for correlations after computing r and converting to a t statistic manually.
Right-tailed chi-square distribution. Args: x (chi-square statistic), deg_freedom. Use when you've computed the chi-square value by hand and just need the p value without going through CHISQ.TEST.
Right-tailed F distribution for one-tailed F-tests or for manual ANOVA workflows. Args: x (F statistic), deg_freedom1, deg_freedom2. Returns the p value for the F statistic in the right tail.
Returns the margin of error for a confidence interval using the t distribution. Args: alpha (1 minus confidence level), standard_dev, size. Pairs naturally with t-test workflows when you want to report a CI alongside a p value.
Returns regression statistics as an array. Set stats argument to TRUE to get a 5-row output including standard errors, R-squared, and the F statistic. The Significance F p value can be computed via F.DIST.RT from this output.
Significance Thresholds by Field
Excel for P Values: Honest Tradeoffs
- +Functions built in - no installation beyond enabling the Toolpak
- +Spreadsheet format is easy for non-technical reviewers to audit
- +Data Analysis Toolpak covers regression, ANOVA, and t-tests in one workflow
- +Formulas update live when source data changes - great for what-if analysis
- +Outputs are reproducible and shareable with anyone who has Excel
- −No built-in support for non-parametric tests (Wilcoxon, Kruskal-Wallis)
- −Repeated-measures ANOVA and mixed-effects models are missing
- −No automatic multiple-comparison correction (Bonferroni, FDR)
- −F.TEST is sensitive to non-normality; Levene's test isn't available
- −Long formulas like the CORREL-based p value calculation get unreadable fast
Excel Questions and Answers
About the Author
Attorney & Bar Exam Preparation Specialist
Yale Law SchoolJames R. Hargrove is a practicing attorney and legal educator with a Juris Doctor from Yale Law School and an LLM in Constitutional Law. With over a decade of experience coaching bar exam candidates across multiple jurisdictions, he specializes in MBE strategy, state-specific essay preparation, and multistate performance test techniques.