How to bulk convert measurement units across excel columns
- Step 1Open the Unit Converter (Pro tier) — Unit Converter requires Pro or higher — the Free tier cannot run it. Pro processes files up to 50 MB / 100,000 rows; Pro-media up to 200 MB / 500,000 rows; Developer up to 500 MB with no row cap.
- Step 2Drop your file onto the upload area — Accepts
.xlsx,.xls,.ods, and.csv. Only the first sheet is read — if your workbook has multiple tabs, move the data you want converted to the first sheet first. The file is parsed in your browser by SheetJS; nothing uploads. - Step 3Add a conversion rule — In the Conversion rules panel, type the Column name exactly as it appears in the header row (case- and space-sensitive), pick × Multiply or ÷ Divide from the operation dropdown, and enter the Factor. For kg→lbs that's Multiply by
2.20462; for cm→m that's Divide by100. - Step 4Optionally name a new output column — Leave New col name (optional) blank to overwrite the source column in place. Type a name (e.g.
Weight_lbs) to write the converted values to a separate column and preserve the original — useful when you want both units side by side for review. - Step 5Add more rules with + Add rule — Click + Add rule for each additional column. New rule rows default to ÷ Divide with a factor of 100 (the cents→dollars shape) — change the operation and factor as needed. All rules run together in one pass.
- Step 6Convert and download — Run the conversion and download
units-converted.xlsx. The result metrics report input rows, output rows, andchangesApplied(the total count of cells actually converted across all rules) so you can sanity-check coverage. The output is a fresh single-sheet workbook calledConverted.
Common length / weight / distance conversions as rules
Each conversion is one linear factor. The tool has no preset unit menu — you type the factor yourself. Factors shown are the standard exact or near-exact multipliers; reverse a conversion by swapping Multiply and Divide.
| From → To | Operation | Factor | Notes |
|---|---|---|---|
| kg → lbs | × Multiply | 2.20462 | Reverse (lbs→kg): ÷ Divide by 2.20462 |
| km → miles | × Multiply | 0.621371 | Reverse (miles→km): × Multiply by 1.60934 |
| m → ft | × Multiply | 3.28084 | Reverse (ft→m): ÷ Divide by 3.28084 |
| cm → inches | × Multiply | 0.393701 | Reverse (in→cm): × Multiply by 2.54 (exact) |
| g → kg | ÷ Divide | 1000 | Or × Multiply by 0.001 — same result |
| L → US gallons | × Multiply | 0.264172 | Imperial gallons use 0.219969 instead |
The four fields of a conversion rule
Each rule row in the Conversion rules panel has exactly these four inputs plus the shared + Add rule button. There are no presets, no drag-to-reorder, and no rounding control.
| Field | Control | Required | Behaviour |
|---|---|---|---|
| Column name | Text input | Yes | Must match a header exactly (case + spaces). A non-empty value is required or the run is rejected |
| Operation | Dropdown: × Multiply / ÷ Divide | Yes | Only these two operations exist — no add/subtract, so offset conversions are not supported |
| Factor | Number input | Yes | Must be a non-zero, finite number. A factor of exactly 1 is rejected as a no-op |
| New col name | Text input | No | Blank = overwrite in place. A value writes the result to a new column with that exact name, keeping the original |
Tier limits for the Unit Converter
Unit Converter is a Pro-gated tool. The Free tier cannot run it at all. Limits are per file; this tool processes one file at a time.
| Tier | Max file size | Max rows | Can run this tool? |
|---|---|---|---|
| Free | 5 MB | 10,000 | No — Pro required |
| Pro | 50 MB | 100,000 | Yes |
| Pro-media | 200 MB | 500,000 | Yes |
| Developer | 500 MB | Unlimited | Yes |
Cookbook
Real rule setups and the before/after cells they produce. Values reflect the tool's actual behaviour, including its 10-decimal rounding and silent skip of non-numeric cells.
kg → lbs, preserving the original column
The most common single-rule conversion. Naming a new output column keeps both units side by side so you can verify the math before discarding the source.
Rule: Column = Weight_kg, Operation = × Multiply, Factor = 2.20462, New col name = Weight_lbs Input row: Weight_kg = 12.5 Output row: Weight_kg = 12.5, Weight_lbs = 27.55775 (12.5 × 2.20462 = 27.557750000 → rounded to 10 decimals)
Two columns, two factors, one pass
Stack rules to convert a length column and a distance column at the same time. Each rule targets a different header; both apply before the single download.
Rule 1: Length_m × Multiply 3.28084 → Length_ft (new col)
Rule 2: Distance_km × Multiply 0.621371 → Distance_mi (new col)
Input: Length_m = 4, Distance_km = 100
Output: Length_m = 4, Length_ft = 13.12336,
Distance_km = 100, Distance_mi = 62.1371Divide to go from grams to kilograms in place
Leave the new-column field blank to overwrite the source column. Useful when the original unit is no longer needed downstream.
Rule: Column = Mass_g, Operation = ÷ Divide, Factor = 1000, New col name = (blank) Input: Mass_g = 4500 Output: Mass_g = 4.5 The header stays 'Mass_g' even though it now holds kilograms — rename it afterward if the unit label matters.
Celsius to Fahrenheit needs two tools
Temperature is an offset conversion (×1.8 then +32), which a single multiply/divide rule cannot express. The converter handles the ×1.8 step only; the +32 offset has to happen elsewhere.
Step 1 (this tool): Temp_C × Multiply 1.8 → Temp_scaled Input Temp_C = 20 → Temp_scaled = 36 Step 2 (in Excel): add 32 in a formula column, then flatten =Temp_scaled + 32 → 68 (correct °F) Bake the formula to a static value with the Formula to Value capability: /excel-tools/excel-formula-to-value
Text and blank cells are skipped, not blanked
Only cells that parseFloat reads as a number are converted. A label, an empty cell, or an error value is copied through untouched — and the changesApplied counter only counts the cells that actually changed.
Rule: Distance_km × Multiply 0.621371 → Distance_mi Input column Distance_km: 100 → converts → 62.1371 (blank) → skipped → blank 'N/A' → skipped → 'N/A' 42 → converts → 26.097582 changesApplied = 2 (only the two numeric cells)
Edge cases and what actually happens
Factor of exactly 1
RejectedA rule with factor: 1 is rejected before any rows are touched — the validator treats it as a no-op and throws factor of 1 is a no-op. If you genuinely want to copy a column unchanged into a new header, this tool is the wrong one; use a column-copy step instead. Pick a meaningful factor like 2.20462 or 100.
Factor of 0, blank, or non-numeric
RejectedThe factor must be a non-zero, finite number. Zero (which would zero out the column), an empty factor field, or Infinity/NaN all fail validation with factor must be a non-zero finite number. In the UI the number input falls back to 1 if you clear it — which then trips the no-op check.
Column name doesn't match any header
No cells changedThe Column name must match a header exactly, including case and spaces (Weight_kg ≠ weight_kg ≠ Weight kg). If no header matches, the rule simply finds nothing to convert — the run completes but changesApplied for that rule is 0 and the file is unchanged. Check the header row if your output looks identical to the input.
Empty rule column
RejectedA rule whose Column name is blank fails validation with Each rule must specify a non-empty column. This usually happens when you click + Add rule, fill the factor, but forget to name the column. Every rule needs a column.
Numbers stored as text with thousands separators
Partial parseConversion uses parseFloat, which stops at the first non-numeric character and does not strip thousands separators. A text cell "1,234.5" parses as 1, not 1234.5 — the comma terminates the number. Clean separators out first, or store the column as real numbers. Inspect which cells are text-vs-number with the Format Inspector: /excel-tools/excel-format-inspector
Date cells in a converted column
SkippedFiles are read with date detection on, so date cells arrive as date strings. parseFloat on a date string returns NaN, so the cell is skipped and copied through unchanged. The converter never silently turns a date into a serial number — but it also won't convert a date you mistakenly targeted.
Multiple rules targeting the same source into the same new column
Last rule winsIf two rules write to the same target column (same New col name, or both blank on the same source), they apply in order and the later rule overwrites the earlier result for each row. Order your rules deliberately, or give each its own output column name to avoid clobbering.
Workbook has more than one sheet
First sheet onlyOnly the first sheet is read and converted; other sheets are dropped from the output entirely. The result is always a single-sheet workbook named Converted. If your data lives on a second tab, move or copy it to the first sheet before uploading.
Floating-point tails after division
By designResults are rounded to 10 decimal places via toFixed(10), which absorbs most binary floating-point noise (e.g. 0.1 × 3 resolves to 0.3, not 0.30000000000004). Values that genuinely need a fixed display precision should be rounded in Excel with ROUND() or a cell number format afterward — the tool does not expose a precision control.
Output formulas and formatting from the source
Not preservedThe output is a fresh values-only workbook. Cell formatting, conditional formatting, formulas, and extra sheets from the original file are not carried over — converted columns hold plain numbers. If you need to keep formulas elsewhere as static values, run Formula to Value first: /excel-tools/excel-formula-to-value
Frequently asked questions
What factor converts kg to lbs?
Use Operation = × Multiply, Factor = 2.20462. For the reverse (lbs→kg), use ÷ Divide with the same factor 2.20462. The tool has no unit picker — you type the factor yourself, so any reference table of conversion multipliers works.
How do I convert Celsius to Fahrenheit?
You can't in a single rule, because °C→°F needs an offset (×1.8 then +32) and the tool only multiplies or divides. Apply the ×1.8 step here, then add 32 in an Excel formula column and flatten it with Formula to Value (/excel-tools/excel-formula-to-value). The same limitation applies to any offset conversion, like °F→°C.
Does the new column name append a suffix to the original header?
No. The New col name field is the full, literal name of a brand-new column — type Weight_lbs, not _lbs. If you leave it blank, the converted values overwrite the source column in place and the header is unchanged. There is no automatic suffixing.
Will it convert numbers stored as text?
Partially. A clean text number like "12.5" is parsed by parseFloat and converts fine. But parseFloat stops at the first non-numeric character, so "1,234.5" (with a thousands comma) parses as 1 and "42 kg" parses as 42 with the unit dropped — and a purely non-numeric cell like "N/A" is skipped entirely. For reliable results, store the column as real numbers; check with the Format Inspector (/excel-tools/excel-format-inspector).
Can I apply the same factor to several columns at once?
Yes — add one rule per column with the same operation and factor. There's no single rule that spans multiple columns, but the + Add rule button lets you stack as many rules as you need, and they all run in one pass.
Why was my factor of 1 rejected?
A factor of exactly 1 is a no-op (the value wouldn't change), so the validator rejects it with a clear error. The same applies to a factor of 0 or any non-finite value. Pick a meaningful conversion factor — the tool is for changing values, not copying them.
What happens to non-numeric cells in a targeted column?
They're skipped and copied through unchanged. Only cells that parseFloat reads as a number are converted, so labels, blanks, dates, and error values survive untouched. The changesApplied metric counts only the cells that actually changed, which is a quick way to confirm coverage.
Is the original file or my data uploaded anywhere?
No. The spreadsheet is parsed by SheetJS entirely in your browser tab. Weights, prices, and measurements never reach a JAD server. The uploaded file itself is also untouched — conversions are written only to the downloaded output.
What format is the output?
Always a single-sheet .xlsx named units-converted.xlsx, with one sheet called Converted. It accepts .xlsx, .xls, .ods, and .csv as input, but the download is always XLSX of plain values — no formulas, formatting, or extra sheets carried over.
How many rows can it handle?
It's a Pro-gated tool, so the Free tier can't run it. Pro processes up to 50 MB / 100,000 rows, Pro-media up to 200 MB / 500,000 rows, and Developer up to 500 MB with no row cap. One file at a time.
Does it round my results?
Yes, to 10 decimal places. That's enough to clear binary floating-point noise (so 0.1 × 3 comes out as 0.3) while preserving real precision for scientific and financial data. There is no setting to change this; round further with Excel's ROUND() if you need fewer decimals.
Can I script this in a pipeline?
Yes. GET /api/v1/tools/excel-unit-converter (with a valid API key) returns the schema — acceptsFormats, acceptsMultiple, the rules option, and outputType. Execution is runner-backed: JAD's API never receives your file. The paired @jadapps/runner runs the conversion locally and streams the XLSX back, so data stays on your machine.
Privacy first
Every JAD Excel tool runs entirely in your browser using SheetJS and ExcelJS. Your spreadsheets, formulas, and data never leave your device — verified by zero outbound network requests during processing.