This is a guest post by Chandeep. He won our recent dashboard contest and kindly agreed to share the technique and process for creating such an awesome dashboard with all of us.
Hi to all the awesome people at Chandoo.org
Quick Intro – My name is Chandeep Chhabra and I live in Gurgaon, India. Luckily Chandoo’s 2016 Dashboard contest, my Dashboard entry was picked up as a winning entry. Thank you so much for all your appreciation and likes
A few days later I reached out to Chandoo asking him to let me write everything about this dashboard, right from the thought process I followed to finally making a ticked and tied dashboard.
What I am going to cover in this post ?
Since we are talking about an entire dashboard here, this is going to be a long post (I mean really long). Here is what I plan to cover
- How did I plan this Dashboard ? – All my Dashboard pre-work is included here
- How did I create the Dashboard – This all about number crunching, formula writing, setting up things etc.. I am not going to discuss the formulas in detail but I will give you the overall logic and the formula behind it. To make things structured I have divided this part into 2 main sections
- Screen 1 Calculations – Everything about the 1st screen (company comparison)
- Screen 2 Calculations – All about screen 2 (overall market)
- How did I format the Dashboard – I discuss everything right from colors themes to the overall look and feel. Again the formatting is divided into 2 sections
- Screen 1 Formatting
- Screen 2 Formatting
- How much time did I spend creating it – Specific breakdown into hours for each section
- Mistakes that could have been avoided – A few mistakes that I personally found in my work that could have been avoided
Alongside this post, I have also put together a video to explain this dashboard you can get the video + resources here
Part 1 – How did I plan this Dashboard !
The first glance at the data made me feel comfortable, since I carry a finance background and have mostly played with financial data. So I came with 2 key objectives
- My dashboard has to answer all important questions that were relevant to the audience/management
The look and feel of the dashboard has to be simple and yet stunning - I am going to breakdown the objective into concrete actionable steps that I took to finally complete this dashboard + throw in some general good practices that I personally follow
Quick Tip: I draw from Chandoo’s 10 step Dashboard Process with a few tweaks of my own
Gathering all important and relevant questions
Chandoo did give us a good head-start about objectives of the dashboard

I also reached out to a few friends and asked them, what additional things would they like to know from the data. The list got a bit bigger. This is exactly what I came up with

I then started quickly crunching numbers and doing analysis to find the answers to the above questions. Once I did all the meaningful calculations, I quickly made a rough sketch (mock) of the dashboard. This mock is to understand 2 things
- How am I going to fit all this data and analysis in the sheet?
- How the overall picture will look like?
Below is how the mock up looked!

Part 2 – How did I create this Dashboard ?
Even before I start showing the workings of the dashboard I strongly suggest you to download the Dashboard and then follow the instructions discussed, it will a lot easier that way.
You can also get access to the explainer video + resources
Screen 1 Calculations – Performing a multiple criteria lookup
Take a look at how the Visualisation and its backend is performing a 2 way lookup
- When you select a Company name (using a slicer), the pivot table stores the value of the slicer (company name) in a cell
- When the cost variable is selected (again using a slicer), the chart highlights that variable. But we are not exploring the chart as of now, We’ll keep that aside for a while

Now here is the Lookup formula used to lookup values for cost variables. Total Variable Cost and Operating Leverage were calculated separately. Note that the formula
- Matches the company name (Company1)
- Matches the Variable Name
- And the year using the Columns Function

Once these values were calculated I directly plugged them in the Dashboard
Links for newbies to INDEX, MATCH, OFFSET & COLUMNS Functions
[One of the techniques used] – How to use slicer without a Pivot Table
Screen 1 Calculations – How the Stacked Chart was made
A regular stacked chart looks like this. One big problem – too many colors!\

Stacked Charts can get pretty hard to read because of multiple colors for each part. Highlighting the variables in the chart was the key to make it look simple to read. Here is how it was done!
Take a look at the logic

We needed a dummy calculation to support the highlighted section.
- Dummy = Sum (Values below the selected product)
- The dummy needed to be dynamic which changes as the user selected the product

