A common Forum question and one that Chandoo has written about a few times is, Does my data overlap with another range?
Last week, Pradhishnair, asked in the Chandoo.org Forums “I need to find if the values between range D2:E2 are overlapping in any of the following rages, if yes then where? (may be row number)”
I answered with an array formula:
{=”Overlap Row S.no. = ” &MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)))}
Which returns ether:
Overlap Row S.no. = x (If there is an overlap)
or
Overlap Row S.no. = 0 (If there is no overlap)
So today in Formula Forensics we will take a look at how the above formula works with a worked example.
Chainage
As always you can follow along with a worked example. This is a subset of Pradhishnair’s Data to simplify the length of the equations, but otherwise is the same as the original post: Download Here
Pradhishnair’s data consists of a list of chainages. Chainages are measurements of distances from a fixed point and relate to a segment of something. Chainage From is to the closest end of the segment and and Chainage To is to the furthest end of the segment and by default these are in order, that is To is always greater than From.
Using this we can check for overlapping data by simply checking if the From is less than the remaining To’s or the To value is greater than the remaining From’s
This is done for each row compared to the remaining rows of data by the array formula
=”Overlap Row S.no.: ” & MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41))) Ctrl Shift enter
We can see that the above equation simply joins
“Overlap Row S.no.: “
To the result of
MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)))
Using the & operator
It will return:
Overlap Row S.no. = 0 if there is no overlap
Or
Overlap Row S.no. = x If there is an overlap.
So the function
MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)))
Is used to return the minimum value of an If() formula which is its only component
The If() statement usually has three components:
=If( Condition, Value if True, Value if False)
In our case, I will evaluate Row 2, Particularly Cell G2, against the remaining entries in the two lists.
=If((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41))
Condition: (D3:$D$41<=E2) *(E3:$E$41>=D2) >0
Value if True: (A3:$A$41), This is just the S.No. in Column A
Value if False: Note that the If statement has no Value if it is False, I could put any value there eg: -1 or 0, but Excel evaluates it to 0 anyway so it hasn’t been used.
The If Statement says If (D3:$D$41<=E2) *(E3:$E$41>=D2) >0, then return (A3:$A$41)
What the condition is saying is If the To Data in the Current Row, Row 2, is Greater than or equal to the other From Values or the From Data in the Current Row, Row 2, is Less than the other To Value, Then this is True
To check this, in Cell I2, enter =(D3:$D$41<=E2) *(E3:$E$41>=D2) and evaluate it with F9 instead of Enter
Excel returns ={1;1;0;0;0;0;0;0;0}
Excel is showing us that the first and second entries have overlapping data.
Which we can see if we look at the data
The >0 at the end of the (D3:$D$41<=E2) *(E3:$E$41>=D2) >0, transforms the array of 0’s and 1’s to an array of Falses and Trues
To check this, in I3, enter =(D3:$D$41<=E2) *(E3:$E$41>=D2)>0 and evaluate it with F9 instead of Enter
Excel returns ={TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
Now the If Statement will be True for the first two entries in the array and so will evaluate the Value if True component of the If Formula: (A3:$A$41)
We can check this
In cell I4 enter
=IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)) and press F9 instead of Enter
Excel returns
={2;3;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
Which is the array of S.No’s which match our criteria
Now Min comes in
=MIN({2;3;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE})
Min returns the Minimum of these which is 2.
And that is appended to “Overlap Row S.No. = “
To return the answer: Overlap Row S.No. = 2
Which is the first overlapping row with Row 1
Custom Number Formats
You may have noticed that the numbers in Pradhishnair’s worksheet look a bit odd with a + in the middle: eg: D3 displays 142+000
Pradhishnair is using a Custom Number Format of #+000
Select a Cell, eg D2, Press Ctrl 1, Select the Number Tab
If you select these cells and Press F2 Excel will show that the cells value is 142000
But Excel is using the custom Number format of #+000 to display the number with 3 digits after the +
Links to Overlapping Data Posts
http://chandoo.org/wp/2010/06/01/date-overlap-formulas/
http://chandoo.org/wp/2011/03/09/ec1-machine-scheduling-in-excel/
Download
You can download a copy of the above file and follow along, Download Here.
Other Formula Forensics Posts
You can learn more about how to pull Excel Formulas apart in the following posts
We Need Your Help
I received 3 ideas over the Xmas break from readers, and these will feature in coming weeks.
However I do need more ideas for the rest of 2012 and so I need your help.
If you have a neat formula that you would like to share and explain, try putting pen to paper and draft up a Post as Luke did in Formula Forensics 003. or like above.
If you have a formula that you would like explained but don’t want to write a post also send it in to Chandoo or Hui.
ps: I’m traveling to Esperance; Western Australia for a short holiday with the family but have left a neat Formula Forensic for you for next week.






















8 Responses to “Top 5 keyboard shortcuts for Excel Charts”
As far as I remember (checked, again, 2 minutes ago) in my "Excel 2013" in order to select various chart elements I need to use the Arrow keys and not the TAB key.
Practically, the TAB key does nothing (within a Chart).
----------------------------
Michael (Micky) Avidan
Thanks for pointing this out. This is how I remember it too, but when I was recording the video yesterday, only TAB key worked. MS must have changed the keys in Excel 2016. I have edited the post to include both keys.
The key navigation on charts is different in 2016.
TAB cycles through a layer of objects (SHIFT+TAB cycles backwards)
ENTER move down a layer
ESC moves up a layer
So on a column chart with title/legend/data labels if you select the plotarea the TAB will go through Title > Legend > Plotarea.
ENTER at plotarea will then select Vertical axis. Tab will take you through
Horizontal axis > gridlines > Series > Horizontal Axis.
ENTER with series selected will then allow you to TAB through individual data points and data labels.
If you ENTER on datalabels you can TAB through each data label.
ALT + F1 : to create default chart
ALT+E S T = CTRL + ALT + V, T : I find that easier to remember
I second what Michael already said about TAB and arrow keys. I can't help but think if this is related to the "," or ";" as separator. I prefer to use the chart tools - layout- drop down box, anyway.
Got to be F11 for instant charting. Highlight your data , hit F11 and voila! ?
Ctrl+1 is the most important chart shortcut. In fact, it works for any Excel object: whatever is selected, Ctrl+1 opens the task pane or dialog to format that object.
Somewhere along the line, maybe when Excel 2016 came out, the arrow keys stopped working to cycle through the elements of a chart. But what works is holding Ctrl while clicking the arrow keys. I haven't gotten used to the Tab and other keys, but as long as Ctrl+Arrow works, I'm good.
And F4 used to be so helpful when formatting a lot of charts. But since Excel 2007 came out, it has been mostly useless. It used to remember a whole set of changes at once, so I get that the newer modeless dialogs make that impractical. But now it only seems to work with formatting of lines and borders, and maybe fills. I find myself writing a lot of VBA one-liners in the Immediate Window to handle these tedious formatting tasks.
after clicking on a chart, is there a shortcut key to copy it?
Thank you for the Alt E S T - tip. This is more than a time saver. Because of dynamic charts or de-activated external references to data when you make the charts, you often have empty charts that are otherwise impossible to format. So this shortcut helps adressing that. I will work with it more and see if there remain some obstacles.