How Spredin's formulas are checked against Excel
Checked on 17 October 2026, with Spredin LITE 1.0.3.
Most people come to Spredin with workbooks they made in Excel. So the question that matters is a simple one: does a formula give the same answer here as it does there?
This page says how we check that, what we found, and where Spredin gives a different answer and why.
The short version#
- We took real workbooks from two public collections that other people gathered: SpreadsheetBench and FUSE.
- Spredin opened every one of them. Where Excel had saved its answers in a workbook, Spredin set them aside and calculated every formula itself.
- We compared over 5.6 million formula cells, one by one.
- 97.53% of the cells in SpreadsheetBench and 99.35% in FUSE give the answer Excel saved.
- Some of the rest differ on purpose. Some can never match, because the saved answer comes from another day. The others are faults or missing pieces, and they are on our list.
What was tested#
| Spredin | Spredin LITE 1.0.3, as released on 17 October 2026 |
| The answer to match | The result Excel stored for each formula when the workbook was last saved |
| Computer | Mac mini with an Apple M4 Pro chip, macOS 26.6.2 |
Where the workbooks come from#
We did not make them, and that is the point. A test we write ourselves can only find the mistakes we thought of.
- SpreadsheetBench: workbooks that people attached to questions on spreadsheet help forums. Many hold the kind of formula people ask for help with.
- FUSE: workbooks that researchers collected from the public web in 2015.
They are everyday files: budgets, timetables, price lists, stock counts, lab results, school marks. Some are tidy. Many are not. These are the two collections the open benchmark xlsx-corpus-bench uses. Their authors, licences and citations are under Data sources and attribution at the foot of this page.
How one workbook is checked#
- Excel already wrote an answer for every formula into the file when it was saved.
- Spredin opens the workbook and calculates every formula itself. It does not read the saved answers.
- Every formula cell is compared with the answer Excel saved.
Two numbers count as the same when they agree to nine significant digits. Text must match exactly. A cell Excel left empty matches an empty cell or 0.
A workbook is checked only when Excel saved answers for nearly all of its formulas (nine in ten or more). Files saved by other programs often carry no answers, and checking against them would test those programs, not Excel. Workbooks with no formulas have nothing to check.
What we found#
| SpreadsheetBench | FUSE | |
|---|---|---|
| Workbook files | 5,458 | 10,702 |
| Files Spredin could open | all of them | all of them |
| Files checked (formulas, with Excel's answers) | 2,240 | 3,303 |
| Formula cells compared | 562,576 | 5,123,480 |
| Same answer as Excel | 548,735 (97.53%) | 5,090,564 (99.35%) |
| Different on purpose | 6,364 (1.13%) | 7,280 (0.14%) |
Cannot be judged: calls TODAY, NOW or RAND, or the answer was saved by another program |
4,150 (0.73%) | 3,862 (0.07%) |
| Different, and should not be (or not read yet) | 3,327 (0.59%) | 21,774 (0.42%) |
Percentages are rounded down.
Where Spredin differs on purpose#
Excel is the reference in this test. But Excel has a few habits that trip people up every day, and we chose not to copy them. Each one costs us points in the table above. We would rather show them than hide them.
A number stored as text still counts as a number.
Files often hold numbers as text: an export from another system, a column
pasted from a web page. In Excel a lookup cannot find such a value even when
it is plainly there, and a SUM over the column is 0. In Spredin the lookup
finds it and the column adds up. Text you marked as text yourself stays text:
a leading apostrophe, leading zeros like 0057, or a number longer than 15
digits.
SUMIF and COUNTIF still work when they read another workbook.
In Excel these give #VALUE! whenever the other workbook is closed, and the
error goes away when you open it. The numbers are in your file all along.
Spredin uses them and gives the answer, and so do the formulas built on that
answer.
Where the saved answer cannot be judged#
TODAY, NOW and RAND. The answer saved in the file is from the day
it was saved, or from that day's random draw. No program can match it today,
Excel included. (Cells that only read such a cell cannot match either; they
are counted in the last row, because a formula does not say what the cells it
reads contain.)
Answers saved by another program. Some FUSE files were last saved by a
program other than Excel, and their saved answers are in that program's own
form (#N/A:lookupNotFound where Excel writes #N/A). There is no Excel
answer to compare with. FUSE has 3,582 such cells; SpreadsheetBench none.
Where Spredin differs and should not#
These are faults, missing pieces, or cases we have not read yet. The biggest ones:
In SpreadsheetBench (3,327 cells):
- Cells that read a
TODAY,NOWorRANDcell (about 940). They cannot match either, but a formula does not say what the cells it reads contain, so they are counted here. - Dates written as text, and month names (about 850). A text date read the
other way round, or a month shown in the language of the Excel that saved the
file:
enerowhere Spredin showsJanuary. - One workbook where each row builds on the row above (474). A difference in the sixteenth digit grows from row to row until a comparison comes out the other way.
- Lookups into a table in another workbook (447). Spredin shows
#REF!, which is what Excel shows while that workbook is closed. The saved answer was made while it was open. WEEKNUMwith week type 21, the ISO week (138). Not supported yet: a fault, and on our list.
In FUSE (21,774 cells):
- Lookups that reach back into themselves (about 9,200, in a handful of workbooks). Spredin reports a circular reference where Excel finds a value, because Spredin reads the whole lookup table and Excel reads only the cells it needs. A few workbooks are also built to calculate in a circle, a setting Excel has and Spredin does not.
- An old Lotus 1-2-3 setting (about 3,400, in workbooks that use it). It makes Excel count text as 0 in a sum. Spredin does not have it.
- "Precision as displayed" (about 3,200, in workbooks that use it). A setting that rounds every value to what its format shows. Spredin does not have it.
- Lookups into another workbook's cells that the file did not keep (about
1,250, one workbook). Spredin shows
#REF!. - Text that looks like a date (about 960, one workbook). Spredin read
" 2/3/13"as a date and formatted it; Excel left it as text. A fault, and on our list. - Cells that read a
TODAY,NOWorRANDcell (about 570).
The rest, in both collections, are cells we have not read yet.
What these numbers do not tell you#
- They are about answers, not looks. Colours, column widths, charts and number formats are not part of this test.
- The reference is the answer saved in the file, not Excel run today. Most of these files were last saved years ago, some by older versions of Excel. A stricter test has Excel open and calculate every workbook again on the same day. That needs Excel itself to run for hours, and it is not what this page reports.
- Where a workbook was made matters. A date typed as text, such as
3/4/2026, is the third of April in one country and the fourth of March in another, and a month name comes out in the language of the Excel that saved the file. Spredin read such text the American way, month first, in this run. - SpreadsheetBench keeps several copies of many workbooks (one for each version of a forum question), so one workbook's differences can count more than once.
- This is one run, on one Mac.
What the checks changed#
Reading the differences is how most of Spredin's remaining faults are found. Recent ones, all fixed in 1.0.3:
- A sheet named in letters other than A to Z (
=FRANÇAIS!A1,=データ!A1) could not be read in a formula unless it was written in quotes. SUBTOTAL(9, …)left out rows you had hidden by hand. Excel leaves out only the rows a filter hides.- A name that belongs to one sheet could read another sheet's cell.
=1.0001^365differed from Excel in the last digit a cell shows.- A lookup by a code with leading zeros (
000396) or by a long account number could find the wrong row, because the code was read as a number.
We do not change Spredin just to score higher. Where Excel's answer is what people expect, we follow Excel. Where we think Spredin's answer is the better one for a person, we keep it and say so, as above.
Data sources and attribution#
The workbooks belong to the people who made them and to the projects that gathered them. We use them only to check Spredin, and we do not copy or redistribute them.
- SpreadsheetBench. Zeyao Ma, Bohan Zhang, Jing Zhang, Jifan Yu, Xiaokang Zhang, Xiaohan Zhang, Sijia Luo, Xi Wang and Jie Tang. SpreadsheetBench: Towards Challenging Real World Spreadsheet Manipulation, 2024 (arXiv:2406.14991). Licence: CC BY-SA 4.0. github.com/RUCKBReasoning/SpreadsheetBench
- FUSE. Titus Barik, Kevin Lubick, Justin Smith, John Slankas and Emerson Murphy-Hill. Fuse, a corpus of spreadsheets from the web, 2015. Licence: CC BY 4.0. doi.org/10.5281/zenodo.581678
- xlsx-corpus-bench, the open benchmark that brings these two collections together. Its own test has Excel calculate every workbook again; the figures on this page are our own measurement against the answers saved in the files, not results published by its authors. github.com/witanlabs/xlsx-corpus-bench