Using these 2 calculations (Dummy & Highlighted section) a stacked chart was made

I wrote a pretty detailed post about how to highlight parts of a stacked chart. Check it out if you want to get into more details.
Screen 1 Calculations – How did I generate Comments ?

Notice the comments – Most words just stay the same and only a few words change. There were 2 comments with 2 different messages
- Comment #1 : Shows the absolute change since 2011. Depending on the % change a text tag is added (for eg. moderate / considerable / drastic change etc..)
- Comment #2 : Compared to the previous year which year had the largest % change.This was a bit tricky and the reason why I chose to show it because we wanted to bring out interesting insights (drastic or alarming changes) from the 5 year trend. We needed the following ingredients for setting this up
- Which year had the largest change (+/-) over the last year
- How much change has happened (i.e. the exact %)
- Tag (moderate / slight / no change etc..)
The first thing was to set up a Comments Reckoner table

Nothing fancy about this, it is simple 2 columnar data with % change and an appropriate tag along with it. All this data was manually created! We will use this reckoner to lookup an appropriate tag for % change calculations
Working for Comment #1

The calculations are pretty straight forward
- We calculating the absolute % change since 2011
- Using that % change we are looking up for a relevant comment tag in the comment reckoner. Since we are working with a range (between 90% – 50% = drastic change) the lookup method used is approximate match
- After calculating % change and tags for all the variables we needed to narrow it down to only the variable selected

Which was done using a simple Index-Match formula to find the % change and tag for the relevant variable selected
Working for Comment #2

Let’s take a look at each of the 4 parts
- Finds the change over last year for each variable
- Finds the position of the maximum change. This position number will help us find that in which year the change happened
- Calculates the % change that happened
- Adds a tag relevant (from the comment reckoner) to the % change
Using the above calculations, now we lookup for the relevant variable selected

Just like the previous one a simple Index formula for looking up the relevant % change, tag and year
Then I concatenated all these calculations to write comments and used the camera tool to create a linked picture and pasted them in the Dashboard

Phew!! that was some work.
If you have reached till here you might be interested in taking a look at an explainer video + resources that I have put together on this Dashboard
Screen 1 – Overall Layout !

Since I had to show comparison between 2 companies therefore both the frond end and back end calculations were set up in 2 blocks – Left side for 1st Company Selected and Right Side for 2nd Company Selected
This also made it easier for anyone to see my workings and understand how things are formed!
Quick Tip: It is important to layout your calculations clearly! It not only becomes easier for you but also for anyone else to understand your model
Screen 2 – Overall Market

Setting up this screen was not complex apart from conditional formatting. There were 3 major things
- 5 Pivot Tables for each year sorted in descending order (that will enable ranking)
- Slicer for selecting any company and pivot table to store the value
- Slicer for selecting any variable and pivot table to store the value. Note that the variable slicer was connected to all 5 pivot tables
Screen 2 – The tricky part, Conditional formatting
I applied 2 layers conditional formatting
- Layer #1 The selected company should be highlight for all the years
- Layer #2 Icon sets should display the change from last year has been positive, negative or no change
Layer #1 – Conditional formatting for highlighting the Company

- I wrote a simple formula to equate the company selected in the slicer with the companies displayed
- Where ever the result was true the format set was blue color
Layer #2 – Icons that display change from last year
Since icon sets do not accept relative cell referencing so I had to play a trick. I first wrote a formula to find out last year’s value for the selected company and selected variable. This was the formula is copied down in 4 cells and pasted in each column containing values
A key thing to note is that the below formula also accounts for 2 additional factors
- If the user selects Profit – Green icon should be displayed when the profit is up from the last year and a red icon when the profit has dipped from last year
- If the user selects any Cost Variable – Green icons when the cost has gone down from the last year and red icons when the cost has increased from last year

Then I applied conditional formatting (icon sets) for each value separately and referred to each cell containing the above formula

