Press Enter inside an Excel cell and the cursor jumps to the next row. That's almost never what you actually wanted. You wanted a line break โ a second line of text inside the same cell. The shortcut that does this isn't on the ribbon, isn't in the right-click menu, and isn't obvious from anything Microsoft labels on screen. So most people end up squashing two lines into one cell separated by an awkward space.
Others widen the column to a ridiculous size, or they give up and paste the address into Word. Neither approach scales. Neither survives the next time a colleague reorganizes the sheet. And neither produces output you'd want to send to a client or paste into a report.
There's a better way. Alt+Enter on Windows. Ctrl+Option+Enter on Mac. CHAR(10) inside a formula. Three small tricks, one big payoff. Whether you're cleaning up a mailing list, building a multi-line dashboard label, or just trying to write a proper street address without it sprawling across three columns, this guide covers every method that works โ plus the one setting you have to flip on or the line breaks stay invisible.
The trick most people miss isn't the shortcut itself. It's the second step: Wrap Text. Without it, your line break exists inside the cell value but the rendered cell shows everything on a single line as if nothing happened. Turn Wrap Text on once, and every method below starts working the way you'd expect.
Double-click the cell to enter edit mode, or press F2. Move the cursor to wherever you want the line to break. Hold Alt and press Enter. The cursor drops to a new line inside the same cell. Type the next line of text. Press Enter when you're finished and the cell commits.
That's it. No menu, no formula, no formatting dialog. The shortcut works in every version of Excel from 2003 through Microsoft 365, on every Windows machine, in every workbook. It works in formula bar editing too โ useful when the line you're breaking is buried inside a long string and you want to see the whole thing as you edit.
One catch: you have to be in edit mode first. If you just select a cell and press Alt+Enter, nothing happens โ Excel treats it as a non-action because there's no active text cursor inside the cell. The double-click (or F2) is the part most beginners skip. Get that habit down and the rest becomes automatic.
Many spreadsheet veterans use F2 because it keeps both hands on the keyboard, which matters when you're banging through fifty addresses in a contact list and don't want to grab the mouse for each one. F2 enters edit mode with the cursor at the end of the existing content, which is usually where you want to start typing anyway. From there, position the cursor with arrow keys, hit Alt+Enter, type the next line, repeat.
If a cell already contains text and you want to insert a line break in the middle of it, the sequence is the same. F2 to edit, arrow keys to navigate to the break point, Alt+Enter. Excel splits the text at that exact character. Nothing on either side is lost. You'll notice the cell grows in height the moment you commit the edit, assuming Wrap Text and AutoFit Row Height are both active.
Mac keyboards make this slightly less obvious. The shortcut everyone tries first โ Alt+Enter โ does the wrong thing on macOS because the Option key sits where Alt would be on a PC keyboard, and the modifier combination Excel listens for is different. The working combinations on Mac are Ctrl+Option+Enter and Cmd+Option+Enter. Both produce the same result.
Most Mac users land on Ctrl+Option+Enter first because it mirrors the Windows muscle memory most closely. If you're coming from a Windows workflow and your fingers keep reaching for Alt+Enter, hold both Ctrl and Option together before pressing Enter and you'll get there. The result is identical: a line break inside the same cell, with the cursor jumping to the new line ready for your next bit of text.
Cmd+Option+Enter exists because some external keyboards remap the Ctrl key to a position that conflicts with other shortcuts. Apple's own Magic Keyboard keeps Ctrl in its standard place, but third-party keyboards aren't always so consistent. If Ctrl+Option+Enter ever feels awkward on your specific setup, switch to Cmd+Option+Enter and you'll keep the same outcome with a different finger position.
Excel for Mac sometimes intercepts these shortcuts when a system-wide accessibility hotkey collides with them. If neither combination works, open System Settings, search for Keyboard Shortcuts, and check whether anything global is bound to Ctrl+Option+Enter. Disabling the conflicting binding restores the Excel behavior. This is rare but it has tripped up enough people that it's worth mentioning before you start blaming the software.
One more Mac-specific quirk: the Touch Bar on older MacBook Pros sometimes shows context-sensitive buttons that intercept Enter when you're inside an Excel cell. Hiding the function row or pressing fn+Enter explicitly bypasses that interception in cases where the regular shortcuts misfire.
Manual typing: use Alt+Enter (Windows) or Ctrl+Option+Enter (Mac) while editing a cell. Inside a formula: use CHAR(10) in the string, e.g. =A1&CHAR(10)&B1. VBA: insert vbLf or Chr(10) between strings. Power Query: use #(lf) in M code. Every method depends on Wrap Text being turned on for the destination cell.
Manual line breaks are fine for one-off entries. They fall apart the moment you want to build a multi-line label out of values from other cells. That's where CHAR(10) earns its keep. CHAR is a function that returns the character matching an ASCII number, and 10 happens to be the line feed character โ the same invisible byte Excel writes when you press Alt+Enter.
The pattern looks like =A1&CHAR(10)&B1. Concatenate the first value, glue in a line break, then concatenate the second value. Drop that in any cell with Wrap Text enabled and you get two lines from two source cells. Chain more pieces together with additional ampersands and CHAR(10) calls to build addresses, names with titles, or compact summary blocks for dashboards.
The TEXTJOIN function works even better for longer lists. =TEXTJOIN(CHAR(10), TRUE, A1:A5) stacks five values on top of each other with line breaks between them, and the TRUE argument skips empty cells so blanks don't leave gaping holes in your output. This is the formula most people graduate to once they outgrow plain ampersand concatenation. To build the underlying values, brush up on how to create a formula in Excel if you need a refresher on the basics first.
One trap with CHAR(10): the line break only renders when Wrap Text is on. Without it, the result cell shows everything jammed together with no visible separation. The character is in the cell value, but the rendering layer ignores it. Turn Wrap Text on, and the formula output instantly transforms from a smashed-together string into clean multi-line output.
A second trap is CHAR(13). That's the carriage return, which some legacy systems use instead of (or alongside) line feed. Excel for Windows ignores CHAR(13) at the start of a cell value, but pairing it with CHAR(10) โ as CHAR(13)&CHAR(10) โ sometimes causes weird spacing in older versions. Stick with CHAR(10) alone. It works in every Excel version still in active use, on both platforms, and it's what every modern import/export workflow expects.
Stack street, city, and ZIP into one cell so labels and contact exports stay clean.
Combine a metric name with its unit on a separate line for compact, readable headers.
Add context under a value without breaking the column layout or spawning a comment.
Plain Enter has a different job inside Excel. It commits the current cell and moves the selection to the next row down โ or to the next column right if you've changed the default in Excel options. That behavior is what makes data entry fast: type a value, press Enter, type the next value, press Enter, and you fly down a column without touching the mouse. Useful for entering data. Disastrous when you actually wanted a line break.
Microsoft chose Alt+Enter because it parallels the line-break shortcut in Word and other Office apps, and because it leaves plain Enter free for the data-entry workflow that 95% of users rely on. The choice is consistent, even if it's not discoverable. Once you know the shortcut, you wonder how anyone manages without it.
You can change the post-Enter direction in Excel Options. Go to File, Options, Advanced, and look for After pressing Enter, move selection. The dropdown lets you pick Down, Right, Up, or Left โ or you can uncheck the box entirely and have Enter commit the cell without moving anywhere. None of those changes affect Alt+Enter, which always inserts a line break regardless of the post-Enter setting.
Some users disable post-Enter movement on workbooks that contain mostly multi-line cells, just to make manual editing less jarring. Others leave the default alone and rely on Tab for sideways movement when they need it. Either approach is fine โ the right choice depends on how often you're doing fresh data entry versus editing existing cells.
If your goal is moving to the next cell intentionally, regular Enter is the right key โ see the guide on how to enter in a cell in Excel for the keyboard navigation flow. If your goal is staying inside the current cell and starting a fresh line, Alt+Enter (Windows) or Ctrl+Option+Enter (Mac) is what you want.
Inside VBA in Excel, the constant vbLf represents a single line feed โ the equivalent of Alt+Enter from code. Use it between strings when you write a value into a cell.
Range("A1").Value = "Line one" & vbLf & "Line two"
Range("A1").WrapText = TrueThe second line turns on Wrap Text programmatically so the result actually displays. Skip it and the break is invisible.
You can also use Chr(10), which produces the same character. Some legacy macros use vbCrLf (carriage return plus line feed), but Excel cells only need the line feed half โ the carriage return adds an invisible extra character that some text parsers later trip over.
excel power query uses M code, which has its own escape for line feeds: #(lf). Concatenate it into a column inside a custom-column step.
= Table.AddColumn(Source, "Address", each [Street] & "#(lf)" & [City])When the query loads back to the sheet, the destination cells need Wrap Text enabled โ same rule as everywhere else. Power Query happily produces the byte; Excel just refuses to render it without the formatting flag.
Office Scripts (TypeScript inside Excel for the web) uses the standard JavaScript escape \n for a line feed.
sheet.getRange("A1").setValue("Line one\nLine two");
sheet.getRange("A1").getFormat().setWrapText(true);Set wrap text in the same script. Same story across every automation path โ the byte alone isn't enough; the cell has to know to wrap.
The single most common complaint about Alt+Enter is that nothing visible happens. The line break is there โ open the cell in edit mode and you'll see the cursor drop to a new line โ but the rendered cell shows everything on one line, often with a stray pipe character or unexpected gap where the line feed lives. The fix is always the same: Wrap Text was off, turn it on.
If Wrap Text is on and lines still won't show, look at the row height. Excel auto-fits rows by default, but if anyone has manually dragged a row to a fixed height, the cell will clip after the first line. Right-click the row number, choose Row Height, and either enter a number large enough to accommodate every line or choose AutoFit Row Height to let Excel size it automatically. AutoFit is the safer default for any sheet where row heights aren't deliberately controlled.
Merged cells are the third trap. AutoFit doesn't work on merged cells โ Excel can't calculate the right height when one cell spans multiple columns. You'll need to set the height by hand, or unmerge and use a different layout. This bites people most often in dashboard templates copied from elsewhere, where the original designer merged cells for visual effect without thinking about whether anyone would ever try to add multi-line content later.
A subtler issue: pasting from a source that uses CR+LF (carriage return plus line feed, common in Windows text files) sometimes lands two line break characters in your cell when you only wanted one. You'll see what looks like a blank line between every entry, even though you only typed one Alt+Enter at each break. Fix it with Find and Replace โ search for the carriage-return character and replace with nothing, leaving only the line feed behind.
Last, double-check the cell's vertical alignment. Cells set to vertical center alignment show multi-line content centered in the cell, which is usually what you want for short lists. Cells set to top alignment with too much row height leave large blank space below the text. Adjust under Home, Alignment, Vertical Align.
Cells with embedded line breaks copy fine inside Excel. Paste into another Excel cell and the breaks come along. Paste into Word or PowerPoint and they survive too โ the line feed character is standard enough that most Office apps respect it. Paste into a plain text editor and you'll usually see the breaks become real newlines in the destination.
Pasting from outside Excel is where it gets messier. Web pages, emails, and CSV exports often use a mix of carriage returns and line feeds, and some sources use Unicode line separators that look identical but parse differently. If you paste a contact list and the line breaks come in as visible little boxes or strange characters, run Find and Replace with the Use wildcards option enabled, and replace ^l (or the literal character you see) with CHAR(10) using a helper formula in a scratch column.
CSV imports are the worst offender. Excel sometimes treats embedded line breaks as a record terminator and splits one row into two. Wrapping the field in double quotes in the source CSV usually fixes this โ most well-formed CSV exporters do it automatically, but hand-edited files often miss the quotes. If you control the export, double-check the spec.
Pasting from Excel to a webpage or HTML email behaves differently again. The destination usually strips the line feed and replaces it with whitespace, especially in plain-text email composers. To preserve the break, you may need to convert the cell to HTML markup (with <br> tags) using a SUBSTITUTE formula before copying. The pattern is =SUBSTITUTE(A1, CHAR(10), "<br>"), which swaps every line break for the HTML equivalent.
If you're going the other direction โ pulling HTML into Excel and wanting the <br> tags to become real line breaks โ flip the formula. =SUBSTITUTE(A1, "<br>", CHAR(10)) turns markup back into in-cell breaks. Pair with Wrap Text and you're set.
Wrap Text on its own causes long text to flow onto multiple visual lines based on the column width. Make the column narrower, and the text wraps sooner. Make it wider, and the wrapping disappears. That's word wrap โ the same behavior every word processor uses, governed by available space, not by any character you typed.
Alt+Enter inserts an explicit line break that survives column resizing. No matter how wide you stretch the column, the break stays exactly where you put it. That's the difference: word wrap is layout-dependent, while a hard line break is stored as a character inside the cell value. The two coexist comfortably โ a cell can have several hard breaks and automatic wrapping inside each segment if any individual line is wider than the column.
Knowing which you need keeps your formatting predictable. Headers, addresses, and labels usually call for hard breaks. Long descriptions usually rely on word wrap alone. A mailing address has three meaningful lines no matter how wide the column is, so hard breaks are correct. A product description that just needs to fit nicely inside a fixed-width column is a word-wrap job.
Mixing the two is common in headers. Imagine a column header that reads Q4 Revenue on the first line and FY24 Forecast on the second. The break between those phrases is meaningful, so use Alt+Enter. If the header still looks crowded, narrow the column slightly and let word wrap take the rest. The hard break preserves your intended layout while word wrap handles overflow gracefully.
When you copy or move the cell to a different sheet, hard breaks always come along. Word wrap is a formatting property that may or may not transfer depending on paste-special choices. That's worth keeping in mind if your line-break-heavy cells need to survive being moved between workbooks.
Three methods, one underlying behavior. Alt+Enter for manual edits on Windows. Ctrl+Option+Enter for the same job on Mac. CHAR(10) inside formulas when the line break has to come from formula logic instead of a keystroke. Whichever route you pick, the cell needs Wrap Text turned on or the result stays invisible โ that single setting trips up more new users than the shortcuts themselves.
Once these become muscle memory, you'll stop reaching for second cells just to hold what's really one logical value. Addresses, dashboard captions, file headers, exam-prep notes โ anything that benefits from a stacked layout fits inside one cell and stays sortable, filterable, and copy-friendly. That's the practical reward for learning a shortcut Microsoft never quite got around to advertising.
If you find yourself adding the same multi-line pattern over and over, build a formula that constructs it from source columns. =A2&CHAR(10)&B2&CHAR(10)&C2 turns three columns into a single multi-line label cell that updates whenever the sources change. Tidy. Maintainable. Easier to audit than fifty manually broken cells.
For programmatic workflows, lean on VBA's vbLf, Power Query's #(lf), or Office Scripts' \n depending on which automation layer fits your situation. All three produce the same line-feed byte that Alt+Enter writes. The cell rendering rules are identical regardless of how the character got there โ Wrap Text on, AutoFit Row Height active, no merged cells in the way.
Brush up on related quick-entry tricks at how to enter in Excel cell for the broader keyboard workflow, including the navigation shortcuts most people miss when they first switch from mouse-driven editing.
Double-click the cell to enter edit mode, position the cursor where you want the break, then press Alt+Enter on Windows or Ctrl+Option+Enter on Mac. Make sure Wrap Text is enabled on the cell or the new line won't be visible. You can also press F2 instead of double-clicking to enter edit mode using only the keyboard, which is faster when you're adding line breaks to many cells in a row.
The Mac shortcut is Ctrl+Option+Enter. Cmd+Option+Enter also works in most versions of Excel for Mac. Both produce a real line feed character inside the cell. If neither combination works, check System Settings for a global keyboard shortcut that may be intercepting the keys before Excel sees them. Disabling the conflicting binding restores normal behavior.
Pressing plain Enter moves to the next cell. To stay inside the current cell and return to a new line, use Alt+Enter (Windows) or Ctrl+Option+Enter (Mac). The cell stays selected and the cursor drops one line. The behavior is identical whether you're editing a fresh empty cell or inserting a break inside text that's already there โ the inserted character splits the existing content at the cursor position.
Wrap Text is off. Select the cell, open the Home tab, and click Wrap Text in the Alignment group. If wrap is already on but lines still hide, right-click the row number and choose AutoFit Row Height. If you're working inside a merged cell, AutoFit won't function โ unmerge first or set the row height manually to a value large enough for every line.
Use CHAR(10) between string fragments. Example: =A1&CHAR(10)&B1 stacks the value from A1 above the value from B1 in one cell. The destination cell needs Wrap Text enabled to display the break. For longer lists, =TEXTJOIN(CHAR(10), TRUE, range) stacks every value in a range with line breaks between them and skips empty cells automatically.
Wrap Text breaks long text automatically based on column width. A manual line break (Alt+Enter or CHAR(10)) is an explicit character that breaks the line exactly where you put it, regardless of column width. Both can coexist in the same cell. The hard break is stored as part of the cell value and survives any column resize; word wrap is a layout effect that shifts as the column changes.
Use vbLf or Chr(10) between string parts and turn on wrap text in the same routine. Example: Range("A1").Value = "Top" & vbLf & "Bottom" followed by Range("A1").WrapText = True. Avoid vbCrLf for in-cell breaks โ it includes a carriage return that adds an invisible extra character some downstream parsers don't expect.
Yes. In M code, use #(lf) as the line feed escape. Example: = [Street] & "#(lf)" & [City] inside a custom column. After loading back to the sheet, enable Wrap Text on the destination cells to see the breaks. The escape sequence works in every Power Query environment, including the version embedded in Excel for Microsoft 365.