Blog · 22 September 2026 · Updated 25 October 2026 · 6 min read

Can ChatGPT Read Excel Files? Upload, Sheets & Formulas

Yes—ChatGPT supports XLSX, XLS and CSV. Learn how to check multiple sheets, handle formulas, fix incomplete analysis and verify a two-sheet comparison.

Two sheets. One join. Verify it.

Yes. ChatGPT supports Excel files such as .xlsx and .xls, as well as .csv, subject to your model, plan and account settings. OpenAI’s data-analysis guide describes how it can inspect uploaded data and, for some tasks, run Python. A successful upload does not prove it checked every sheet or formula. Ask it to list the sheet names and row counts before you ask a question across the workbook.

What happens when you upload it

Upload the workbook, name the task and ask which sheets and columns were inspected. When ChatGPT uses Python, review its code and outputs to see how it loaded and filtered the data. The method can vary by task; code execution is not guaranteed for every answer. How to upload Excel to ChatGPT covers the upload workflow.

An uploaded workbook is a snapshot. Ask ChatGPT to enumerate all worksheets, then name the ones needed for your analysis. If you edit your local file later, upload the new version before relying on updated results. This differs from a connected spreadsheet workflow that can work with the open workbook.

What it gets right, and what it doesn't

It is genuinely good at reading a clean table: one header row, consistent column types, no merged cells. It is noticeably worse the moment a workbook looks like something a real person built under time pressure — a title row above the headers, a blank spacer column, a mix of dates typed as text and dates typed as dates, an ID column where some rows have leading zeros. Any of those can make it misread a column's type, most often turning a text ID into a number and silently dropping the leading zero — which breaks any comparison that depends on the ID matching exactly.

Keep three things separate: reading a stored cell value, inspecting or writing a formula, and recalculating that formula in a spreadsheet. Do not assume that an uploaded workbook’s formulas were recalculated in Excel or that cached results are current. Ask what was read, check the formula text where it matters, and reopen any generated workbook in Excel to verify the result. ChatGPT for spreadsheets can also work with live workbooks and formulas; that is a different workflow from uploading a snapshot. For a formula you will maintain yourself, AutoSum is a simple place to start.

Why did ChatGPT miss a sheet or fail to read the file?

  1. Confirm the actual file type and the upload controls available to your account. Renaming a file extension does not convert it.
  2. Make a copy with one header row and one record per row. Split unrelated tables into separate sheets.
  3. Ask for the exact sheet names, row counts and missing columns. Compare the answer with the workbook before continuing.
  4. If analysis is incomplete, try a smaller copy containing only the required sheets and columns. Preserve the original.
  5. Check the current upload limits; size, file complexity and account allowances can all matter.

A worked example across two sheets

Say a workbook has two sheets: Orders (order_id, customer, amount) and Refunds (order_id, refund_amount). The useful question is which orders were refunded for more than they were sold for — a data-entry error worth catching before it reaches an accounting close.

Weak prompt: "What can you tell me about this spreadsheet?"

Better prompt: "This workbook has two sheets, Orders and Refunds, both keyed on order_id. For every order_id that appears in both sheets, tell me whether the refund amount is larger than the order amount. List only those rows, with both figures shown side by side. Do not total anything else."

The second version works because it names the two sheets, the shared key joining them, and the exact condition worth flagging — a task that plays to what the tool is actually built for: matching and filtering rows against a stated rule, not inventing one. OpenAI's own prompting guidance and Anthropic's both make the same point in their own documentation — state the task and its boundary in the same sentence, rather than a bare instruction and hoping the model infers where to stop. Before trusting the list it returns, check that the order_id column matches type in both sheets; if one sheet stores it as text and the other as a number, some genuine matches will silently fail to join, and the output will look complete while quietly missing rows.

A tiny test with a known answer

Create an Orders sheet with order_id and amount: A001, 100; A002, 80; A003, 50. Create a Refunds sheet with order_id and refund_amount: A001, 120; A002, 20; A004, 10. This is a synthetic example, not a benchmark of ChatGPT.

For the prompt above, the only over-refunded matching order is A001: 120 against 100. A002 does not qualify. A003 has no refund row, and A004 has no matching order. Ask for unmatched IDs separately so that missing matches cannot disappear silently. If real data has multiple refunds per order, decide whether to aggregate them before joining; the simple one-row-per-order example does not settle that rule.

Where the confidence outruns the accuracy

The failure mode is not a crash or a refusal. It answers fluently, and the answer can still be wrong — a row it should have matched but didn't because of a type mismatch, a count that is off by one, a total volunteered with more certainty than the underlying join deserves. This is a documented property of how these models generate text, not an occasional bug: they produce a plausible-sounding continuation, and a plausible number reads exactly like a correct one until you check.

There is a second, quieter failure worth knowing before you ask a follow-up question: if you preview the answer you expect — "I think about three orders look overpaid, is that right?" — research on how these models respond to a stated expectation has found they tend to agree with the number you handed them rather than checking independently. Ask the question without previewing the answer you're hoping for, and the check is worth more.

Checks before you use the output

  1. Recompute the join yourself with an actual formula — a helper column using XLOOKUP or VLOOKUP against the same two sheets — before repeating the model's list to anyone. Checking an AI answer when you are not the expert is the general habit, and a spreadsheet claim is exactly the kind that takes a minute to confirm and does real damage if it is wrong.
  2. Open two or three of the flagged rows yourself and read the raw cells. A model can point you toward something worth a look; it cannot certify that the row is actually wrong without you checking the source values.
  3. Check that the key column — order_id here — is formatted the same way in both sheets before trusting a match count. A number-versus-text mismatch on the join key is the single most common reason a row silently drops out.
  4. If the real question is a genuine statistical test on the numbers rather than a row-by-row match, the best AI for statistics covers which part of that job is safe to hand to a model and which belongs in a proper test, and how to add data analysis in Excel covers running that test in Excel's own Analysis ToolPak once the join above has given you a clean table to test.
  5. For a genuine optimisation across many rows — allocating a budget, minimising a cost — that is a job for Solver, not a chat upload; use the model to help frame the constraints, not to guess the answer.

This file-reading behaviour is one entry in a wider ChatGPT cheat sheet organised the same way — what the tool actually does well, a worked example, and the check to run before trusting the result. Can ChatGPT work with Google Docs covers the identical snapshot-versus-live trade-off for a document instead of a spreadsheet.

What to do Monday

Take a workbook you already have with more than one sheet and ask a specific, checkable cross-sheet question — not "analyse this" but something with a clear right answer you can verify in a minute, like the overpaid-refunds example above. Compare the list it gives you against a quick XLOOKUP of your own on the same two sheets. If Excel's own Quick Analysis tool can already answer the question with a formula, that's usually the safer route — reach for a chat upload for the matching and filtering work a formula can't easily express, not for arithmetic Excel already does natively. If you end up running this kind of check regularly, decide in advance what you would look at to notice it silently started missing rows — the same monitoring principle behind NIST's AI Risk Management Framework, scaled down to one workbook instead of a whole system.

Coursium teaches this kind of practical judgement directly — asking a tool a specific question and checking what comes back before anyone acts on it. Stay ahead of AI by learning the tools on your phone.