and that completed all the number crunching and setting up of the Dashboard! The next big thing was to format this beast and make it a beauty!
Wow..!! If you are still hanging around I would love to share with you an explainer Video + Resources that I have put together for you. I think you’ll love it
How did I format the Dashboard ?
Screen 1 – Headline Bar
![]()
- I set up the headline bar in dark grey because I din’t want to overwhelm the dashboard with too many colors.
- I used Red for highlighting the chart and Blue for Company slicer
- Also in the past I have read many reports from Bain & Co and they use red with grey/black, so I knew that color combo looks pretty cool !
Screen 1 – Slicers for Companies
![]()
- I spent a lot of time customising the look and feel of the slicers
- Mostly removing the non essential elements and make them look seamless as if they are a part of a web based report
- If you want this same format
- Just copy and paste this slicer in your workbook
- You’ll find a new style created in slicer options
- Now apply the style on your existing slicer and delete this slicer! Done
[Related] – Learn to work with slicers
Screen 1 – Formatting Stacked Chart

- I wanted the charts to look simple and clean
- I included the vertical axis and not the data labels. Instead I highlighted the values (via conditional formatting) below
- The years (horizontal axis) was put on the top so that it becomes common label for the chart and the values below
Screen 1 – Formatting Cost Variable Slicers, Values and Comments

- Note a few things about Slicers
- Just to make sure that slicers look like clickable and yet NOT look like buttons I gave a little stick at left side in red. It was a trial and error exercise but it did the trick
- Just to be more explicit I even wrote it on the top “Pick a Cost”
- Arranged the slicers accurately so that they look seamless and appear as spreadsheet values
- Formatting Values
- I applied 2 layers of conditional formatting
- Color the values in red for the cost variable selected
- If the total variable cost is select then apply bold formatting on Power, Other, Variable Cost and Freight & F
- Other than that there was a slim border between each row
- I applied 2 layers of conditional formatting
- Formatting Comments – There no major formatting done here. These are just linked pictures
Screen 1 – Overall Formatting – I did some overall formatting to tighten & secure the dashboard and make it look compact
- I protected the sheet (with no passwords)
- All objects (lines, charts, boxes / shapes) were locked
- The slicers were left unlocked, else clicking wouldn’t have happened
- The sheet name tab was removed
- The headings (column and row number) were hidden
- The formula bar was removed
- The extra rows and columns were hidden
[Related] Hiding Options in Excel
Screen 2 – Headline Bar
![]()
- The slicers on screen 2 were exactly the same as screen 1.
- The 2 buttons interchanged appearances when clicked, which made it look like dynamic but technically it was just moving from one sheet to another
Screen 2 – Slicers Formatting
![]()
- Formatting of both slicers were consistent
- Red for cost variables
- And Blue for Companies
- A label was put up on the top, just to make things more explicit
Screen 2 – Formatting Years, Data and Legends

- Formatting Years
- They were slightly in a bigger font than the data
- And I placed slim separators in between
- Formatting Data/Values
- Most of this formatting came from Conditional formatting as explained above
- I also left a column with a very narrow width in between each year as a separator
- Formatting Legends
- The legends were pasted as a picture
- The legends also depicted 2 inferences (for cost and profit separately)
Screen 2 – Overall Formatting
- I carried most of the formatting practices from screen 1
- Additionally I also made sure that the total width of Screen 1 is equal to Screen 2
How much time did I spend in creating this Dashboard ?
- Dashboard Pre-Work – Planning, Rough work and Mock Dashboard (1.5 Hour)
- Number Crunching and Analysis – (2 Hours)
- Formatting and Creating the look and feel – (2.5 hours)
I gave 3 sittings over 3 days to finish this task 🙂 . You can also watch a quick video explaining the entire dashboard
Mistakes that could have been avoided
I found 2 mistakes that could have avoided.
- The variables were static (hard coded) and they did not link back to the data. That could have been a problem or could have required additional work when
- The variables change completely
- More variable were added. In those cases the Dashboard was not capable of adapting to the changes automatically
- It could have been solved by a formula (to extract uniques) or by power query. Thanks Abhay for pointing that out 🙂
- The Overall Market Sheet could have had some additional analysis on the overall trend or may be an infographic. The space utilisation was not optimum
With all that work put it, I finally closed the Dashboard and sent it to Chandoo! and it clicked 🙂
I have put together an Explainer Video + Some additional resources on this Dashboard. I sure you’ll love them
Closing ..!
If you have any questions, please put them down in the comment below. I’ll be glad to answer as many as I can.
About the Author : Chandeep comes from the Investment Banking background and has been an avid excel user since last 6.5 years. He now runs an excel/powerpoint blog (www.goodly.co.in) and does training workshops for companies in India on Excel, PowerPoint Presentations, BI Dashboards, Financial Modelling.
Added by Chandoo: Thank you Chandeep
Thank you Chandeep for such an insightful, detailed and awesome write up. I really enjoyed learning from this. I am sorry I took too much time to schedule this.
If you too liked this post and learned something from it, please say thanks to Chandeep.













