While preparing a project plan, I had a strange problem. I wanted to highlight all the project tasks that fall with-in a certain date range. At the lowest level, the problem is like this:
There are 2 ranges of dates (a,b) and (x,y) and I want to know if they overlap (ie at least one date common between a,b and x,y)
The formula for testing such a thing seemed tricky at first. So I drew the conditions on paper to get clarity on what we should test. Evidently, there are 4 ways in dates (a,b) can overlap with dates (x,y) as shown below:

Now, we can test for the overlap condition using a formula like this:
If x is between a and b
or a is between x and y
then overlap
else do not overlap
As you know, there is no formula in excel like isbetween(). So we have to break it up to 2 conditions and an AND() Formula. Finally the formula becomes,
=if(or(and(x>=a,x<=b),and(a>=x,a<=y)),"Overlap","Do not overlap")
Now, it seemed like quite a big formula for testing if 2 ranges of dates overlap.
So, I continued my quest for even shorter formula.
After sometime, I realized that if we test for non-overlap instead of overlap, we can write a shorter formula.
Do not understand? Let me explain.
While there are 4 ways in which (a,b) can overlap with (x,y), there are only two ways in which (a,b) cannot overlap with (x,y). See this to understand:

Now, testing above conditions is very straight forward in excel.
the formula becomes, =if(or(y<a,b<x),"Do not overlap","Overlap")
The formula is much shorter and easy to maintain.
I was able to use it to test if a set of tasks in the project plan are running between given dates (for eg. next week). All is well in the end.
How do you test overlap conditions?
Do you ever have to test overlap conditions? What kind of formulas have you used? Please share your formula tips & tricks using comments.

















11 Responses to “MLB Pitching Stats Dashboard in Excel+VBA by our VBA Class Student”
Hey Dan,
Thanks a lot... this is too good 🙂
Awesome stuff Dan! very impressed..
Thanks guys.
Some nice ideas in there, thanks for sharing. I noticed the list with teams has a missing value though ('Arizona Diamondbacks'). Also when manipulating Pivot Tables with VBA you should be really careful not to try to select a value that isn't in the Pivot Table, if you do all hell breaks loose 🙂 That's not the case here but just some advise as I learned the hard way...
Ah.....ya caught me.
dnrTeamName drives both the charts and the drop down list. It refers to:
=OFFSET(PvtTeams!$A$6,0,0,COUNTA(PvtTeams!$A$6:$A$40),1)
If you change A6 to A5, it fixes that little issue.
A better question though, who actually cares about the Arizona Diamondbacks?
🙂
Excellent post. Thanks
Great job, Dan! Thanks a million!
[...] MLB Pitching Statistics Dashboard [...]
Gr8 work Dan
Hi,
I downloaded file, but looks like everything is in xml. Was there suppose to be excel file as well?
Thanks!
I'm late to the party, but seeing this file in action and studying the underlying data in this Excel file has been AWESOME. I have TONS of new ideas to implement in my work files now. THANK YOU Dan and Chandoo!