Looking up when data won’t play nice – few more alternatives

Share

Facebook
Twitter
LinkedIn

Recently, we discussed about the case of unwieldy data and how we lookup what we want using formulas like SUMIFS. Today, let us learn few more ways to solve the same problem.

First, a re-cap of the problem:

Here is a data-set:

2D Lookup problem - Example dataset

The problem – build a lookup formula

And the problem. Oh, simple. Write a lookup formula to find how many customer walk-ins we have on any given day.

In the previous article, we discussed how to use SUMIFS to solve this problem. There were several amazing & awesome solutions shared by our readers in the comments section too.

Suitable structure spawns simple solutions

Poorly structured is the 2nd biggest problem of analysts. The first one is not enough coffee. That is why there is a dictum in the data analytics world.

Structure is everything

So, we can easily solve our lookup problem, if our data were to magically re-arranged in 2 column fashion – Data & Value.

Transforming data to solve problem easily - Example

This transformation can be done in 2 ways:

Option #1: Transforming Data – Using Formulas

We can use data fetching formulas like OFFSET or INDEX to re-arrange data in 2 columns.

Assuming,

  • Our 2D data is in a named range data,
  • There are running numbers starting with 0 in the cell J5

We can use below formula to fetch first column:

=IFERROR(INDEX(data,2*(INT(J5/7))+1,MOD(J5,7)+1),"")

for the second column, below formula works:

=IFERROR(INDEX(data,2*(INT(J5/7)+1),MOD(J5,7)+1),"")

How does this formula work?

I will explain the formula for first column. Deciphering 2nd column formula is your homework.

Here is the formula again: =IFERROR(INDEX(data,2*(INT(J5/7))+1,MOD(J5,7)+1),"")

Before understanding the formula, let’s take a minute to examine the structure of  our raw data.

  • Odd rows contain dates
  • Even rows contain values
  • There are 7 columns in total
  • So to get the first date, we need to go to row 1 (first odd number), column 1
  • To get the first value, we need to go to row 2 (first even number), column 1
  • But to get 8th date, we need to go to row 3(2nd odd number), column 1
  • So on

Let’s go from inside out.

  • 2*(INT(J5/7))+1 portion: This gives row number (ie odd number). J5 refers to running number and its value is 0. So we get 2*(INT(0/7))+1 = 1
    • This will be 3 when J5 becomes J12 (ie 8th date)
  • MOD(J5,7)+1 portion: This gives column number. It will result in values 1 thru 7 in a cyclical fashion. Thanks to MOD.
  • INDEX(data, ..., ...) portion: Now that we have both row & column numbers, INDEX formula kicks in and gets the corresponding date.
  • IFERROR(INDEX(...),"") portion: This is to help in case we ran out of all dates & values in our INDEX formula. Read about IFERROR here.

Once you have the formulas for first date & value, simply drag them to get rest of the values.

Option #2: Transforming data – Using VBA

VBA Macros are perfect for scenarios like this. Usually transformation is something you need to do every-time you import data from external systems. So simply write a macro that can do this automatically.

Assuming our data is in the range data and the first cell of our extraction range is startHere, you can use below macro:


Sub rearrangeData()
    'takes the values in DATA named range and rearranges them
    'from the named cell startHere

    Dim cell As Range, i As Long, j As Long, evenRow As Boolean, firstRow As Long
    
    i = 0
    j = 0
    firstRow = Range("data").Cells(1).Row
    
    For Each cell In Range("data")
        evenRow = (cell.Row - firstRow + 1) Mod 2 = 0
        If evenRow Then
            Range("startHere").Offset(j, 1).Value = cell.Value
            j = j + 1
        Else
            Range("startHere").Offset(i, 0).Value = cell.Value
            i = i + 1
        End If        
    Next cell
End Sub

How does this macro work?
Before jumping in to the lines of code and demystifying the logic, Let’s understand what we need to do:

  1. For each cell of data,
    1. If it is in odd row, put the cell data in Date column at end
    2. Else, put the cell data in Value column at end
  2. Repeat

This is what our code is trying to do.

Let’s examine the For Each loop, as this is the most critical part of our macro.

  • For each cell in the range data
  • We check if we are in evenRow using simple arithmetic on row numbers
  • If we are in evenRow then
    • We put the cell value in row j (number of values so far), column 2
    • We increment j
  • Else
    • We put the cell value in row i (number of dates so far), column 1
    • We increment i
  • Close the IF condition
  • We check for next cell in the data range

Advantages of Transformation over SUMIFS approach

Both options for transforming data have few advantages:

  • They work with any type of data (unlike SUMIFS, which works only for numeric lookups and has few other issues)
  • Once data is restructured, you can do other types of analysis like creating pivot tables, adding extra calculated columns etc. easily.

Download Example Workbook

Click here to download example workbook that shows original SUMIFS solution, both options for transforming data & few other formulas. Play with it to learn more. Check out the code by pressing ALT+F11.

How would you transform data?

My favorite techniques for transforming data are – VBA, formulas, Power Query, pivot tables & SQL. Depending on the situation, time availability, where my data is, I choose one of these options to scrub my data.

What about you? How do you clean up / scrub data like this? Please share you thoughts & tips with us in comments.

Instructions for washing your dirty data

If your work involves scrubbing dirty data, check out below tutorials too:


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.

