Yesterday, you learned about Print Areas – a time & paper saving feature of Excel. While print areas are great, you can only set up one print area per sheet. What if you want to print either report or data based on user selection?
In such cases, you can set up dynamic print areas.
That is right. See below demo to understand how it looks. Read on to learn how to set up dynamic print areas.

Set up dynamic print areas – tutorial:
- In your spreadsheet, select any range of cells and create a print area (click on the link for instructions).
- Now, identify the all ranges that may be printed. To keep it simple, let’s say there are 2 such ranges. Give them names like report and data.
- Set up a selection mechanism thru form controls so that user can pick what they want to print. Something like this:

Link the option buttons to a cell, say M8. - Go to Formulas ribbon tab and click on Name Manager.
- You can see the Print_Area named range, pointing to the range you originally selected.

- Edit the range and write a CHOOSE formula to return either report or data range based on M8 (form control) value. Like this:
=CHOOSE($M$8, report, data)
That is all. Your print area is now dynamic.
Download dynamic print areas demo workbook
Please click here to download dynamic print areas workbook. Examine the formula for Print_Area named range to understand better.
Other creative ways to use print areas:
- Your users can see something but print an alternative range (may be B/W compatible), with print areas.
- Your print areas can depend on latest date (for example, print coupon before expiry date and print alternative material after expiry)
- Your users can print reports at various levels – summary or detailed with dynamic print areas.
How are planning to use dynamic print areas?
How do you like this technique? Please tell me how you are planning to use dynamic print areas in your work. Post your comments below.

















4 Responses to “Best of Chandoo.org – 2013”
sir i want your autograph
How many times during the year did I click on most of the pages there to learn something new? Thank you Chandoo!
=TEXTSPLIT(jobs[Job title],{" - "," ("," /"})
=TEXTSPLIT(jobs[Job title],{" - "," ("," /"})
=CHOOSECOLS(TEXTSPLIT([@[Job title]],{" - "," ("," /"}),1) -- for tables