Spredin

Coming from Excel

This is the same document you'll find inside Spredin under Help.

Spredin is built for Excel users moving to a Mac. Your muscle memory should mostly just work — this page maps what's identical, what moved, and what's different (usually: more powerful).

Your hands already know it#

Keyboard shortcuts (Windows → Mac)#

You pressed on Windows On the Mac What it does
Ctrl+C / X / V ⌘C / ⌘X / ⌘V copy / cut / paste (paste-special in Edit menu). A paste starts at the top-left of the selection; one copied cell fills a selected range. Cut and paste moves the cells, as in Excel: they stay, outlined, until you paste (⌘. cancels), the formulas that read them follow, and the moved formulas keep their references; their dropdowns and conditional formats move with them, and so do chart ranges on the same sheet. It moves to another sheet of the workbook too. A formula that read a cell the paste wrote over shows #REF!. Pasted in another window a cut is a copy whose source is emptied
Ctrl+Z / Ctrl+Y ⌘Z / ⇧⌘Z undo / redo. The cells it changed are selected and scrolled into view, on whichever sheet they are
Ctrl+B / I / U ⌘B / ⌘I / ⌘U bold / italic / underline the selection, on or off
Alt+Enter ⌥Return a line break inside the cell you are typing in; the cell wraps and the row grows to show it, as in Excel
Shift+Space / Ctrl+Space ⇧Space / ⌃Space select the whole row / the whole column (if your Mac uses ⌃Space to switch input sources, click the column's header instead)
Ctrl+F / Ctrl+H ⌘F find & replace — Next, Previous, Replace, Replace all; this sheet or the whole workbook. Find looks at what cells show; Replace also changes formulas, as Excel's does, and *, ? and ~ are Excel's wildcards
Ctrl+S / F12 ⌘S / ⇧⌘S save / Save As — pick Spredin Workbook or Excel (.xlsx) in the File Format menu (with AutoSave on, Save a Copy…)
Ctrl+P ⌘P Print — page setup and a live preview, then the Mac print panel or Save as PDF…
Ctrl+Arrow ⌘Arrow jump to the edge of the data block
Ctrl+Shift+Arrow ⇧⌘Arrow extend selection to the edge
Ctrl+A ⌘A select the table around the active cell; press it again (or click the box where the headers meet) for the whole sheet. ⌘-click a header to add a column or row to the selection
PageDown / PageUp same move one screenful down / up (⌥ for sideways)
Ctrl+PageDown / Ctrl+PageUp same, or ⌥→ / ⌥← next / previous sheet
Home same jump to column A of this row
Ctrl+Home ⌘Home jump to A1
Ctrl+End ⌘End jump to the last cell of the used range
Tab / Enter in a selection same walk inside the selected block and wrap (Tab across, Enter down). The active cell is where the selection started, so what you type fills the block in order; with several ⌘-clicked areas the walk goes on into the next one
Tab, Tab, … then Enter same type across a row with Tab, press Enter, and the next row starts back in the column where you began, as in Excel — so a table typed row by row stays in its columns
F2 F2, ⌃U, double-click, or just start typing edit the active cell (Enter moves down, as in Excel)
Ctrl+Enter ⌘Return or ⌃Return put what you typed in every selected cell and stay there — a formula's references follow each cell, as a fill does. With one cell selected it enters and stays on the cell
Alt+= (AutoSum) ⇧⌘T AutoSum — a total of the numbers above (or to the left); on a selected block, a total under each column; on a selected row or column of empty cells, a total in each
Alt menu keys ⌘K the command palette — type what you want ("merge", "freeze", "pivot")

Most Mac keyboards have no Page keys — PageDown is fn+↓ and PageUp is fn+↑, so switching sheets is ⌃fn↓. That is why Excel for Mac also binds ⌥→ / ⌥←, and so do we: on a laptop it is the one worth learning.

The fastest way to find anything: ⌘K and type a word. Every menu action is in the palette — Settings and Help included (a theme is "Theme: Fjord"). The menu row in the window is reachable by Tab and Enter as well. The Mac menu bar at the top of the screen holds the same menus (File, Edit, Insert, Format, Data, Rows/Cols, Tools, Settings, Help), so the search box in its Help menu finds every command too.

Where things live#

In Excel In Spredin
Home → formatting The format toolbar (bold/borders/fills/number formats)
Home → Number Format box, Format Cells → Number The toolbar's format box or Format Cells (⌘1): Short date, 14-Mar-25, Mar-25, long date, 1:30 PM, duration, currencies, percent. Custom… in the toolbar's box takes any Excel code
Data → Sort / Filter / Remove duplicates Data menu (multi-key sort, AutoFilter, dedupe)
Insert → PivotTable Insert → Pivot Table… (output goes to a new sheet)
PivotTable Analyze → Refresh The refresh button beside the pivot (next to PivotTable Fields), or right-click a pivot cell → Refresh Pivot Table. As in Excel, a pivot does not follow its source until you refresh it.
Insert → Chart Insert → Chart from Selection — then ⚙ on the chart card for detailed options
View → Freeze Panes Rows/Cols → Freeze Panes / Freeze Top Row / Freeze First Column
View → Gridlines Rows/Cols → Gridlines (a tick while shown), per sheet. A file saved with gridlines off opens with them off
File → Print / Page Layout File → Print… (⌘P) — page setup and preview in one dialog; File → Export as PDF…
Formulas → Trace Precedents ⌘-right-click a cell — precedents blue, dependents orange (⌘-click adds a cell to the selection, as in Excel)
Review → New Comment Insert → Comment on Cell…, or right-click → Comment on Cell… (hover shows it)
Conditional Formatting Format → Conditional Formatting… (rules, color scales, data bars; the dialog lists the sheet's rules, and each can be changed or removed)
Right-click a sheet tab → Hide / Unhide The same: right-click a sheet tab → Hide Sheet, and that menu lists Unhide Sheet: name for each hidden sheet; also Insert → Hide Sheet and Insert → Unhide Sheet. A hidden sheet has no tab, ⌥→ and Ctrl+Page Down step over it, and its cells still count in formulas. A workbook keeps at least one visible sheet
Text to Columns Format → Split Cell by Symbol… (also on the right-click menu). The parts are entered as if typed, so dates and amounts come out as dates and numbers, and it asks before replacing anything already in the cells to the right
Data → Get Data / Power Query Tools → Show Python Panel — see the honest note below
Data → Power Pivot / Data Model not available — see below
Data → From Database Data → Connect to Database… — PostgreSQL, MySQL/MariaDB, SQLite. Read-only: the connection itself is opened read-only, and Spredin runs a single SELECT/WITH and imports the result; a result cut at the row limit says so. It cannot write to your database, by design. Encrypted: write sslmode and sslrootcert in the connection string (MySQL: ssl-mode, ssl-ca), or choose your company's certificate with CA certificate…; Test connection says whether the connection is encrypted, and the server's certificate is always checked. A database on your own Mac connects as before. A SQLite connection names a file, so Spredin asks before opening it, showing the path

Opening your Excel files#

File → Open a .xlsx: every sheet arrives with values, formulas, number formats, cell styling, merged cells, column/row sizes, frozen panes and comments. Modern functions come through cleanly — Excel stores XLOOKUP/IFS/CONCAT/… with an internal _xlfn. marker and sometimes an @ operator; Spredin strips both so =XLOOKUP(…) evaluates immediately. A function Spredin doesn't have yet shows a clear #NAME? (not a silent wrong number). Over 330 functions are supported — nearly all of the ones Microsoft lists as most commonly used, LAMBDA and the array-shaping ones (TAKE, DROP, VSTACK…) included. What is missing is spilling (see below) and a few of the newest, such as GROUPBY, PIVOTBY and the REGEX functions. A sheet too large to open is named when the workbook opens and the rest of it opens; Spredin then will not save over that file, which would lose the sheet — use Save As.

Help → Formula Reference explains every function in plain words: what it is for, how Spredin works it out, how that compares with Excel, the errors it gives and when, and a worked example. Spredin Pro also draws each example as mathematics, and its Formula Preview setting shows the selected cell's formula under the formula bar typeset the same way, with a plain line for each function it names.

The status line after opening says what needs a second look. It counts the spilling formulas (Excel 365): each shows only its first value, and the cells it spilled into keep Excel's last results and do not recalculate. It also counts the data-validation rules that use a formula: they are kept, and saved back to Excel, but Spredin does not check entries against them.

We check the formula engine by opening real Excel workbooks and comparing every formula against the result Excel itself last computed and saved in the file. It is an ongoing process rather than a finished one, and it is how most of the differences that remain get found.

Excel charts open as Spredin charts, drawn from the same cells; a small Excel badge on each says what Spredin draws differently, and a kind it cannot draw (a map, a 3-D surface) shows as a placeholder. Until you change a chart here, saving as Excel writes it back exactly as it was — along with the pictures, shapes, pivot tables and links Spredin keeps but does not show. Pivot tables are also rebuilt as live Spredin pivots on their own sheets, ready to edit — the file keeps both. A chart sheet (an Excel tab that is only a chart) opens as a sheet holding that chart and is saved back as a chart sheet. Anything in the file Spredin can neither show nor keep is named in the save question before the .xlsx is written — never dropped silently. Macros never run (by design; see below). Full fidelity matrix: Help → File Formats & Fidelity.

Saving: keep working files in .sprd (Spredin's open, human-readable format — preserves everything, unless you turn off Settings → Keep Excel Content in Spredin Files, and gzipped inside so it is much smaller). With Keep Excel Content in Spredin Files off, a .sprd leaves out the Excel file's pictures and shapes, its original pivot tables and its charts as Excel drew them, for a smaller file; saving it as Excel later names what is missing. File → Export Workbook as Excel… writes a styled, multi-sheet .xlsx copy for your Excel colleagues; Save As… with Excel Workbook as the format makes the .xlsx the file you work in. A workbook you opened from an Excel file is offered back as Excel the first time you press ⌘S; anything Excel cannot hold is listed before it is written. In LITE a Spredin Workbook has a size limit. A workbook that nears it (a great deal of formatting, or of cell contents) is flagged in time, saying which; one past it is not written over your file, and Save as Excel… is offered instead.

VBA → Python#

Spredin's automation language is Python (the Tools → Show Python Panel), not VBA:

Your .xlsm macros do not run — Spredin never executes anything inside an opened file (a security feature, not a gap). They are kept, though: save the workbook as an Excel Macro-Enabled Workbook (.xlsm) and they are back in the file for Excel to run, with the sheet and workbook names their code uses.

Same as Excel, and worth knowing#

Sorting a range that contains merged cells is refused. The status bar names the merge, so you know which one. Unmerge it, sort, then merge again.

Excel refuses this too, for the same reason. Sorting moves the values, but a merge is a fixed rectangle that stays where it is — so afterwards the merged label would sit over rows it never described, and the value hidden underneath would be invisible, because a merge only ever shows its top-left cell. You would have no way to see that it had happened. A script gets the same protection: sheet.sort(...) stops and tells you, rather than quietly rearranging the data.

Different on purpose#

Printing and PDF#

⌘P (or File → Print…) opens Excel's Print screen in one dialog: what to print (the sheet, the selection or the whole workbook), pages from–to, paper, orientation, scaling (actual size, Fit all columns on one page, fit the sheet on one page, or Custom — a percentage or W × T pages, with the percent Fit worked out shown), margins, gridlines, row and column headings, centring, and under Print area, titles, header & footer the print area (A1:F40, or whole columns A:F), rows to repeat at the top, columns to repeat at the left, header and footer (presets, or Custom… with left, centre and right parts in Excel's codes — &P page, &N pages, &D date, &F file, &A sheet), and page order. The page on the right is the actual print, page by page. Print… hands it to the Mac print panel (printers, copies) and prints at true size, margins measured from the paper's edge; Save as PDF… writes the file. File → Export as PDF… opens the same dialog. Cancelling either panel brings you back to the dialog with your choices kept. Selecting whole columns and printing the selection prints the rows that have something in them, as Excel does. Printing the entire workbook, what you change in the dialog (a footer, landscape, fit to one page wide…) applies to every sheet in it — in Excel only the active sheet unless the sheets are grouped; each sheet keeps its own print area and titles.

Things that work the way Excel does: gridlines are off unless you tick them (cell borders always print), the settings belong to the sheet and are saved with it, and a workbook made in Excel keeps its print area, print titles, margins, scaling, headers and footers, page breaks and paper — on open and when saved back to .xlsx. Undo (⌘Z) takes back a page setup change.

Also as in Excel: text too long for its cell runs on over the empty cells beside it, on paper as on screen (a number never does — it shows #####).

Different: headers and footers print in the sheet's font at 9 pt rather than taking Excel's font codes; charts print as pictures.

Saving: ⌘S, or AutoSave#

Your hands' habit works: ⌘S saves, and closing a window with unsaved work asks Save / Don't Save / Cancel. If you would rather not think about it, turn on AutoSave — the switch in the title bar, as in Excel. It is off unless you turn it on: in Excel, a workbook on your own disk never saved itself either.

Earlier versions are kept, so a save is never the end of the road — the way Pages and Numbers do it. File → Revert To → Last Opened puts the workbook back the way it was when you opened it; Browse Versions… lists what Spredin kept (everything from the last hour, one an hour for a day, one a day for 30 days), shows how each differs from the workbook now, and restores one — or opens it as a copy beside your work. Restoring asks first and keeps what is there now as a version, so a restore can itself be undone from the same list. Versions stay on your Mac. Settings → AutoSave & Versions… is where you delete them, choose how much is kept (200 MB per workbook and 2 GB in all unless you change it) and choose the folder they are kept in.

Crash recovery still runs for anything not yet in its file: every 20 seconds it keeps a snapshot of unsaved work and offers it back at the next launch.

Not there yet (honesty section)#

Kept deliberately blunt, because finding these out mid-task is worse than reading them here.

Limits worth knowing:

Round-trip caveat. .xlsx export carries values, formulas (with their last computed result, so a reader without a formula engine still sees the right numbers), cell styling, merged cells, frozen panes, column widths / row heights, comments, defined names, hidden sheets, data validation rules and conditional formatting, written as Excel's own live rules. Opening an .xlsx reads the rules Spredin draws the same way (greater than, between, text contains, top/bottom N, duplicates, two-colour scales, data bars); the others are named when you save as Excel. Charts go both ways: an Excel chart opens here and, unchanged, is written back as it was; a chart made here becomes an Excel chart (or a picture, for the kinds Excel has no chart for — saving says which). If a workbook's colour rules matter, keep the .sprd file as your master copy.

Power Query and Power Pivot have no equivalent — Python is the answer, and it is a different shape. Worth reading properly, because these are the two names people ask about first.

Missing features: clickable hyperlinks (HYPERLINK() shows its text, and links in an Excel file are kept), cell/sheet protection, Goal Seek and the rest of what-if, subtotal outlines, Flash Fill, rich text runs inside one cell, and per-side borders. Sheet tabs can't be dragged to reorder, duplicated or given a colour yet (a tab colour from an Excel file shows). There is no Format Painter button: copy the cell, select where the format should go and choose Edit → Paste Formats. (Clearing formats is Format → Clear Formats; Delete clears contents only, as in Excel.)

One that needs a sentence rather than a bullet — dynamic arrays. The common functions are there: FILTER, UNIQUE, SORT, SORTBY, SEQUENCE, TRANSPOSE, TAKE, DROP, VSTACK, HSTACK, TEXTSPLIT, LINEST, TREND, and LAMBDA with MAP, BYROW, BYCOL, REDUCE and SCAN. What is not there yet is spilling — a multi-cell result filling the cells below and to the right on its own. Use them the pre-365 way, wrapped in something that consumes an array: =SUM(FILTER(C:C,B:B="East")), =INDEX(SORT(A2:B99,2),1,1). A bare =UNIQUE(A:A) in one cell shows its first element rather than spilling. In a workbook from Excel 365, a formula that spilled shows its first value, and the cells it spilled into keep the results Excel last saved: they do not recalculate when the inputs change. The status line says how many such formulas a file has when it opens. Structured table references (Table1[[#This Row],[Amount]]) do work, and import correctly from .xlsx; a table's name alone is its data too (=SUM(Sales), =ROWS(Sales), a lookup into Sales); what is missing is the Ctrl+T command to create a table in Spredin. A table follows its sheet as it does in Excel: rows and columns inserted or deleted above, inside or left of it move or resize it (a column inserted inside it becomes Column1), and it stays with a renamed sheet. A row typed directly below a table does not join it; insert a row inside the table instead. Typing over a header renames the column, and every Table1[Old] in the workbook follows it; a cleared header becomes Column1, and a name another column already has gets a number (Qty2), as in Excel.

Filling a long column without dragging#

The Excel habit works here, in two keystrokes and no mouse:

  1. Type the formula in the first row of the column (or the last — see below).
  2. ⌘⇧↓ — extends the selection to the bottom of the data block in one press. (⌘⇧↑ goes the other way; ⌘↓ without Shift just jumps there.)
  3. ⌘D — Fill Down. The formula is copied over the whole selection with its references shifted per row. Fill Down always copies — value and format, never a series — so 007, a long ID and a date arrive as they are.

If the formula is on the last row instead, select upward with ⌘⇧↑ and press ⌘⇧D for Fill Up. Excel has Fill Up in Home → Fill but gives it no shortcut at all (the chord is Alt+H,F,I,U); ⇧ over the fill key is ours. ⌘R and ⌘⇧R are Fill Right and Fill Left. All four are in the Edit menu too.

Double-clicking the fill handle still works, and still stops at the neighbouring column's last row.

Formulas it suggests as you type#

Type = under a column of numbers and a short list opens under the cell: =SUM(B2:B13), then AVERAGE, COUNT, MAX and MIN of the same cells, with the range outlined on the sheet. ↑↓ choose, Tab (or a click) takes the one chosen; anything else you type carries on as normal. Nothing is ever inserted by itself, and Enter commits only what you typed. An arrow past the top or bottom of the list closes it and points at a cell, as it always did — so = then ↑ still means "the cell above".

⌥Tab also steps to the next. The function list wins: while it is open, Tab picks the function. Turn suggestions off with Settings → Suggest Formulas as I Type; ⇧⌘T (AutoSum) works either way.

$ anchors: ⌘T (not F4 — macOS takes that key)#

While editing a formula — in the cell or in the formula bar — put the caret on a reference and press ⌘T to cycle A1 → $A$1 → A$1 → $A1 → A1.

Use ⌘T, not F4. This is the one place your Windows muscle memory can't follow you, and it isn't Spredin's doing: by default macOS gives the top row to the hardware functions, so pressing F4 fires Spotlight/Launchpad and the key never reaches any app. Excel for Mac hit the same wall and binds ⌘T — we use the same chord, so anything written for Excel-on-Mac applies here.

If you want F4 itself, either press fn+F4, or turn on System Settings → Keyboard → "Use F1, F2, etc. keys as standard function keys". Both work. Ctrl+T works too.

Two things it does that save real time: the caret anywhere inside B2:D50 anchors both ends together, and selecting a stretch of the formula anchors every reference in it at once. Text inside quotes is left alone, so a label like "Q1" never gets mangled.

It works without opening the cell, too: select a cell holding a formula and press ⌘T, and every reference in that formula changes at once. Select a range (a filled-down column, say) and press it: every formula in the selection moves to the same form — all $A$1, then all A$1, and so on — each keeping its own references.

Typing with an input method (Chinese, Japanese, Korean, or an accent typed as two keys). Open the cell first — double-click it, or press F2 or ⌃U — and type: the text composes in the cell, and the input method's own keys (Enter or Space to take a candidate, the arrows, Escape) stay its own until the text is in. The same holds in the formula bar and the name box. Typing straight onto a cell that is only selected works the same way: the input method takes the first key, and the cell opens on what it composes.

Keyboard gaps. Still unbound: Ctrl+; (today's date). F9 is Calculate Now (also Data → Calculate Now); Excel for Mac's other chord for it, ⌘=, is Zoom In here. ⌘1 opens Format Cells and ⌘P prints.

TODAY, NOW and RAND recalculate as in Excel. Every edit works out RAND, RANDBETWEEN, RANDARRAY and NOW again, and what reads them; TODAY when the date has moved, and a workbook left open past midnight moves to the new date within a minute on its own. Calculate Now takes them all. Unlike Excel, this does not mark the workbook as changed.

Escape cancels a cell edit, as in Excel: the cell keeps what it held. Over a list under the editor (the function list, the formula suggestions) the first Escape closes the list and the second cancels the edit. ⌘. (macOS's own cancel chord, Edit → Cancel Cell Edit) does the same. If you do commit something by mistake, ⌘Z undoes it.

Already there, in case you were wondering: named ranges, data validation dropdowns, dynamic pivot tables, conditional formatting, AutoFilter with conditions, freeze panes, multi-key sort, paste-special, and over 330 functions.

Names are Excel's names (Insert → Define Name…). A name can be a cell or a range, a whole column or row (Data!$A:$A), several areas (A1:A5,C1:C5, for SUM, COUNT, AVERAGE, MIN, MAX and the like), a constant (0.2, 20%, "Q1 actuals", a date) or a formula (=OFFSET(Data!$A$1,0,0,COUNTA(Data!$A:$A),1)). The dialog lists the names the workbook has: click one to load it and Update what it refers to, or Remove it. One bare word needs its = to mean another name (=Revenue). A name that belongs to one sheet in an Excel file works as it does there: each sheet's formulas read their own rate, and =Costs!rate reads another sheet's. A name made here remembers the sheet it was made on (B2:E5 typed on Data is Data!$B$2:$E$5) and moves with its rows.

Numbers too wide for their column behave as in Excel. One in General format shows fewer decimals (0.509506) or a short scientific form (1.23457E+14); one with a format of its own shows ##### — widen the column or reduce the decimals to see it. Spredin will never show you part of a number.

A formula that returns several values shows the first one, with a corner mark. =UNIQUE(A1:A9) puts the first unique value in the cell and flags it, because spilling into the neighbouring cells is not implemented yet. That matches what Excel's own anchor cell holds; what is missing is the rest. Use them wrapped — =SUM(FILTER(…)), =INDEX(SORT(…),1,1), =COUNTA(UNIQUE(…)).

All of these are tracked — tell us which one blocks you, via Help → Send Feedback….