| # | name | index | type | filled | empty | examples |
|---|---|---|---|---|---|---|
| 1 | tool | 1 | string | 6 | 0 | ["JSON Formatter","CSV Preview","curl Viewer"] |
| 2 | category | 2 | string | 6 | 0 | ["json","data","web"] |
| 3 | owner | 3 | string | 6 | 0 | ["platform","api","growth"] |
| 4 | requests | 4 | number | 6 | 0 | ["128","94","73"] |
| 5 | status | 5 | string | 6 | 0 | ["active","paused"] |
| 6 | cost | 6 | number | 6 | 0 | ["19.50","12.00","8.25"] |
CSV operations guide
CSV and Excel Operations Tool: Query, Filter, Compare, Dedupe, and Analyze Tables Online
Use this browser-based CSV query tool to run spreadsheet-style operations on CSV, TSV, and Excel .xlsx files without opening Excel, Google Sheets, pandas, SQL, or a terminal script.
Back to CSV OperationsWhat is this tool?
The CSV Operations & Query Tool is a client-side CSV and Excel analysis tool for extracting columns, filtering rows, selecting fields, finding unique values, finding duplicate values, comparing two columns, counting by category, sorting rows, and running quick numeric summaries. Paste CSV data, upload a .csv, .tsv, or .xlsx file, then run simple commands such as unique(category), countBy(status), where(amount > 100), amount*2 + tax, category + owner, or unique(category+owner).
It is built for common spreadsheet workflows: inspect exported reports, query Excel worksheets, clean contact lists, compare two columns, dedupe IDs, summarize product categories, filter event logs, and prepare smaller CSV-derived tables for JSON tools. Excel .xlsx uploads are converted from the first worksheet into CSV-style rows before the operation runs. Parsing and operations run in your browser.
Supported operations
| Operation | Example | Result |
|---|---|---|
| List columns | columns() | Detected columns, types, fill counts, and examples |
| Extract column | csv.email | One column as a list |
| Select columns | select(id, name, email) | A smaller table |
| Drop columns | drop(notes) | A table without selected columns |
| Filter rows | where(status == "active") | Rows matching a condition |
| Search rows | search("stripe") | Rows containing text in any cell |
| Unique values | unique(category) | Distinct values from a column |
| Duplicates | duplicates(email) | Repeated values with counts |
| Count by field | countBy(category) | Grouped counts |
| Dedupe rows | dedupe(email) | First row for each value |
| Sort and limit | sortBy(amount desc), head(20) | Top rows by a column |
| Numeric summary | sum(amount), avg(amount), min(amount), max(amount) | Column math |
| Math formula | amount*2 + tax | Row-wise numeric results |
| Formula aggregate | sum(quantity*price) | Aggregate a calculated value |
| Concatenate arrays | category + owner | One array containing values from both columns |
| Subtract arrays | category - owner | First-column values missing from the second |
| Unique combined arrays | unique(category+owner) | Distinct values after combining two columns |
Column compare
CSV column comparison is useful for exported reports, email lists, SKU lists, customer IDs, inventory IDs, tags, and category columns. Use compare(left, right) to see values that appear in both columns or only one column. Use common(left, right), uniqueLeft(left, right), uniqueRight(left, right), and different(left, right) for focused comparison output.
For plain array output, use columnA + columnB to concatenate two column arrays, or columnA - columnB to return only values from the first column that do not appear in the second. Use unique(columnA+columnB) when you want one deduped list after combining columns.
For messy data, similar(name, displayName, 0.8) finds fuzzy matches between two CSV columns. This helps spot near-duplicate names, email aliases, company names, product labels, or identifiers with small spelling changes.
Autocomplete
The operation input reads your CSV headers and suggests column names, csv.column extractors, operation snippets, and quick actions. Type csv. to autocomplete columns. Chain multiple operations with a comma or pipe, such as where(status == "active"), select(name, amount), head(20). Use quick actions for common CSV work such as unique(category), countBy(status), dedupe(email), and compare(primaryEmail, backupEmail).
How to use
- Paste CSV data into the input panel or upload a
.csv,.tsv, or Excel.xlsxfile. - Keep delimiter detection on auto, or choose comma, tab, semicolon, or pipe.
- Use the header toggle when the first row contains column names.
- Type an operation in the query input, or chain commands with commas, then review the final result.
- Review the result as a table, list, value, or formatted JSON, then copy the result.
Examples
Extract one CSV column
Use csv.email, email, or a quoted column name when the header contains punctuation.
Get unique categories
Use unique(category) to return distinct values. Use countBy(category) to get grouped counts.
Find duplicate emails
Use duplicates(email) to find repeated values, or dedupe(email) to keep the first row for each email.
Filter an exported report
Use where(status == "active"), where(amount > 100), where(name contains "acme"), or where(email matches "@company.com$").
Chain multiple CSV operations
Use commas or pipes between commands: where(status == "active"), select(name, amount), sortBy(amount desc), head(20).
Run a numeric formula
Use amount*2 + tax to calculate a value per row. Use sum(quantity*price), avg(score*weight), or where(amount*2 + tax > 100) when you want formulas inside other operations.
Query an Excel worksheet
Upload an .xlsx file and the first worksheet is converted into CSV-style rows, so commands like columns(), unique(category), compare(a, b), and amount*2 + tax work the same way.
Compare two CSV columns
Use compare(primaryEmail, backupEmail), common(a, b), uniqueLeft(a, b), uniqueRight(a, b), or similar(a, b, 0.85).
Concatenate operation results
Use unique(category) + unique(owner) to run both operations first, then concatenate the two arrays.
Deduplicate after combining
Use unique(category+owner) to combine both columns and return one unique list.
Create a smaller table
Use select(id, name, email, status) or drop(notes, rawPayload), then copy the table result.
Use cases
- Extract lists of emails, IDs, URLs, SKUs, categories, statuses, tags, or owners from CSV and Excel files.
- Filter analytics exports, billing exports, CRM exports, event logs, product catalogs, inventory reports, and Excel worksheets.
- Find duplicate contacts, duplicate IDs, repeated product codes, repeated domains, and repeated labels.
- Compare two CSV columns to find shared values, missing values, left-only values, right-only values, and fuzzy matches.
- Dedupe rows before importing a CSV into another system.
- Summarize numeric columns with sum, average, minimum, and maximum operations.
FAQ
Can I query CSV online without SQL or pandas?
Yes. Use simple operations such as columns(), select(name, email), where(status == "active"), unique(category), countBy(status), dedupe(email), compare(left, right), and formulas like amount*2 + tax.
Can I run multiple commands in one query?
Yes. Separate top-level commands with commas or pipes. Commas inside functions still work, so select(name, email), head(20) chains two commands while select(name, email) remains one command.
Can I run formulas across CSV columns?
Yes. Formulas support +, -, *, /, %, parentheses, numeric literals, and numeric columns. Use amount*2 + tax for row-wise output, sum(quantity*price) for totals, or where(quantity*price > 100) for formula-based filters.
Does it work with TSV files?
Yes. Upload a .tsv file or choose the tab delimiter. The tool also supports comma, semicolon, and pipe-delimited files.
Can I upload Excel files?
Yes. Upload an Excel .xlsx file and the tool reads the first worksheet as table data. Legacy .xls files are not supported; save them as .xlsx or CSV first.
Can I compare two CSV columns?
Yes. Use compare(a, b) for a table with both, left-only, and right-only values. Use a - b for a plain array of first-column-only values, a + b for a plain concatenated array, and similar(a, b, 0.8) for fuzzy matching.
Can I combine unique lists?
Yes. Use unique(category) + unique(owner) to concatenate two unique lists, or unique(category+owner) to concatenate first and then dedupe.
Is my CSV uploaded?
No. CSV parsing and operations run in your browser. Share links only store data if you explicitly use the Share feature.
Related terms
Common searches for this workflow include CSV query tool, CSV operations tool, filter CSV online, query CSV online, CSV column extractor, find duplicates in CSV, CSV unique values, CSV count by field, CSV dedupe online, and CSV analyzer online.
Excel and spreadsheet searches include query Excel online, Excel operations tool, XLSX query tool, filter Excel file online, extract column from Excel, find duplicates in Excel, unique values in Excel column, compare two Excel columns, and spreadsheet formula tool online.
For table comparison, related terms include compare two CSV columns, find common values between two CSV columns, find missing values in CSV, CSV fuzzy match, CSV set difference, CSV concatenate columns, and spreadsheet operations online.
Formula and analytics searches include CSV formula tool, run formulas on CSV online, CSV column math, calculate CSV column online, sum CSV column online, average CSV column, CSV numeric summary, CSV group by count, and CSV aggregate tool.
Filtering and cleanup searches include CSV filter rows online, CSV where condition, SQL for CSV online, filter CSV without Excel, remove duplicates from CSV, deduplicate CSV by column, find blank cells in CSV, CSV search all columns, and sort CSV online.
Data preparation searches include extract column from CSV, select CSV columns online, drop CSV columns, CSV to list converter, CSV email list extractor, CSV SKU list extractor, CSV ID dedupe, CSV report cleanup, and client side CSV tool.
Similar tools
CSV Operations is focused on querying and analyzing CSV files. For conversion and table preview, use CSV Preview. For converted JSON data, use JSON Operations.
For CSV to JSON conversion, open the CSV Preview and Converter. For querying JSON arrays after conversion, use JSON Operations.