工作中如果需要填写月份,经常用的是英文简写,当然特定情况下也会要求写全称。

还有一些情况下,为了便于排序,需要用数字来表示月份。

这就衍生了一个比较有趣的问题:英文和数字形式的月份,如何相互转换?

案例:

将英文月份转换为数字月份,再将数字月份转换成英文缩写和全称的月份,如下图所示。


解决方案1:英文月份转数字

说到将月份作为数字提取出来,熟悉函数的同学可能已经想到了month函数。没错,就是它!

虽然这个函数非常简单,但是怎么用却也有技巧,如果姿势不对,也一样求不出结果。

我们就先来看看如果直接用month,会不会得出正确结果。

在B2单元格中输入以下公式:

=MONTH(A2)


然而,出错了。为什么呢?

这是因为month函数的参数必须是日期或者一个代表日期的序列值,而英文的月份简写只是一个文本,因此会报错。


所以,需要通过公式中的一个小小变化将文本转换为日期,下面就是正确答案。

1.在B2单元格中输入以下公式-->下拉复制公式:

=MONTH(A2&"1")

公式释义:

本公式的重点主要在于参数的设置,A2&"1"的结果为Jan1,相当于1月1日,这就将文本转换成了日期格式;

最后用month函数提取上述日期的月份,就能得到一个表示月份的数字了




其实上述公式的参数如果演变如下,也一样能得出结果:

=MONTH(A2&"-1")

参数的结果为Jan-1,这是一个更规范的日期格式,所以当然符合month函数的要求。


=MONTH(A2&"2")或 =MONTH(A2&2)

这两个公式的参数结果都是Jan2,即1月2日,用month求月份,日的改变不会影响月份结果。



解决方案2:数字月份转英文

转换成英文简写:

1.在E2单元格中输入以下公式-->下拉复制公式:

=TEXT("1-"&D2,"mmm")

公式释义:

跟前面公式的用法同理,text函数可以将日期转换为英文简写的月份,但前提是转换的对象必须是日期格式;

D列的数字显然不是日期,而通过 "1-"&D2,就将D列分别转换为1-1,1-2……1-12,分别代表1月1日,2月1日……12月1日;

然后用 TEXT函数转换成简写的英文月份

*请注意:因为我用的是英文版的Excel,英文环境中默认格式为“日-月”,所以参数需要设置为 "1-"&D2。如果是中文版的Excel,请改为D2&"-1",即“月-日”的形式,才能被正确识别。




转换为英文全称:

2.在F2单元格中输入以下公式-->下拉复制公式:

=TEXT("1-"&D2,"mmmm")

跟上一个公式唯一的区别是,第二个参数多了一个m。