Start
Getting started
Open a file
File → Open, or press ⌘O. Pick a CSV, TSV or XLSX file. There is no size limit and no import step. A 10 GB file opens the same way a 10 KB one does, and the first rows appear while the rest is still being read.
If you open an Excel workbook with more than one sheet, BigXL asks which sheet you want. Each sheet behaves like its own file after that.
Open several files at once and each gets its own tab. Tabs are independent, so sorting one does not touch another.
Three things that work differently
Your original file is never changed. Everything you do happens in a working copy. Filtering, cleaning, masking and deleting rows all leave the file on disk exactly as it was. To get your changes out, export them to a new file.
Nothing leaves your machine. BigXL has no servers and no telemetry. The assistant runs on your own hardware. You can unplug the network and everything still works.
Every step is undoable. The Timeline records what you did in plain words, and you can step back to any point. Nothing is destructive.
What you see
The toolbar holds the things you reach for most. You can hide buttons you never use in Settings → Toolbar.
The formula bar shows the cell you are on and lets you edit it.
The status bar at the bottom shows the file name, row count, column count, and what is selected. Select a whole column and it shows totals for it.
The Timeline on the right lists every step. Click any step to go back to it.
If you get stuck
Press ⌘K for the command search. Type what you want in plain words, like “remove duplicates” or “export”, and it finds the right command wherever it lives.
Moving around a big file
Keyboard
Arrow keys move one cell. Hold Shift to extend the selection.
⌘ with an arrow jumps to the edge of the data in that direction, the same as in Excel.
Press ⌘L to go to a row by number. In a file with 40 million rows this beats scrolling.
Tab and Enter move right and down after an edit.
Selecting
Click a column letter to select the whole column. Click the corner box to select everything.
Select a single column and the status bar shows its count, total, average and range, worked out over the whole file rather than the rows on screen.
Column width
Drag the divider between two column headers to resize. Double-click it to fit the widest value.
Freeze columns
Scrolling right in a wide file loses sight of the column that tells you which row you are on. To pin it, right-click a column header and choose Freeze columns up to this one. Everything from the first column to that one stays at the left edge while the rest scrolls underneath, so a far-off column can sit right next to the name it belongs to.
A blue line marks the boundary. To undo it, right-click any header and choose Unfreeze columns.
Editing a cell
Double-click a cell, or press F2, or just start typing. Press Enter to keep the change and Escape to drop it.
Edits are recorded in the Timeline like everything else, so a wrong one is one undo away.
Find and shape
Filtering and sorting
Filter
Click Filter in the toolbar, or right-click a column and choose Filter by value… to pick from the values actually in that column.
A filter is a column, a condition, and a value. Conditions are contains, does not contain, equals, does not equal, greater than, less than, and is one of.
Every active filter shows as a chip below the toolbar. Click the × on a chip to drop it, or Clear all to drop every filter at once.
Filters stack. Add a second filter and both must match, the same as Excel’s AutoFilter across several columns.
Sort
Click a column header to sort by it. Click again to reverse the order. A third click, or right-click and choose Remove the sort, returns the rows to the order they were in.
The header shows an arrow pointing the direction of the current sort.
Both together
Filtering and sorting run over the whole file, not just the rows loaded on screen, so they work the same way on 12 rows or 12 million.
Cleaning and fixing data
Where to find it
Right-click a column header for the actions that apply to it, or open the Clean menu for the full list. Press ⌘K and type what you want to do, like “trim spaces” or “remove duplicates”.
Text cleanup
Trim spaces drops the spaces hiding at the start and end of a value.
UPPER CASE, lower case, and Title Case change how the text reads without changing what it means.
Making values usable
Clean $ and commas strips currency symbols and thousands separators so the numbers underneath can be sorted and totalled.
Clean IP addresses strips ports and brackets.
Normalize emails lowercases and trims addresses so two that only differ in case are treated as the same.
Force column to numbers finds the values that are not valid numbers and offers to fix them.
Split a column
Right-click a column and choose Split, or open it from the Clean menu. Pick what to split on, comma, space, semicolon, tab, pipe or dash, and see the new columns before you commit. BigXL previews the rows that split into the most parts first, so you see every column that will be created, not just the first few rows.
To put two split columns back together, add a computed column with the & operator, for example =[full_name 2] & " " & [full_name 3]. See Formulas and computed columns.
Find and replace
⌘R, or the Clean menu. Finds text across a column and replaces it with something else.
Remove duplicate rows
Pick which columns count toward a duplicate. Rows that match on all of them are removed, keeping the first one.
Every step is a preview first
Nothing in this list changes a value until you confirm it, and every one of them shows what it would do before it runs. Your source file is never touched. Step back from any change in the Timeline.
Formulas and computed columns
Add a computed column
Data → Add computed column…, or press ⌘K and type “add column”. Give the column a name and write a formula, starting with =, using the same syntax as Excel.
A formula works out a value for every row in the file, so it always creates a new column. It cannot be typed into a single cell, because a cell only holds one value and a formula needs to run over the whole column. If you type a formula into a cell, BigXL notices and offers to turn it into a column instead.
What works
Reference a column by name, full_name, or by letter, B.
Join text with &: =full_name & " (" & city & ")"
Branch with IF: =IF(mrr > 1000, "high value", "standard")
Catch an error with IFERROR: =IFERROR(VLOOKUP(order_id, other.csv, 2, FALSE), "no record")
Text functions: UPPER, LOWER, TRIM, LEFT, RIGHT, CONCAT / CONCATENATE, SUBSTITUTE, TEXTJOIN.
Number functions: ABS, ROUND, SQRT, POWER, MOD, CEILING, FLOOR, MAX, MIN.
Operators: & + - * / ^ and the comparisons = <> < > <= >=.
VLOOKUP, pulling a column from another open file
=VLOOKUP(emp_id, salaries.csv, 2, FALSE)
This means: take the value of emp_id on this row, find it in the first column of salaries.csv, and bring back that row’s 2nd column.
The file has to already be open in another tab. The match is always against that file’s first column, the same as Excel matches VLOOKUP against the first column of a range. Always write FALSE for the last argument, which means an exact match.
If you are pulling several columns from one other file, or you want to see how many rows actually matched before committing, use Join instead. It does the same job without a formula and shows you the match counts first.
What is not supported
HLOOKUP, INDEX, and MATCH are not implemented. Use VLOOKUP or Join instead.
SUMIF, COUNTIF, AVERAGEIF and their plural forms are not implemented. Use Pivot instead, it does the same total without a formula.
PROPER is not implemented. Use Title Case from the Clean menu.
Typing one of these tells you where to go instead of failing silently.
Combine
Joining and appending files
Open it
Click Join in the toolbar, or press ⌘K and type “join”. You need two files open in tabs first.
Join on a column
Pick a source file and a target file, then the column each one matches on. BigXL guesses a likely pair automatically, an exact name match first, then a close one like Order ID against order_id, then anything that looks like an id.
How to combine sets the join type:
- Only rows matching in both keeps rows whose key exists on both sides.
- Keep rows from the left keeps every row from the source file, filling in blanks where the target has no match.
- Keep rows from the right does the same from the target file’s side.
- Keep rows from both keeps every row from either side.
Before you confirm, the panel shows how many rows matched, how many exist only on each side, and a preview of the combined table.
Append rows instead
Choose Append rows from both files in How to combine when you want to stack one file under another rather than match columns, for example twelve months of the same export. Columns line up by name automatically. A column that only exists in one file is filled in as blank for the rows from the other.
The result
Joining or appending creates a new tab named after both files, for example employees_salaries.csv. Neither source file is touched, and the result behaves like any other file, you can filter it, sort it, chart it, and export it.
Analyze
Summarize a column
Open it
Select a column and click Summarize, or press ⌘U.
What it shows
For a text column: how many rows, how many distinct values, and how many are blank.
For a number column: sum, average, minimum, maximum, and how many are blank, worked out over every row in the file, not just what is loaded on screen.
Charts
Pick a chart type, Bars, Columns, Pie, Donut, Line, Area, Dots, Spread, or Quartiles, and BigXL builds it from the column. Click a slice or bar to filter the sheet down to that value.
Export the chart as an image from the panel.
Pivot tables
Open it
Click Pivot in the toolbar, or press ⌘K and type “pivot”.
Set it up
Pick a row column, an optional column to break it down by, and what to measure: how many rows, a total, an average, or a few other aggregates. BigXL fills in the result grid immediately and updates it as you change any of the three.
This replaces SUMIF, COUNTIF, and AVERAGEIF, which are not implemented as formulas in BigXL, use Pivot for those instead.
Export
Export the pivot result as its own CSV from the panel.
The SQL console
Open it
Click SQL in the toolbar, or press ⌘K and type “sql”.
Write it yourself
The console runs standard SQL against view, the file as it currently is with every filter, sort and mask already applied, or against data, the whole file with none of that. Press ⌘Enter to run.
It is read only. A query cannot change your data, only read it.
Or describe it in plain English
Type what you want in the box above the editor, for example “average salary by department”, and click Write SQL. It fills in the query below, which you can read, edit, and run yourself before anything happens.
Suggestions
The panel offers six ready-made queries based on your file’s actual columns: a preview, a count grouped by a likely category, an average, a distinct list, and a sort by the newest date. Click one to run it straight away.
Export
Export the query result as its own CSV from the panel.
Ask, the plain English assistant
Open it
Click Ask in the toolbar, or press ⌘J.
What it does
Type a question in plain English, like “total sales by region” or “show people earning over 80000”, and BigXL works out the query, runs it, and shows the result. It can filter rows, compute a stat, or build a chart, whatever the question calls for.
It runs on your machine
The assistant is a language model that runs entirely on your own hardware. Nothing about your file, or your question, is sent anywhere. It works without an internet connection.
Not sure what to ask
Start broad, “what does this file contain”, and narrow from there. Every answer is a real query you can see, so if it gets something wrong you can tell exactly what it did and correct it.
Privacy
Redacting personal data
Open it
Click Redact in the toolbar.
Presets
GDPR detects EU personal data, names, contact details, locations, account numbers, and IP addresses.
HIPAA detects the identifiers covered by the HIPAA Safe Harbor standard, patient and doctor names, clinical dates, medical record numbers, and contact details.
Legal detects attorney-client communications, work product, settlement records, and confidential party identifiers, for discovery review.
Custom lets you pick columns yourself, for anything the presets do not cover.
Detected columns are checked automatically. Uncheck any you do not want masked.
What it can detect
Email addresses, phone numbers, payment cards, social security numbers, IBAN bank accounts, Aadhaar numbers, National Insurance numbers, IP addresses, MAC addresses, person names, dates of birth, admission or discharge dates, and postal addresses. Each detector validates the value, not just the column name, so a column called id that happens to hold something else is not flagged by mistake.
How masking works
Each column gets a masking mode: keep the domain of an email, keep the last 4 digits, keep initials, keep only the year of a date, keep the network part of an IP, a consistent hash so the same input always masks the same way, keep the first character, shift a date by a random but consistent number of days, keep a 3 digit ZIP prefix, or mask everything.
Masking is not destructive. It applies to what you see and what you export, and your source file is never changed. Any mask can be undone from the Timeline.
Legal discovery
The Legal preset can export a privilege log, a record of what was masked and why, alongside the redacted file.
History and automation
Timeline and recipes
The Timeline
Every change you make, filtering, sorting, cleaning, masking, editing a cell, is recorded as a step in plain words, shown in the panel on the right. Click any step to jump back to that point. Nothing is destroyed, a step you leave behind is still there if you jump forward again.
Toggle the panel with ⌘B.
Save a recipe
Once you have a run of steps you would want again, click Save in the Timeline panel, or right-click a step and choose Save recipe up to this step. This records the steps, not the data, so it can run on a different file with the same shape.
Apply a recipe
Apply to other tabs replays the current tab’s steps on other files you have open, in one go, useful for a folder of files that all need the same cleanup.
Import loads a saved recipe file and replays it on the sheet you are looking at.
Run a cleanup on a whole folder
From the Clean menu, Run this cleanup on a folder applies a saved recipe to every file in a folder at once, outside the app, and reports anything that failed a check instead of silently saving it.
Exporting your file
Export what you see
⌘E, or Export CSV in the toolbar. This saves the current view, every filter, sort, mask, and edit you have applied, as a new CSV file. Your original file is untouched.
From the export menu next to the toolbar button: Excel (.xlsx), TSV, Parquet, and JSON.
Split into chunks
Export chunked CSV… splits the file into several CSVs of a row count you choose, useful if the result needs to fit inside Excel’s 1,048,576 row limit, or a system that only accepts files under a certain size.
Masking travels with the export
If you have masked any columns, the masked version is what gets exported, never the original values. If BigXL notices a column still holding something that looks like personal data on export, it warns you before writing the file.
Saving and reopening a session
Save a session
⌘S, or File → Save session…. This saves every tab you have open, along with all its filters, sorts, edits and masks, as a single .bigxl file.
Reopen it
⇧⌘O, or File → Open session…. Every tab reopens exactly as it was, same filters, same sort, same masked columns.
A session remembers where each source file lives, but not the data itself, so the original files need to still be in the same place when you reopen it. If a file has moved, BigXL tells you which one so you can open it fresh. If a file changed size since the session was saved, your steps are restored but flagged, since they may no longer mean the same thing on the new data.
Notes
Open it
Click Notes in the toolbar.
What it is
A plain text box you can keep open while you work. It is not tied to one file, so you can jump between tabs without losing what you wrote.
Where it lives
Notes stay in the app for the length of your session. They are cleared automatically when you close the last open file, so they do not quietly pile up across unrelated work.
If you want a note to outlive the session, click Save to write it to a text file, or Import to bring an existing text file’s contents in.
Reference
Keyboard shortcuts
| Shortcut |
What it does |
| ⌘K |
Command search, find any action by typing what you want |
| ⌘J |
Ask, the plain English assistant |
| ⌘O |
Open a file |
| ⇧⌘O |
Open a saved session |
| ⌘S |
Save session |
| ⌘E |
Export view as CSV |
| ⌘F |
Find |
| ⌘R |
Find and replace |
| ⌘U |
Summarize the selected column |
| ⌘L |
Go to row |
| ⌘B |
Toggle the Timeline panel |
| ⌘Z |
Undo |
| ⇧⌘Z |
Redo |
| ⌥⌘T |
Toggle the toolbar |
| ⌘C |
Copy |
| ⌘V |
Paste |
| F2 |
Edit the selected cell |
| Enter |
Confirm an edit, move down |
| Tab |
Confirm an edit, move right |
| Escape |
Cancel an edit, close a panel |
| Arrow keys |
Move the selection |
| ⌘ + Arrow |
Jump to the edge of the data |
| Shift + Arrow |
Extend the selection |