Excel DATEVALUE function independent of international settings

后端 未结 2 1110
我寻月下人不归
我寻月下人不归 2021-01-15 03:52

In my Excel workbook, I copy some date information from another (text) source. To be able to do calculations with these dates, I use the function \"DATEVALUE\".

Exam

相关标签:
2条回答
  • 2021-01-15 04:02

    Try the following UDF :

    Public Function EngDate(s As String) As Date
        Dim dayz As Long, monthz As Long, yearz As Long
        ary = Split(LCase(s), " ")
        dayz = CLng(ary(0))
        yearz = CLng(ary(2))
        mnth = Split("january,february,march,april,may,june,july august,september,october,november,december", ",")
        For i = 0 To 11
            If ary(1) = mnth(i) Then
                monthz = CLng(i + 1)
                Exit For
            End If
        Next i
        EngDate = DateSerial(yearz, monthz, dayz)
    End Function
    

    It will process inputs like:

    day as number, single space, month as text, single space, year as a number

    0 讨论(0)
  • 2021-01-15 04:13

    You can try this formula:

    =DATE(RIGHT(A1;4);MATCH(MID(A1;4;3);{"Jan";"Feb";"Mar";"Apr";"May";"Jun";"Jul";"Aug";"Sep";"Oct";"Nov";"Dec"};0);LEFT(A1;2))
    

    Date admits arguments always in the order year, month, day

    I admit that day values are always 2 digits.

    If you dont mind to write the months abrev. in a range then you can get a much more shorter formula.

    Depending on your regional settings you may need to replace field separator ";" by ","

    0 讨论(0)
提交回复
热议问题