A few days back, WSJ ran a visualization titled “What’s your pay gap?” It depicts median pay gap between female & male workers in 422 different professions in USA. The chart uses fish eye effect to highlight the selected profession. See below demo to understand the effect.
Discussion: Is the Fish Eye Effect worth it?
In this context, fish eye effect is useless. As we have too much data, the fish eye effect becomes mere eye candy and draws attention away from important matters at hand.
That said, it is a cool idea to use with smaller data sets.
Implementation: Fish Eye Effect in Excel
Out of curiosity, I wanted to implement the fish eye effect in Excel. We can highlight selected dots using simple algebra. To stretch the chart elements to left & right requires VBA. Since VBA creates portability issues, let’s focus on the algebra based fish eye effect.
Here is a quick demo of the final outcome.
Assuming you have a bunch of X & Y values (Profession & Salary in this case), to generate the new X&Y values with fish eye effect for a particular X value (say X1),
- Define gap as an integer value, indicating the gap to either side of highlighted value at X1. For the above example, Gap = 10.
- Calculate scaling factor for the left side of Fish Eye as (X1-gap)/X1
- Scaling factor for right side of Fish Eye as (Max X – X1 – gap)/(Max X – X1)
- Use these scaling factors to calculate new X values for all dots.
- Create a scatter plot with these new X values and Y values.
- Apply special formatting to X1 & Y1 values thru another series.
- Set up a form control or VBA to change X1.
- Your interactive fish eye chart is ready.
Alternative: Closing the gaps in Pay Gap Fish Eye chart
Okay, as you can see both original and Excel implementation of Fish Eye charts are mediocre. So let’s improve them. For this type of data, we can use interactive tables so that users can filter, sort and highlight the data any way they want. This allows for flexible exploration of data.
Here is a quick demo of the interactive table style visualization of Pay Gap data.
Interactive Pay Gap Analysis Table – Construction summary
- Construct 5 pivot tables, one for each sort order.
- Create a slicer on Profession Category and link it to all 5 pivots.
- Set up a form control to figure out sort order (and dynamically fetch one of the 5 pivot table data sets, using CHOOSE formula)
- Fetch 20 rows of selected pivot table data (use scroll bar position to determine which 20 rows)
- Apply conditional formatting to the 20 rows based on criteria specified.
- Calculate summary information and display it at the top.
Here are the key ideas used during construction of this:
- Scrollable KPI Dashboard – for scrollable list.
- CHOOSE formula – for creating dynamic named range
- Conditional Formatting – for highlighting professions
- Slicers for filtering a profession
- Form controls for sorting & highlight option selection
Video: Fish Eye vs. Interactive Table – Walkthru
Here is a quick video walk thru of both approaches along with some commentary and explanation.
You can watch the video on our YouTube Channel too.
Download the workbook
Click here to download the Fish Eye effect workbook. It contains both fish eye and interactive table visualizations. Examine the calculations tab for all the formulas.
How would you visualize this data?
Do you like the Fish Eye effect chart? How would you visualize this data? Please share your thoughts and implementations in the comments.
More case studies
Check out below tutorials and case studies to learn how to visualize complex data in Excel.














11 Responses to “Fix Incorrect Percentages with this Paste-Special Trick”
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 !!!
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!
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!
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."
Dear Jon S. You are the reason I love the internet. 3 year old comments making my life easier.
Thank you.
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.
@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
Thank You so much. it is really helped me.
Big help...Thanks
Thanks. That really saved me a lot of time!
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.