When someone asks how to create a header in Excel, the right answer depends on what kind of header they actually need. Excel uses the word "header" in three completely different ways, and mixing them up is the single biggest reason people get stuck.
There are data table column headers (the labels in the first row of a list โ Customer Name, Order Date, Total), page headers and footers that only appear when you print or open Page Layout view, and repeating title rows that print the same header row on every printed page. Each one lives in a different menu, behaves differently, and solves a different problem.
This guide walks through all three step by step. You'll see exactly where to click in Excel for Microsoft 365, Excel 2021, and Excel for the Web โ and what to do when the Mac version hides options the Windows ribbon shows. You'll also learn the small fixes that make headers behave: how to freeze the top row so column labels stay visible while you scroll, how to convert a plain range into a Table so headers get styled and filterable automatically, and how to print the same header row at the top of page 2, page 3, and beyond.
Most tutorials skip the part that actually breaks workflow โ the moment when you set up a header and it shows up on screen but not on the printout, or it prints on page 1 but vanishes on page 2. We'll fix those exact issues. By the end, you'll have a clear mental map: which menu controls which kind of header, what keyboard shortcuts speed things up, and how to combine all three header types in a single workbook so your spreadsheet looks professional both on screen and on paper.
One more thing before we start. If your real goal is locking the top row in place while you scroll, that's not technically a "header" feature in Excel โ it's freeze panes. We'll cover that too because it's the next thing everyone asks after creating column headers. The two work together, but they live in different parts of the ribbon, and confusing them costs people hours.
Let's start with the most common one โ the data table column header. This is the labeled first row of a spreadsheet that tells your readers what each column contains. Open a fresh worksheet. Type your labels into row 1: A1 might be "Customer Name", B1 "Order Date", C1 "Order Total", and so on. That's it โ those are your column headers. But raw text in row 1 doesn't really stand out, so you need three small upgrades to make it work like a real header.
First, format the row. Select row 1 by clicking the row number on the left. Press Ctrl+B to bold it. Optionally add a fill color from the Home tab (Font group > paint-bucket icon) and a bottom border so the divider between your headers and data is visible. Some people center-align the text using Ctrl+E, though left-alignment usually reads better for text-heavy columns and right-alignment fits numeric labels.
Second, freeze the top row so it stays put when you scroll. Click the View tab, then in the Window group click Freeze Panes > Freeze Top Row. Now scroll down โ row 1 stays anchored at the top.
This is freeze panes, not a header feature, but it's what most people actually want when they ask how to "keep the header visible". To freeze both the top row and the first column at the same time, click cell B2 first, then click Freeze Panes > Freeze Panes (no submenu) โ Excel locks everything above and to the left of your cursor.
Third โ and this is the upgrade most beginners skip โ convert your range to a Table. Click any cell in your data and press Ctrl+T. Excel shows a "Create Table" dialog with the detected range. Tick "My table has headers" if your first row already contains labels, then click OK.
Excel does five useful things at once: it formats row 1 with a styled header, adds a dropdown filter to every column, freezes the header behavior so labels stay visible while you scroll inside the Table, gives the range a name you can reference in formulas, and extends formatting automatically when you add new rows. Press Ctrl+T once and you've solved most "make a header" problems in a single keystroke.
A short word on header text itself. Keep labels clear, short, and human. "Customer Name" beats "CN" or "cust_nm". Avoid units inside labels โ write "Weight" as the header and put "(kg)" in row 2 or use the column format to show the unit. Don't merge header cells โ merging breaks sorting, filtering, and pivot tables. If you need a two-row visual header, use one row of labels and put the section title in a separate row above the Table boundary, not inside it.
Now the second kind โ page headers and footers. These appear only on printed output and in Page Layout view; you won't see them in the normal grid. Use them for the document title, the date a report was generated, page numbers, the file name, your company logo, or any text that should appear on every printed page. There are two ways in: the visual Page Layout view, and the older Page Setup dialog.
The visual route is easier. Click the View tab, then click Page Layout. The worksheet now looks like printed pages with margins. At the top you'll see three boxes labeled "Add header" โ left section, center section, right section. Click any box and type. The Header & Footer Tools tab appears in the ribbon with buttons to insert built-in placeholders: page number, current date, file name, sheet name, total pages, and even a picture. To add a footer, scroll to the bottom of the same page view and you'll see three matching footer boxes.
The other route is the Insert > Header & Footer command. Click the Insert tab, then in the Text group click "Header & Footer". This jumps you straight into Page Layout view with the cursor in the center header box. Either path works; the Insert button is just a shortcut.
Built-in placeholders are the magic part. The buttons on the Header & Footer Tools tab insert codes that Excel resolves at print time. The codes are:
You can also type these codes directly into the header box. A common footer pattern is "Page &[Page] of &[Pages]" in the center section โ it renders as "Page 1 of 12", "Page 2 of 12", and so on across the print run. Combine codes freely: a header like "&[File] โ &[Tab] โ &[Date]" gives you file name, sheet name, and the print date on every page.
Excel's built-in header codes start with an ampersand and use square brackets. Memorize the five most useful ones:
Type these directly into any header section box, or use the ribbon buttons on the Header & Footer Tools tab. They resolve at print time, so the live preview shows real values, not the codes.
Now we get to the part that confuses everyone: printing a header row on every page. This is technically not a "header" in Excel's vocabulary โ it's called Print Titles, but it's what most people actually want when they say their header "isn't printing on page 2". If your data has a labeled first row (Customer Name, Order Date, Total) and your printout runs to five pages, you want those column labels to appear at the top of pages 2, 3, 4, and 5 too. By default Excel won't do that. You have to switch it on.
Click the Page Layout tab on the ribbon (not Page Layout view โ the ribbon tab). In the Page Setup group click Print Titles. The Page Setup dialog opens on the Sheet tab. In the "Rows to repeat at top" box, type $1:$1 โ that's the absolute reference for row 1. To repeat the first three rows, type $1:$3. To repeat the first column on every page (useful when wide tables print across multiple pages horizontally), use the "Columns to repeat at left" box and enter $A:$A or $A:$B for the first two columns. Click OK.
Now do File > Print and look at the preview. Page 2 should show row 1 at the top, just like page 1. If it doesn't, the most common cause is that you're in a Table โ Print Titles doesn't apply inside a Table because Tables already repeat their header row automatically on each printed page. Convert the Table back to a range (Table Design tab > Convert to Range) if you need Print Titles instead, though usually keeping it as a Table is the better choice.
A related problem: your header looks fine in the normal grid but is missing on the printout. That's the difference between the page header (the thing in the margin) and column headers (row 1 of your data). Check Page Layout view to see what your printed pages will actually look like. If row 1 is missing from page 2 of the preview, you need Print Titles, not a page header.
The labeled first row of a list โ Customer Name, Order Date, Total. Lives in your worksheet cells.
Margin text that appears only on printed pages and in Page Layout view. Use for titles, dates, page numbers, logos.
Repeats your column header row on every printed page. Different from page headers โ this prints actual worksheet rows.
Three header sections give you a lot of layout flexibility. The left, center, and right boxes are independent โ you can put your company logo on the left, the document title in the center, and the page number on the right. That's the most common professional layout. The center is the natural place for the main title; the corners are best for small contextual info (date, page number, version).
Different headers on different pages? Excel supports two switches for this. Open the Page Setup dialog (Page Layout tab > small arrow at the bottom right of the Page Setup group, or click "Print Titles"). Go to the Header/Footer tab. You'll see two checkboxes:
Tick the box, then click "Custom Header" or "Custom Footer" to set each variant. The dialog shows separate fields for first-page header, odd-page header, even-page header, and the same for footers.
Margins matter too. Excel reserves a fixed area at the top and bottom of each page for the header and footer. If your header text is large or your logo is tall, it may get clipped. Open Page Setup > Margins tab and increase the "Header" and "Footer" margins (try 0.75 inch / 1.9 cm for taller logos). The "Top" and "Bottom" margins control where your worksheet data starts and ends; the "Header" and "Footer" margins control how far from the page edge the header text sits. They're independent and easy to confuse.
The Windows version of Excel (Microsoft 365, Excel 2021, Excel 2019) has the most complete header interface. Page Layout view shows three header sections at the top of each page. The Header & Footer Tools tab on the ribbon gives you one-click buttons for every built-in placeholder, plus picture insertion and formatting. Use Alt+N+H to jump to Insert > Header & Footer with the keyboard. The Page Setup dialog (small arrow in Page Setup group on Page Layout ribbon) has full Header/Footer, Margins, Sheet, and Page tabs for advanced control.
Mac Excel has a more limited header UI. The Header & Footer command on the Insert menu opens a simpler dialog rather than the visual Page Layout view. You get three sections (left, center, right) and placeholder buttons, but live preview is less detailed. Some advanced options like inserting a picture into the header are present but harder to find โ use Insert > Header & Footer, then click the picture icon in the toolbar. The keyboard shortcut is Command+P to print, then click "Page Setup" in the print dialog for full header options.
Excel for the Web (the browser version at office.com) supports headers and footers but only through the Page Setup pane. Click File > Print > Page Setup to access them. You can type text in the three sections and insert basic placeholders, but you can't insert pictures, can't use Different First Page or Different Odd & Even, and Page Layout view isn't available. For complex headers, edit the file in desktop Excel first; the web app will preserve and print existing headers correctly even if it can't edit every feature.
If you build templates or automate reports, set headers in code via the PageSetup object. The three sections map to LeftHeader, CenterHeader, and RightHeader:
Sub SetHeader()
With ActiveSheet.PageSetup
.LeftHeader = "&G" ' picture placeholder
.CenterHeader = "Q1 Report"
.RightHeader = "&D" ' date
.LeftFooter = "&F"
.CenterFooter = "Page &P of &N"
.RightFooter = "Confidential"
End With
End Sub
The shorthand codes are &P (page), &N (pages), &D (date), &T (time), &F (file), &A (tab), &G (picture). Use PrintTitleRows = "$1:$1" to set the repeating row.
Adding a logo or picture to your header gives reports a professional finish. Open Page Layout view and click the header section where you want the logo. On the Header & Footer Tools tab, click Picture in the Header & Footer Elements group. Browse to your image file โ PNG with a transparent background works best โ and click Insert. Excel adds the code &[Picture] to the section, but in the live view it shows the image at its native size.
Native size is almost always wrong for a header. With the picture inserted, click Format Picture (right next to the Picture button on the ribbon). The Format Picture dialog opens. On the Size tab, set height to about 0.5 inch (1.3 cm) for most logos โ that fits comfortably in the default header margin. Lock aspect ratio so width scales correctly. If your logo still looks too large or too small, adjust until it sits cleanly without overlapping the worksheet area.
Click below the header to commit. Print preview now shows the logo on every page (unless you set Different First Page). If the logo shows on screen in Page Layout view but doesn't appear in the print preview, the most common cause is that the picture path was wrong or the file moved โ re-insert it.
You should know one limitation: Excel does not support formulas inside headers. You cannot type =A1 into a header section and expect it to show the value of A1. Codes like &[File] work because they're built-in placeholders, not formulas. If you need a header that pulls from a cell โ say, the project name from B2 โ there's a workaround: write a small VBA macro on the Workbook_BeforePrint event that updates the header from the cell value just before printing.
Here's a quick reference of the most common header problems and the exact fix for each. Most of these come from confusing the three header types โ once you know which "header" you're dealing with, the fix is usually one or two clicks.
Problem: My header shows on screen but not when I print. You're looking at the column header in row 1 of your worksheet. That's not a page header โ it only prints if it's inside the print area, and it only repeats on every page if you set Print Titles. Use Page Layout view (View > Page Layout) to see what will actually print. If your column labels aren't repeating on each page, go to the Page Layout ribbon tab > Print Titles > Rows to repeat at top: $1:$1.
Problem: The header is cut off at the top of the printed page. Your header margin is too small for the text or logo. Open Page Setup > Margins tab and increase the Header value (and Top margin if the page header is bumping into the worksheet data). Try 0.75 inch / 1.9 cm.
Problem: The header shows on page 1 only. You have "Different first page" checked in Page Setup > Header/Footer tab, and you only set the first-page header. Either uncheck the box or also set the standard header in the same dialog.
Problem: I see &[Date] in my header instead of today's date. The header is showing the literal code rather than the resolved value. This usually means you're looking at the editing view. Switch to Page Layout view or Print Preview โ the code resolves at render time.
Problem: My header disappeared after copying the sheet to another workbook. Headers are stored at the sheet level, not the workbook level. They should copy with the sheet, but if you used Move or Copy and only ticked the values, they don't transfer. Right-click the sheet tab > Move or Copy, and tick "Create a copy" to preserve all formatting including headers.
Once you understand the three header types, the workflow becomes straightforward. Decide which one (or which combination) you need for the workbook in front of you. For a quick screen-only dashboard, column headers in row 1 plus freeze top row is enough. For a printed monthly report, add a page header with the report title and a footer with page numbers and the date. For a multi-page data export where the column labels must appear on every page, set Print Titles to repeat row 1.
Combining all three is common. Imagine a printed sales report: row 1 has bold column labels (Region, Product, Q1, Q2, Q3, Q4 Total), the page header carries the company logo on the left and "Q4 2026 Sales Report" centered, and the footer shows "Page 1 of 8" in the center with the file path on the right. Print Titles is set to $1:$1 so the column labels appear on every page. That single workbook uses every header concept Excel offers, and once you've built it once, the pattern is reusable.
A few final pro tips. Save your most common header layout as a workbook template (File > Save As > Excel Template .xltx). When you start a new report, opening the template gives you the header, footer, margins, and Print Titles already in place.
For repetitive header work across many sheets, VBA is your friend โ a five-line macro can apply the same header to every sheet in the workbook. And if you collaborate, remember that headers travel with sheets and survive copy-paste of cells differently than the worksheet body: it's worth a quick Print Preview check after any major restructure.
Headers and footers may look like a small piece of Excel, but they're one of the fastest ways to make a workbook look professional and easy to read. The three header types โ column headers in your data, page headers in your margins, and Print Titles that repeat labels across printed pages โ each solve a different problem, and the moment you stop confusing them, almost every "my header is broken" question answers itself.
For day-to-day spreadsheets, the workflow is: type your labels in row 1, press Ctrl+T to convert to a Table, and freeze the top row. That handles 80% of header needs without ever touching a menu beyond the keyboard. For printed reports, add a page header with title and logo, a footer with page numbers, and Print Titles for repeating column labels โ all reachable from the Page Layout tab in under a minute. For automated reports, VBA's PageSetup object lets you script the whole layout in five lines.
If you're studying for an Excel certification or just want to get faster, drill the keyboard paths until they're automatic: Ctrl+B bolds the header row, Ctrl+T turns a range into a Table, Alt+W+F+R freezes the top row on Windows, and Alt+P+I opens Print Titles. Those four shortcuts handle the vast majority of header tasks faster than any mouse path.