55 Responses to “Quickly Fill Blank Cells in a Table [Reader Tip]”
this can be done in 3 steps:
1. select the blank cells (as described above)
2. select the cell with the value you want to copy (CTRL-CLICK to add to the selection)
3. place cursor into formula bar and hit CTRL-ENTER
please ignore or delete my comment - it solves a different problem: copying a single value to all blank cells. apologies.
That is a great method and it saves me a lot of time! I first heard about it from Mr Excel in this video - http://www.youtube.com/watch?v=jHmh_viESuw. He has a neat way of doing the paste special values at the end of his video.
Hi!
I fill blank cells with an almost identical method; go to any the first blank cell in any column and place the equation and enter (=D2, for the same example above); then copy that cell, select the columns/range you want to fill (even if in different columns), Special, go to Blanks, Paste (default), copy all range and paste as values.
although the two methods are almost identical, what i use might be less hectic regarding entering formulas without clicking any of the cells (step 7)
ie:
1. fill an empty cell with using =D2(cell above)
2. copy D3 (the cell with the formula)
2. Select blank cells after selecting the range with empty cells (steps 1,2,3,4 and 5)
3. paste (normal)
4. copy then paste as values
BR
AQ
Great tip. I'll use it later today!
Martin -Thank You! This wonderful tip will save me a great deal of time each week.
Thanks Martin! Up to this point, I've always used a clumsy combination of filters and fill-down's. This is much cleaner.
Fantastic. Thanks for sharing.
None of these steps are necessary, Excel has this feature built into the ribbon.
Click on any row label in the table where there are blanks under it.
Click on the PivotTable Tools>Design tab on the ribbon
Click the Report Layout button in the Layout group at the far left
Select the option in the list
Done
To remove the duplication, use the feature right below that option.
There is a slightly simpler way and more flexible. Hihglight the required cells - which could be the column only in your table. Do the Ctrl-G, Alt-S, K, Enter (or Goto, Special, Blank Cells) so that they are highlighted and Type ={up arrow}, Ctl-Enter. This will make the cells equal the cell above - you do not have to enter any address at all. The technique can obviously be adapted to many situations. An example of the practical use for this is when you have saved an Inventory report from an accounting program that prints a heading (or something) on one line and prints details of that group (the heading) on subsequent lines (without the heading).
Hi Martin,
great trick! If only I had known it earlier, it would have saved me quite some time...
Not again, thanks!
I came across this in a class recently myself and posted a tutorial on my blog. The Special area of the Go To dialogue box is wicked. Some great options in there, hidden away waiting to be found.
Good work Martin.
Hi Martin,
Many thanks for sharing this powerful trick. Saves alot of time.
Gabriel
Please give credit where credit is due. Posted on June 30, 1998: http://www.mvps.org/dmcritchie/excel/fillempt.htm
Ahhh... Very neat trick. Thank you, Martin.
Ken, I tried to follow your post but could not get it to work. Could not find options
I have been using this trick for ages and would be lost without it.
Thank you very much!!! I had other tricks to deal with it, but this one is way faster and easier!!!
@BigG: Good resource there. Thanks for sharing the link with us. Please note that, this technique is not new. I am sure many Excel users would have discovered this already. We have not copied or inspired from David's article. It was just a happy coincidence.
@Ken: Your technique works only with Pivot Tables made in Excel 2010 or above.
Thanks Martin!! Nice post 🙂
@Chandoo: I also use the ASAP utilities add- in available in the link below:
http://www.asap-utilities.com/download-asap-utilities.php
This summarizes lot of hidden features in excel (like using Find function on entire workbook, password protecting all sheets at once, copying print setting of sheets etc.,) and is quite useful for beginners like me 😉
Thanks Martin and Ahmad Qadah. This is useful. I previously used to ask the senders to retrieve the data again so that I did not have the blanks.
Nice trick. I always use the specialcells method of the range object in code to access this powerful goto special dialog box in vba - a trick that Chandoo taught me in vba school - which is another reason you should join (a free bit of promotion for you Chandoo..!)
🙂
Yes I have seen this one before so credit may belong elsewhere. Never the less still especially useful where a legacy system report is sent to a text file which is subsequently re-imported to Excel but the original report is indented by groups. You can then recreate a complete data record for each report line
NB Different Ken to above
Thanks Martin - great post. I often work with data in this form and I usually fill in the blanks manually, by copying and dragging a cell value down - this way is much less prone to human error!
One challenge.. the last step where I change formula to constants. This replaces any formulas that I have as well. What If I want to change the formula to constants only where I replaced them with blank ?
Hi martin, thanks a million 🙂
Nicely explained Martin, thanks for sharing this tip. As Tanja says, this method is far less error-prone. When I first learned this method it saved me lots of time, so I decided to create a video on Youtube to share it with others. In my 3 minute video I compare side-by-side two methods of filling in blanks on 500 rows of data (1) using the fill handle, (2) using Go To > Special > Select Blanks
Just like in Mr Excel's video shared by Andrew in comment (3), I used the right mouse button to drag the selection border to do paste special values at the last step.
If you want to check out my video, visit this link: http://www.youtube.com/watch?v=9TDcVOKbm34&hd=1
I've came across this a month ago, and it really is a gem of a tip!
Thanks. Great tip and useful for a range of excel projects 🙂
Vishy,
When you Ctrl Enter the formula into all blank cells, Excel keeps the formerly blank cells highlighted, revealing the new values.
At this point you can choose to Copy and Paste Special them as constants. All other formulas remain untouched.
BigG,
I was not familiar with that link and I certainly didn't copy the article from it. As Chandoo commented this is not a new technique, and I am hardly the first to have written about it.
@Martin,
using office 2007; you can not copy multiple selection, what version are you using?
Thanks
Thanks, Really nice, really helpful.
wow, how cool is that! Thank you for this tipp!! GREAT!
I thought this was a great tip. I had never done such things with tables in Excel (having only converted to 2007 a couple of months ago, I soon discovered what a versatile tool they can be). So I decided to create my own copy and duplicate the process. Taking it a step further, I recorded the steps in VBA and used those as a guideline to create this simple macro which accomplishes the same function.
Caveat: this will only work when a cell in the table is selected and it will replace ALL formulas in the table with their values.
Sub FillTableBlanks()
' Macro created 20 October 2011 by Jason B White
'Declare Variable
Dim strTable As String
'Get Current Table Name
strTable = ActiveCell.ListObject.Name
'Select Current Table
Range(strTable).Select
'Fill Blank Cells With Formulas
Selection.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
'Paste Values Of Formulas
Selection = Selection.Value
End Sub
I hope that submitting macros is sanctioned in this forum. My previous post was my first ever attempt at contributing to an Excel blog. And I'm unaware if there is a way to differentiate macro snippets by using tags as I've seen in other Excel VBA forums.
I just wanted to mention that I figured out a way to modify my macro so that it doesn't overwrite ALL formulas in the table, but only those which were filled in by the macro.
Modifying the fourth section (Fill Blank Cells With Formulas) as shown below accomplishes that:
'Fill Blank Cells With Formulas
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
Hi,
I face a similar situation in office and use the below macro after selecting the range of data across which I want to duplicate the data below.
Sub FillBlankCellsSelectionDown()
Dim rAcells As Range, rLoopCells As Range
Set rAcells = Selection
For Each rLoopCells In rAcells
If rLoopCells.Value = "" Then
rLoopCells.FillDown
End If
Next rLoopCells
End Sub
re: paste special -> values
Drag the Paste Values toolbutton on to the standard toolbar next to the Paste button and save a couple of clicks.
Hi everyone many thanks for sharing this solutions but do not work Excel 2003? right? Thanks
@Alejandra:
I know that the macro I created was in Excel 2007. I assume that it's probably specific to 2007 (or 2010), but can't be sure, as I no longer have access to a PC running Excel 2003.
I have to admit that I didn't even realize that tables existed when I was using 2003.
Filling blank cells (cleaning-up the pivot-table aftermath) is one of our "daily-ritual", to dealing with those, we've create a short-cut (one of the many) to very quickly fill-up those blanks.
Basically what we need to do is to select the whole area to be filled-up (with the value above), and click a button, VBA automatically deals with the rest.
We use VBA to handle this problem just as mentioned above by several other people, however, I think we'll also need to consider the extreme (well, actually not that extreme if you're dealing with lots of data on a day-to-day basis) case: that the "blank" cells are highly fragmented, e.g. the maximum "areas" that Excel 2003 can handle is around 6500 (sorry I couldn't find the exact spec).
Thus, in our function, there's another step to cut-off the number of cells going into the "specialcells" function, just to make sure that the function will run in every condition.
I just wanna give a solution to similar problem which i face regularly while copying the data from a pivot as it is. I apply the following solution which i think is the easiest one on earth. Select a cell F2 (considering that column E is the last column filled with data) and type the following formula =IF(ISBLANK(A2),F1,A2). Now just drag the formula equivalent to the length and breadth of the entire range of data which want to fill in this case drag it from F2:I21 , remember do not apply on the cost column.
Now just copy whole new range i.e: F2:I21 and paste special it over the former range A2:D21. That's it 🙂
If u find any problem related to this formula u r welcome to contact me.
thanks martin
This doesn't work in excel 2007. So request to Martin , if he can confirm which version he has used. Guess 2010.
@BK
my method (comment #4) which is almost the same as Martins works on excel 2007... i've been using it since 2007 came out actually.
Excelent trick, thanks Martin.
[...] Quickly Fill Blank Cells in a Table [...]
eXCEEELLTOOOOOOOOOOOOOOOO......!
Many thanks to Martin.
im getting an error no cells were found why is this
Very cool trick!
I'm facing a similar problem, but I'd like to use a formula to pick the first non-empty above the referenced cell, and keep the empty cells empty. Any solution?
Example case:
I've got 3 columns, 1) consecutive dates, 2) my current weight, 3) my BMI. The first data row would be like: A2) jan-1, B2) 70 (kg), C2) =70/1,75^2 (because my height, 175cm, is pretty constant)
Now of course I forget to write down my weight on jan-2nd, so the formula would return 0. If my weight is blank, I'd like to refer to the last 'non-blank' weight (up the list of course, so jan-1st).
The solution on this page would solve my problem partially, but every time I leave cells blank, I have to repeat these steps. A formula would prevent this, AND I can still see which days were actually not filled in.
[…] http://chandoo.org/wp/2011/10/17/fill-blank-cells-in-a-table/ […]
Thxs! Yes, "knew" you could do this with "one" col of data...never thought to try it with >>multiple<< cols...Cool!
Thanks a lot i was searching this thing for many days ,
Thanks a lot to martin
Thanks a lot to martin
Thanks a lot i was searching this thing for many days ,
Thanks a lot to martin
The north, on the contrary, is the land of mighty and sometimes creepy-looking pinetrees, often compared to monsters from fairy tales.
Pages 1 through 3 of the tentative budget are also printed in portrait format so
the writing on those pages is also sideways.
There are occasionally long discussions of the cost of nuclear relative to the cost of renewables in the technical literature.