Luis接收格式为“ 04C18”的日期,其中前两位数字是日期,中间字母是月份(A是一月,B是二月,C是三月,依此类推),后两位数字是年。他需要将这些编码日期转换为可以在Excel中使用的常规日期值。

使此日期格式成为非标准的最大原因是使用月份的字母字符。因此,要做的第一件事是弄清楚如何将该字符转换为数字月份。这是CODE函数可以提供帮助的地方。它返回字符的ASCII码。字母A返回值65,B返回66,依此类推。因此,将字母转换为数字1到12所需要做的就是使用这样的东西:

=CODE(UPPER(MID(A1,3,1)))-64

UPPER函数用于将月份字符转换为大写,以防万一代码允许月份使用小写字母。

转换月份的另一种方法是以这种方式使用FIND函数:

=FIND(UPPER(MID(A1,3,1)),"ABCDEFGHIJKL",1)

此技术可以找到字母字符串中的字符,并返回该字符串中从1到12的偏移量。如果表示月份的字母不是连续的或者它们是递减的序列,则最好使用此方法。

然后,可以在DATE函数中使用转换月的任何一种方法,以基于年,月和日返回日期。此示例使用CODE方法,但您也可以轻松使用FIND方法:

=DATE(2000+RIGHT(A1,2),CODE(UPPER(MID(A1,3,1)))-64,LEFT(A1,2))

如果编码日期可能包含2000年之前的某些日期,则使用DATEVALUE函数将日期放在一起将产生更准确的结果:

=DATEVALUE(CODE(UPPER(MID(A1,3,1)))-64&"/"&LEFT(A1,2)&"/"&RIGHT(A1,2))

如果您使用DATEVALUE方法,请理解该公式将返回一个日期序列号,并且您将需要格式化该单元格以显示您希望显示的日期。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(7014)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: