In reply to Fredt:
Think this is fairly achievable with array formulas, no need for VBA, if I'm understanding the problem right (based on Red Rover's table).
I've done it with different working separated into different columns for clarity, but they could all be combined to give the usual single-cell monstrous formula that Excel seems to inevitably lead to.
----
Assuming a table (CTRL-T) with column names "Date" and "Value":
Determining whether the current date is the largest value so far is easy:
=IF([@Value]=MAX(IF([Date]<=[@Date],[Value],0)), "Highest to date", "A previous value is higher")
You need to press CTRL-Shift-Enter instead of just Enter after entering the formula, to denote it as an array formula.
Then the meat of the work is split into 3 sections - finding the previous maximum value; finding the index of that value in the table; and using that index to find the corresponding date.
A new column ("Previous max") has formula:
=MAX(IF([Date]<=[@Date],[Value],0))
Again, need to enter as an array formula (CTRL-Shift-Enter).
Column "Previous max index" has formula:
=MATCH([@[Previous max value]],[Value],0)
This is not an array formula, so enter as usual (just press Enter).
Column "Previous max date" then uses that index to find the date:
=INDEX([Date],[@[Prev max index]])
Again, not an array formula - just press Enter.
Then if you just want one mega-formula instead, putting them together gives:
=INDEX([Date],MATCH(MAX(IF([Date]<=[@Date],[Value],0)),[Value],0))
Which must be entered as an array formula.
----
If this doesn't make sense, doesn't work or makes some faulty assumptions let me know, but I think it's OK. Sorry if this is a bit hard to read, don't know how to format things nicely on UKC.
EDIT: Just seen that you actually want the current date if it's the max so far, so the mega-formula alone should do the trick.
Post edited at 11:46