gg
Home › Dev & Data › Spreadsheet Lite (formula evaluator)
Dev & Data

Spreadsheet Lite (formula evaluator)

Paste a CSV where any cell may start with = and this evaluates it like a spreadsheet: cell references, ranges, the usual operators with correct precedence, nineteen functions, and real error values such as #DIV/0! and #REF! that propagate instead of silently becoming zero. Cells are resolved by dependency, not by position, so a formula in A1 may depend on Z99. Circular references are detected and reported as #CYCLE! rather than hanging the page. — One honest note on scope: the roadmap entry for this tool mentions multiple saved sheets. Saving sheets is browser storage, not calculation, so it is not part of this engine; what you get here is the calculation itself, with CSV in and evaluated CSV out. Everything runs on your device.

Try it now

Worked example

| A | B | C | D | ---+------------+-----+-------+----------+ 1 | item | qty | price | total | 2 | Widget | 4 | 2.5 | 10 | 3 | Gadget | 3 | 10 | 30 | 4 | Doohickey | 7 | 1.25 | 8.75 | 5 | Subtotal | 14 | | 48.75 | 6 | Tax | | | 3.9 | 7 | Total | | | 52.65 | 8 | Cheapest | | | 8.75 | 9 | 10 or more | | | 2 | 10 | Note | | | lines: 3 | CSV (evaluated): item,qty,price,total Widget,4,2.5,10 Gadget,3,10,30 Doohickey,7,1.25,8.75 Subtotal,14,,48.75 Tax,,,3.9 Total,,,52.65 Cheapest,,,8.75 10 or more,,,2 Note,,,lines: 3 10 formula(s), 0 error(s).

Learn the method

Inputs

Frequently asked

Which functions are supported?

SUM, AVERAGE, MIN, MAX, COUNT, COUNTA, ROUND, ABS, IF, AND, OR, NOT, CONCAT, LEN, UPPER, LOWER, TRIM, SUMIF and COUNTIF. Anything else returns #NAME? rather than pretending to work. Ranges such as A1:B10 are accepted wherever they make sense, and columns A to ZZ are addressable.

Why does -2^2 give 4 and not -4?

Because that is what a spreadsheet does. In Excel, Google Sheets and LibreOffice a minus sign written in front of a number binds tighter than the power operator, so -2^2 means (-2)^2 = 4. Ordinary mathematical notation reads the same characters as -(2^2) = -4, which is why the answer can look wrong at first glance. If you want the maths reading, write -(2^2) or 0-2^2 — both give -4, because a minus BETWEEN two values is unaffected. And 2^3^2 is 2^(3^2) = 512, since ^ is right-associative here as it is everywhere else.

What happens with a circular reference?

You get #CYCLE! in the cells that form the loop, and in anything that reads them. The dependency graph is walked with an explicit stack rather than recursion, so a loop or a very long chain of references cannot overflow and crash the page.

Are the numbers exact?

Arithmetic is double-precision floating point, the same as every browser spreadsheet. Division by zero is #DIV/0!, an overflow is #NUM! and an undefined result is #VALUE! — none of them are ever shown as a stray infinity. Display rounds to ten decimal places, and that rounding never feeds another calculation. For money, ROUND explicitly at the point you want it.

Do SUMIF and COUNTIF support wildcards?

No. A criterion may be a number, a text value, or a comparison such as ">10", "<=0" or "<>done". Asterisks and question marks are matched literally rather than as patterns, which is safer than a half-working pattern engine.

What are the limits?

1,000 rows, 100 columns, 2,000 characters per formula, 32 levels of nesting and 20,000 cells in one range. Hitting a limit gives #LIMIT! or a visible message at the top of the output; nothing is dropped silently.

Related Dev & Data tools