=VLOOKUP(value, matrix, num, TRUE) can be used on sorted arrays (such as you have here) to deliver the largest value that is less than or equal to the lookup... But that's not quite what you want, huh?
I've built what I think you want using MATCH and INDEX with an IF... didn't actually use VLOOKUP, but that's just the way the cookie crumbled. (See attached).
I used five cells, and then just stepped cell references backwards until I was only referring to sheet1!A1 and the array--and since sheet1A1 is just = TODAY(), you could replace those too, and feed this function just the array as the argument and it would automatically spit out what's closest to today. That might be pretty opaque to look at though, be warned.
Bookmarks