25 Responses to “Display Alerts in Dashboards to Grab User Attention [Quick Tip]”

  1. Alex Kerin says:

    I prefer the red,grey,light grey,black icon set. I've also used in-cell pie charts from Fabrice's Sparklines for Excel as an alert which could also provide another piece of information.

  2. Alex Kerin says:

    I prefer the red,grey,light grey,black icon set. I've also used in-cell pie charts from Fabrice's Sparklines for Excel as an alert which can also provide another piece of information.

    For Excel 2007, your formula should do the same as the Excel 2003 version, so that non-alert rows are blank - if they are 0, the unnecessary green icon will show

  3. Rohit1409 says:

    Hi Chandoo,

    Nice Post !! just to add something for EXL 2003, we can also 4 Ifs and link to the alert data

    For Ex: If we have alert data in Cell A2 and want to split in 4 orders namely <25%, 25-50%, 50-75% and 75%< then we can following formula and put fonts as you have suggested :

    =IF(A2<0.25,CHAR(153),IF(A2<=0.5,CHAR(155),IF(A2=0.76,CHAR(152)))))

    And then using Conditional Formating we can dashboard reflected on different COLOURS as per their respective alert.

    Best Regards
    Rohit1409

  4. Rohit1409 says:

    Hi Chandoo,

    Nice Post !!! just to add something for EXL 2003, we can also 4 Ifs and link to the alert data

    For Ex: If we have alert data in Cell A2 and want to split in 4 orders namely <25%, 25-50%, 50-75% and 75%< then we can following formula and put fonts as you have suggested :

    =IF(A2<0.25,CHAR(153),IF(A2<=0.5,CHAR(155),IF(A2=0.76,CHAR(152)))))

    And then using Conditional Formating we can dashboard reflected on different COLOURS as per their respective alert.

    Best Regards
    Rohit1409

  5. Rohit1409 says:

    The Complete formula [Don't Know how it got cut ]

    =IF(A2<0.25,CHAR(153),IF(A2<=0.5,CHAR(155),IF(A2=0.76,CHAR(152)))))

    PS : Use in single line [I have split it to avoid cuts 😉 ]

  6. Rohit1409 says:

    Hi Chandoo..

    why it is not displaying the complete formula..

    anyways here is the balance

    "=IF(A2<0.25,CHAR(153), IF(A2<=0.5,CHAR(155), IF(A2=0.76,CHAR(152)))))"

  7. Chandoo says:

    @Rohit... your formulas are fine. Just that the width of comment area is fixed and hence my website is cropping it at 640pixels. I just edited your formula and added few white spaces so that it wraps nicely.

    Very good idea btw.. kudos!

  8. Tom says:

    Hi,
    Maybe just go for 'bold' ; 'underline' or 'italic' to draw the users attention? Those methods (if those can be called methods) are used cross media type (books, journals, blogs, billboards, ...) to guide the readers eye to valuable information.
    Just a basic thought

  9. Chandoo says:

    @Tom.. good idea..

  10. [...] has a very nice writeup on how to add such alerts to dashboard sheets. Possibly related posts: (automatically generated)Divide your data set into workbooksHow to enforce [...]

  11. Ramesh Panakkal says:

    Hi Chandoo,

    You certainly grabbed my attention! although I wasn't sure what my brother (Suresh) and cousin (Shyam) were doing right, and I was doing wrong? 😉

    I love your blog btw - Many thanks for all your hard work in unravelling the secrets and mysteries of Excel!

    Best regards
    Ramesh

  12. Jeff Whitesel says:

    I thought I saw an advertisment for a book about learning excel called excel himalaya or something. It cost about 35.00 us money but seemed to have the things I need to have my admin assistant to start to use. I was hoping to start with this book and then send her to school if she shows some interest and aptitude. Any help on this would be appreciated. Thanks

    Great web site and information!!!!

  13. [...] There are lots of numbers in this dashboard. I would suggest adding few more visualizations like showing indicators or applying conditional formatting or replacing a table with a chart. This would reduce the [...]

  14. [...] is the same technique as alert icons in dashboard. Just that I also showed green [...]

  15. [...] is the same technique as alert icons in dashboard. Just that I also showed green [...]

  16. RROBBITT says:

    Hi Chandoo
    Firstly thanks for all the cool tips on how to use Excel better.

    I am new to the site and have a question which you may be able to assist with but dont know if these comment boxes are the best way of asking ?

    I am looking at assets and trying to calculate the depreciation total by taking a year (say 2010) adding the expected life of the asset (say 10 years) then comparing that to a future date (say 2015) using an IF statement. The calculation in normal is - IF((year in col B (2010) plus 10years)>year 2015, add a years depreciation, otherwise leave blank). The converted date value does not appear able to add 10 years in order to compare it to 2015. Am I missing something ?

  17. Rocky says:

    I use the “IF” Statement in conjunction with Conditional Formatting in MS Excel to give verbiage to alert one of a required action, dependant on a review date. This makes a visual stimulus, plus it clues one as to what the conditional format is trying to warn you about and what follow-up actions are required.

  18. Wow, I'm really impressed with dashboards. I had no idea this stuff was even possible with excel. I'd like to offer an interactive dashboard to my customers, showing analytics of their data. I have a .pdf file with the datapoints. I'd like them to enter the data on my website, and be able to see their data. Is something like that possible.

  19. Adam G says:

    Hi Chandoo,

    I've recently purchased the package for both templates.

    In the portfolio dashboard,under the calculations worksheet, I'm attempting to change the date range in the gantt chart to show only the range of the project that starts in late 2013.  How do I do this?

    Thanks
    Adam 

  20. [...] is the same technique as alert icons in dashboard. Just that I also showed green [...]

  21. Bianca says:

    Hi Chandoo,
    I'm new at Excel Dashboard and found your blog really useful and helpful! It's very nice of you that you dedicate your time to do this.
    Could you please explain how can I use Alerts based on dates on a Dashboar?
    For example, if a target date is coming closer to the actual date, the alert is yellow or red.
    I'd really appreciate some help!
    Thank you

  22. Marco says:

    Where can I download the file Excel of Averall Statistics ???
    Thanks a lot.

Leave a Reply