Select & Show One Chart from Many

Share

Facebook
Twitter
LinkedIn

Yesterday I have learned this cool excel charting trick and I cant wait to share it with you all.

The problem: I have too many charts & want to show one based on selection

You have made 3 charts to show your company performance in the last 8 years. But you don’t want to clutter the project report with all of them. You would rather want to show one chart and let user choose to see the any of the other two, like this:

The Solution: Use INDIRECT() and a nifty image hack

  • First, create your charts in a separate worksheet like this (remember you need to create all 3 charts first)
  • Once the charts are created adjust the width and heights of 3 cells and place one chart in each like above.
  • Now, go back to the sheet where you want to control the display, and define a new named range. Lets call it getChart. You can define new named ranges from menu > insert > name > define.  You will see a dialog box like this (right):
  • In the “Refers to:” area we will now write an INDIRECT() spreadsheet formula to refer to one of the 3 cells where charts are placed. A sample formula is below:IF('View them here'!$C$2="Sales",INDIRECT("'Place your charts here'!F11"),IF('View them here'!$C$2="Expenses",INDIRECT("'Place your charts here'!F12"),INDIRECT("'Place your charts here'!f13")))
  • The above formula assumes, you are going to control chart display thru cell C2 in the sheet ‘view them here’
  • Now adjust a cell’s size in this spread sheet to be big enough so that we can fit the selected chart.
  • Go to Menu > Insert > Picture > From File and insert any picture. This is just for a placeholder purpose, so any picture would do, including that of your cat’s. 🙂
  • Finally, select the image and go to formula bar and type =getChart (or whatever name you gave to the named range), like this:
  • Change the value in C2 and see the magic.

How this hack works?

In excel you can assign named ranges to images inserted in the sheet. So when you adjusted the cell sizes in the sheet with charts and created indirect references through INDIRECT() formula and used it in the named range, excel fetched the content of the cell (the chart) and replaced your cat’s picture with that. This powerful little trick can help you make interactive dashboards within little space.

Pretty cool, eh?

Download and see in action

Here is a link to the downloadable conditional chart display workbook. I have tested this in Excel 2003, but I guess it should work the same way in most of the modern versions of excel. Feel free to drop a comment if you see this not working in a particular version.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

11 Responses to “Fix Incorrect Percentages with this Paste-Special Trick”

  1. Martin says:

    I've just taught yesterday to a colleague of mine how to convert amounts in local currency into another by pasting special the ROE.

    great thing to know !!!

  2. Tony Rose says:

    Chandoo - this is such a great trick and helps save time. If you don't use this shortcut, you have to take can create a formula where =(ref cell /100), copy that all the way down, covert it to a percentage and then copy/paste values to the original column. This does it all much faster. Nice job!

  3. Jody Gates says:

    I was just asking peers yesterday if anyone know if an easy way to do this, I've been editing each cell and adding a % manually vs setting the cell to Percentage for months and just finally reached my wits end. What perfect timing! Thanks, great tip!

  4. Jon S says:

    If it's just appearance you care about, another alternative is to use this custom number format:
    0"%"

    By adding the percent sign in quotes, it gets treated as text and won't do what you warned about here: "You can not just format the cells to % format either, excel shows 23 as 2300% then."

    • Steven Peters says:

      Dear Jon S. You are the reason I love the internet. 3 year old comments making my life easier.

      Thank you.

  5. Jon Peltier says:

    Here is a quicker protocol.

    Enter 10000% into the extra cell, copy this cell, select the range you need to convert to percentages, and use paste special > divide. Since the Paste > All option is selected, it not only divides by 10000% (i.e. 100), it also applies the % format to the cells being pasted on.

  6. Chandoo says:

    @Martin: That is another very good use of Divide / Multiply operations.

    @Tony, @Jody: Thank you 🙂

    @Jon S: Good one...

    @Jon... now why didnt I think of that.. Excellent

  7. sajith says:

    Thank You so much. it is really helped me.

  8. Winnie says:

    Big help...Thanks

  9. Chris Fry says:

    Thanks. That really saved me a lot of time!

  10. Texas says:

    Is Show Formulas is turned on in the Formula Ribbon, it will stay in decimal form until that is turned off. Drove me batty for an hour until I just figured it out.

Leave a Reply