Just noticed, that you don't really need the alt() function here, reason being that you need to check the numeric value in a condition anyway:
if(IsText(DateCol),Date(Date#(DateCol,'MMM')), if(DateCol < 2200,MakeDate(DateCol),Date(DateCol))) as DateColNew
Thanks, I have one question also what is the meaning ofif(DateCol < 2200,MakeDate(DateCol),Date(DateCol) )
please explain it.
If your numeric value is smaller than 2200, I assume it's describing a year (first argument to makedate() function), if it's larger than 2200, it's a date in numeric representation, so we just need to format the text representation.