The main feature for copying a formula across a whole column or row in Excel is the fill handle—but only after you set it up correctly. Drag the small square at the bottom-right of the active cell with the mouse, or double-click it to fill down to the last adjacent data row in one gesture. If you need an exact formula pushed to the bottom of a million-row sheet, select the source cell, copy it, press F5, type the destination range, and paste. The fill handle is quickest for typical ranges; the Name Box route is reliable for extreme column lengths.
Fill Handle Basics: The Square That Turns One Formula Into a Whole Column
The fill handle is the 6-pixel square at the bottom-right corner of a selected cell or range, and its default drag behavior is set by Excel's Auto Fill Options menu rather than by any ribbon command. Excel turns the pointer into a thin black cross when you hover over it. Dragging that cross downward copies or continues the pattern in the source cells, depending on content type. For a formula, Excel adjusts relative references row by row as it fills, which is the behavior most users want. A formula containing =A2B2 dragged from row 2 to row 100 becomes =A100B100 at the bottom.
Formula fill behaves differently from text or date fill. Typing January in a cell and dragging produces February, March, and so on, because Excel recognizes a list. Dragging a formula never does that unless the formula contains a built-in series function; Excel treats it as a repeat operation with reference adjustment. Absolute references written with dollar signs, like $B$1, stay fixed during the drag, which is why a single-column lookup against a fixed rate table works with one formula. The distinction matters because users who see a formula produce identical results in every row have usually locked the wrong references rather than broken the fill handle.
Version differences affect the experience. In Excel for Microsoft 365 and Excel 2021 and later, the fill handle offers an AutoFill Options smart tag after release with choices for Fill Series, Fill Formatting Only, and Fill Without Formatting. Excel 2016 and Excel 2019 show the same smart tag with a narrower option set. Excel for the web shows the smart tag but historically limits some AutoFill options; confirm available options in your browser build's AutoFill menu before relying on them. The 6-pixel square size is fixed across desktop versions and cannot be enlarged through Excel Options, which is a known accessibility complaint.
One practical limit rarely documented: the fill handle's double-click behavior depends on the adjacent column being continuous. If the neighboring column has a blank cell at row 500, double-clicking fills only to row 499. That single gap is the most common reason a formula column looks incomplete after a double-click, and it has nothing to do with the formula itself. Fill the gap first or select the full destination range and use Ctrl+D instead.
Double-Click the Fill Handle to Fill Down to the Last Adjacent Row
Double-clicking the fill handle fills the active formula down to the row where the adjacent column's data ends, matching the length of the neighboring data block rather than the sheet's used range. This is the single fastest method on a dataset with continuous adjacent data. Hover over the fill handle until the pointer becomes the black cross, then double-click. Excel reads the column immediately to the left, or the right if the left is empty, and stops at the first blank.
Run the sequence in this order:
1: Click the cell holding the formula, and verify the reference style before filling—relative for row-by-row adjustment, mixed or absolute where a fixed cell must stay fixed. 2: Check the adjacent column for the block of data you want to match, since Excel uses the column immediately left (or right if the left is empty) as the fill boundary. 3: Double-click the fill handle's 6-pixel square at the bottom-right of the cell border. 4: Confirm the fill reached the intended last row, scrolling to the bottom of the column. 5: Open the AutoFill Options smart tag if you need Fill Without Formatting, which preserves the source cell's fill color and borders instead of exporting them down the column.
Failure handling is specific. If the fill stops early, find the blank in the adjacent column and fill it or use Ctrl+D over a selected range. If the formula produces the same value in every row, check for missing dollar signs or an absolute reference that should have been relative. If double-click does nothing at all, the formula cell may be inside a Table with structured references or the sheet may be protected; unprotect via Review > Unprotect Sheet, then retry.
The double-click is genuinely a time computation, not just a convenience. On a 50,000-row dataset, dragging the fill handle to the bottom takes 15 to 30 seconds of careful mouse movement, and it fails if you overshoot. Double-clicking takes roughly one second and lands precisely on the last used row. That's a 15–30x reduction in operation time per column, multiplied across every formula column in a model.
Fill Down and Fill Right with Ctrl+D and Ctrl+R
Ctrl+D copies the top cell of a selected range down through the rest of the selection, and Ctrl+R copies the leftmost cell across to the right; both work on single cells, ranges, or multiple non-contiguous selections. These keyboard shortcuts operate on whatever is currently selected, which makes them purpose-built for a formula already written in the first cell of a block. Press Ctrl+D for a vertical fill, Ctrl+R for a horizontal one. Both preserve the reference adjustment behavior of a normal drag.
The keyboard route beats the fill handle in three specific situations. First, when the adjacent column has gaps and double-click would stop early. Second, when you want to fill a range whose end point is far off screen; you can select the whole block with Ctrl+Shift+Down and press Ctrl+D rather than dragging. Third, when the formula must be applied to a filtered or hidden-row dataset. In the third case, Ctrl+D writes to hidden rows while a visible-only drag skips them, and this distinction matters for users who want to preserve values in hidden rows.
A useful variation is Ctrl+Enter. Type the formula in the formula bar while a multi-cell range is selected, then press Ctrl+Enter instead of Enter, and Excel writes the same formula into every selected cell at once, adjusting references as needed. This is faster than Ctrl+D for a single fill action and it doesn't depend on which cell in the selection is active. Combine it with the Name Box: type C2:C50000 in the Name Box, press Enter, type the formula in the formula bar, then press Ctrl+Enter. The entire range fills in one keystroke.
Ctrl+D's failure mode is subtler than the fill handle's. If the active cell in a multi-cell selection is at the bottom of the range instead of the top, Ctrl+D fills upward from the wrong reference and produces wildly incorrect formulas. Always confirm which cell within the selection is active before pressing Ctrl+D, since the active cell is not necessarily the top-left cell. Excel shows which cell is active with a slightly different border; check before you commit.
Copy and Paste a Formula to a Named Range for Very Long Columns
The clipboard route with the Name Box handles fills that browser-based and menu-based methods cannot reach at scale, and it's the recommended technique when the destination exceeds roughly half a million rows. Select the source cell, press Ctrl+C, click the Name Box (the small field to the left of the formula bar that shows the active cell address), type the destination range, press Enter, then press Ctrl+V. Excel pastes the formula into every cell in the named range with relative references adjusted.
The range syntax in the Name Box follows standard A1 notation. Type D2:D1048576 to target the last row of an Excel worksheet (Excel's maximum is 1,048,576 rows), or D2:D500000 for a half-million-row fill. Named ranges also work: type the name of a predefined range and Excel selects it. The Name Box has no apparent length limit, which is why it's the standard trick for fills the fill handle can't economically reach by dragging.
Paste behavior differs by workbook state. If the destination cells contain data, pasting overwrites without confirmation—Excel doesn't prompt on a clipboard paste into an existing range. Use Paste Special with Formulas if you want to preserve number formats and cell styles, or use Paste Special with Values when the receiving cells should freeze the result rather than carry a live formula. For columns of 800,000+ rows, pasting formulas is fine; pasting values into a very large range can take 30 seconds to two minutes depending on memory and the complexity of the formulas.
Clipboard fill has a hard boundary worth stating plainly: the maximum worksheet size in every modern Excel desktop version is 1,048,576 rows by 16,384 columns, and any method that exceeds this limit will truncate silently. If you're building a model that expects to grow to 3 million rows, Excel is the wrong tool and Power Query against an external source is the correct path. For regions up to the worksheet limit, the Name Box plus paste is the most reliable route.
Flash Fill Won't Do What You Think It Does
Flash Fill, invoked with Ctrl+E in Excel 2013 and later, recognizes a transformation pattern from one or two typed examples in an adjacent column and fills a whole column with the pattern—but it does not copy formulas, and it operates only on values. This is the most common misconception in the search that produced this article. A user searching for a "formula copy feature" who lands on a Flash Fill tutorial will end up with static results, not live formulas, and the values will not update when the source data changes.
Table: how three fill methods differ on a 10,000-row formula column.
| Method | Trigger | Live formulas kept? | Handles 500,000+ rows? | Adjusts relative references? | Common failure |
|---|---|---|---|---|---|
| Fill handle drag or double-click | Mouse | Yes | No, drag impractical; double-click stops at adjacent blank | Yes | Adjacent blank stops the fill early |
| Ctrl+D with Ctrl+Enter | Keyboard | Yes | Yes, subject to RAM | Yes | Active cell at wrong end of selection |
| Name Box + paste | Ctrl+C, Ctrl+V | Yes | Yes, to the 1,048,576-row limit | Yes | No confirmation overwrite on existing data |
Flash Fill has real uses—splitting a full name into first and last, formatting a phone number, extracting a domain from an email address—but every one of them produces values. If the source column changes, the Flash Fill output does not. A formula-based approach with TEXTBEFORE and TEXTAFTER (available in Microsoft 365 and Excel 2024) or classic LEFT, MID, and FIND functions is the durable alternative. For a structured column that receives new rows weekly, a formula in the leftmost cell combined with an Excel Table structured reference auto-fills new rows automatically.
Turn the Formula Into an Excel Table Column for Automatic Fill on New Rows
Converting a data range to an Excel Table with Ctrl+T turns the formula column into a calculated column that automatically extends when you add rows. Type the formula once in the first data row of the New Table column and Excel fills the entire column immediately. Every row subsequently added below the table—by typing, pasting, or importing—inherits the formula without any manual fill action.
Calculated columns solve the maintenance problem the fill handle only addresses once. A manually filled column needs re-filling when rows are appended; a calculated column fills new rows automatically. The distinction matters most in shared workbooks where other users append rows. Structured references also read more clearly in formulas: =Table1[@[Price]]Table1[@[Quantity]] is self-documenting in a way that =F2G2 is not, and reviewing a formula becomes easier after six months of revisions.
One caution: converting a range to a Table changes the semantics of references elsewhere. A formula that references A1:A1000 continues to work, but a formula that uses [@Column] structured references will fail if you convert the Table back to a range. Converting also forces a style, which some users turn off via Table Design > Table Styles > None. If your workbook has an existing format that Tables overwrite, set the format after conversion rather than before.
Excel for the web supports calculated columns with the same automatic-extend behavior, so the method is stable across desktop and browser. If your organization is still on Excel 2016, Ctrl+T and calculated columns work; structured references were introduced in Excel 2007. Version-specific differences mainly appear in the Table Design ribbon layout, not in the fill behavior itself.
Absolute vs Relative References: The Fill Handle's Silent Failure
A formula that references the wrong cell after filling almost always contains an absolute-vs-relative error, and the fill handle will run without warning. Excel adjusts every relative reference row by row during a fill and keeps every absolute reference (marked with $) fixed. A common broken result is a VLOOKUP against a lookup table that shifts one row down with every row it's filled into, so row 500 looks at a lookup table starting at row 499 instead of row 1. The formula returns wrong values, not errors, which makes the bug harder to find.
Cycle references with F4 to lock the parts that should stay fixed. Place the cursor in the reference inside the formula bar and press F4 to rotate through the four states: A1 (fully relative), $A$1 (fully absolute), A$1 (row locked, column relative), and $A1 (column locked, row relative). The mixed states matter in matrix-style models where a horizontal fill should adjust the row reference but not the column or vice versa. Batch-fill errors are the most expensive kind, because fixing 40,000 rows of wrong values costs more than writing the formula correctly the first time.
A second silent failure is a formula that begins with an implicit intersection or a spilled-array reference inside a range. If the formula returns a dynamic array result and you drag it down, Excel returns a #SPILL! error rather than filling as expected. This behavior is specific to Microsoft 365 and Excel 2021 and later; earlier versions don't produce dynamic arrays at all. If you see #SPILL! after a fill, the destination rows contain blocked cells or the formula returns multiple values per row.
An audit tip that catches both errors: after filling a formula column, check the top row and the bottom row by eye. If the relative references increment correctly, the fill is intact; if they stay fixed, you intentionally used $ signs. If the top reference jumps to a different table, the fill ran but the reference logic was wrong. Verify before you share the workbook.
Fixing the Common Fill Failures: Blanks, Tables, and Protected Sheets
Fill failures cluster into four causes: a blank in the adjacent column breaks double-click, a Table context changes the fill behavior for surrounding cells, a protected sheet blocks any fill, and a hard-coded destination cell address makes a fill produce wrong results. Each has a specific fix. Diagnosis is easier than repair but faster when you know the cause before you drag.
Table: failure diagnosis and repair.
| Symptom | Likely cause | Fast fix |
|---|---|---|
| Double-click fills to row 500, expected 5,000 | Blank cell in adjacent column at row 500 | Fill the blank or use Ctrl+D over a range |
| Fill handle icon disappears on hover | Workbook is protected | Review > Unprotect Sheet, reapply after fill |
| Fill produces #SPILL! in one or two rows | Dynamic array blocked by adjacent data | Clear the blocked cells or wrap the formula in @ |
| Fill produces identical values in every row | Missing $ on a relative reference that should stay fixed, or vice versa | Cycle references with F4 |
| Attribute paste is missing | AutoFill Options smart tag was collapsed | Re-select source and destination, use Paste Special |
The most common failure reported in help forums is a fill that stops at a seemingly arbitrary row. In roughly nine cases out of ten the cause is a hidden blank in the adjacent column, produced by a data import that wrote empty strings rather than true blanks. Those look like data to Excel in some contexts and like blanks in others; the fill handle treats them as blanks. Press Ctrl+G > Special > Blanks to identify them before filling, or use =COUNTA() on the adjacent column as a sanity check.
A second subtle failure appears when filling down across an Excel Table boundary. If the fill handle starts inside a Table and drags outside, Excel fills the Table portion correctly and expands the Table if the source data extends further. If the drag starts outside a Table and enters one, results vary by version. Microsoft 365 expands the Table and fills; Excel 2016 may fill only the cells outside the Table. For predictable behavior, keep the fill entirely inside or entirely outside the Table, or convert the range to a Table first.
FAQ
Does the fill handle copy formatting along with the formula?
Yes, by default, and you can turn it off. After a fill, the AutoFill Options smart tag appears with Fill Without Formatting as one option, preserving the source cell's fill color, borders, and font while still copying the formula. Choose that option if the formula column should use the destination cells' existing format. If the smart tag is missing, it has been collapsed; press Alt or use Excel Options > Advanced > Enable fill handle and cell drag-and-drop to restore it.
Can I fill a formula in Excel for the web the same way?
Partly. Double-clicking the fill handle works in Excel for the web, and so does Ctrl+D. The Name Box paste route also works. Some AutoFill Options offered on desktop are limited in the browser, and dragging is slower. For long columns, the Name Box plus paste is the most reliable browser method because it stays responsive on ranges of 200,000+ rows, while dragging the fill handle in a browser can be laggy past roughly 50,000 rows.
Why did my formula fill down but the results are identical in every row?
That's a sign of an unintended absolute reference. If the source formula used =$B$2 but you wanted =B2, every row locks to cell B2 and returns the same value. Cycle the reference with F4 while editing until only the parts that should stay fixed carry $ signs. A quick diagnostic: click the bottom filled cell by eye; if its formula shows =$B$2 but the top cell shows =$B$2 too, the reference is over-locked.
Can Flash Fill copy formulas?
No—Flash Fill (Ctrl+E) produces values, not formulas, and it cannot be used to copy live formulas. It observes your typed examples in an adjacent column and fills a pattern, but the result is static text or numbers. If you need a formula that updates with source data, use the fill handle, Ctrl+D, Ctrl+Enter, or a calculated Table column. Flash Fill's final values will not change if the source column changes.
How many rows can I fill with the fill handle?
Practically, several thousand rows by dragging and up to roughly half a million by double-click, as long as the adjacent column has data to the end of the fill. Above that, dragging becomes unusable and double-click only reaches the first blank in the adjacent column. The Name Box plus paste route is effective up to Excel's worksheet maximum of 1,048,576 rows. Beyond that limit, Excel is the wrong tool and external data tools are needed.
What's the fastest way to fill a formula in a filtered dataset?
Use Ctrl+D on a range selected via the Name Box, and be aware that Ctrl+D writes formulas into hidden rows while a visible-only drag skips them. If the intent is to fill only visible rows, use Excel's Go To Special with Visible cells only, then Ctrl+D. If the intent is to fill every row regardless of visibility, plain Ctrl+D achieves that. The two intents produce very different results, so choose before you press the shortcut.
Does the fill handle automatically extend a calculated Table column when new rows are added?
Yes—that's one of the strongest reasons to convert a formula range to an Excel Table. Type the formula in the first data row of a Table's new column and Excel fills it into every existing row immediately. Any row added subsequently—by typing below the last row, pasting data, or importing—inherits the formula automatically. Removing the Table (via Table Design > Convert to Range) loses the auto-extend behavior and returns the column to manual fill.