CSV Fill Down

Fill empty CSV cells with the last non-empty value above them (spreadsheet fill-down), or fill up from below. Choose which columns. Runs entirely in your browser, no upload.

Try:
Filled CSV

CSV fill down

Fill empty cells in a CSV with the last non-empty value above them — the spreadsheet "fill down" you use to unflatten grouped or merged-cell exports. A cell counts as empty when it is blank or contains only whitespace. Switch Direction to up to back-fill from the next value below instead. It runs in your browser; nothing is uploaded.

Worked example

Input (grouped export where the repeated region was left blank):

region,rep
West,Ann
,
,Bob
East,

Fill down, all columns → output:

region,rep
West,Ann
West,Ann
West,Bob
East,Bob

Each blank inherits the nearest value above it in its own column.

Options

Limits & edge cases

FAQ

What counts as an "empty" cell?

Any cell that is blank or contains only whitespace. Whitespace-only cells are trimmed and treated as empty, so a stray space still gets filled.

Can I fill only some columns?

Yes. Put the columns in Columns to fill as header names (region,rep) or 1-based indices (1,3), comma-separated. Any column you don't list keeps its blanks. Leave the field empty to fill every column.

What's the difference between fill down and fill up?

Down copies the last non-empty value above a blank into it — the usual spreadsheet fill-down for un-flattening grouped rows. Up copies the next non-empty value below a blank into it, handy when a summary value sits at the bottom of a group. Pick one with the Direction control.

Does this fill blanks with a fixed value or an average?

No — it only carries forward (or backward) a neighbouring cell's own value. To drop a constant like N/A into every blank, use a CSV cleaner instead; average imputation is a separate numeric task and isn't done here.

Is my data uploaded?

No — it's processed locally with WebAssembly. Nothing leaves your browser.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool csv-fill-down "region,rep
West,Ann
,
,Bob
East,"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/csv-fill-down/?data=region%2Crep%0AWest%2CAnn%0A%2C%0A%2CBob%0AEast%2C&columns=region&direction=down&header=true&delimiter=%2C

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.