I'm trying to convert a string that looks like "MMM DD YYYY" (e.g. "Jan 17 2015") into Excel serial date.
The problem is: I'm running an Int'l version of Windows and neither DATEVALUE nor CDate() recognize this format (they depend on system locale). Moreover, when I'll write the function, I won't know on which locale it will be used.
This post: Excel VBA - Convert Text to Date? gives a great solution (invoking TextToColumns programatically), but it's of no use to me - I need a function (or an UDF) that will process a string inside a formula. Those "dates" are the result of yet another calculation (regexps, actually), so I can't use TextToColumns on those cells - it'll mess them up.
Yes, I can write an UDF with a static lookup table that will feed numbers into DateSerial(), but maybe there's a better way?
CLARIFICATION This is not about fixing order of d/m/y. The main culprit is the textual name of a month - it's in English so int'l version of Excel won't recognize it. For example, February is "helmikuuta" in Finnish locale and "luty" in Polish one :)
ON ANSWERS Wow so many useful answers! My (short) experience with using SO has been rather negative so far - I ask a question, nobody says anything constructive and in the end I develop a solution and answer the question myself. This time, however, I am pleasantly surprised and my faith in humanity is restored :) Will review the answers and comment on them now...