目录:
- 情景,将各种日期格式转为"209-01"格式
- 方案
- 第一步:开始选项卡 - 数字栏 - 格式选为“短日期”
- 第二步:YEAR、MONTH、DAY函数
- 第三步:用TEXT函数增加前导0
- 第四步:MID()提取文本数据
- 第五步:手动处理问题数据
情景,将各种日期格式转为"2019-01"格式
老师/上级给了你一个任务: 有几张excel表格(.xlsx文件),要你把大家的获奖记录统计到一个excel表格里。
你看了看前面的字段,嗯,复制粘贴到一起就可以了,比较简单,然后你看了看日期——
说好的填写“年-月”,填日期的同学是什么情况?42795是什么情况?
填日期的也就算了,2018“月”是什么情况?这位同学这个智商..他是怎么得奖的?
经过一番斗争,我总结了一套方案, 可以高效地 将各种日期格式转为 "2019-01" 格式。
方案
第一步:开始选项卡 - 数字栏 - 格式选为“短日期”
这主要是针对43040这种数据:
- 这种数据还有另一个名字:时间戳;
- 是计算机保存数据的方式,暗含了数据信息,让excel帮你转换为“人能看得懂”的形式即可,效果如下。
注意到“2019.09”这栏数据不适于被转换为“短日期”:
- 因为excel并不认为“2019.09”是一种时间数据;
- 只把他当成文本格式进行转换,文本转换值默认都为“1905/7/11”。
我们跳转下一步,正式开始处理。
第二步:YEAR、MONTH、DAY函数
输入函数:
=YEAR(C1)& "-" & MONTH(C1)
其中:
- YEAR()、MONTH()可以从单元格中提取年、月;
- &表示连接字符串;&"-"&即年、月间用“-”连接;
那么如何把“2019-3”转换为“2019-03”呢?
第三步:用TEXT函数增加前导0
将第二步函数抛弃,输入函数:
=YEAR(C1)& "-" & TEXT(MONTH(C1),"00")
效果如下图。
其中,TEXT()函数设置了省缺值,如果返回7,则更改为07。
第四步:MID()提取文本数据
有些同学填写了"2019.09"这种,计算机不将其理解为时间数据,因此我们用文本函数提取它:
=MID(B3,1,4) & "-" & MID(B3,6,2)
MID(txt,a,b)表示:
- 对于数据txt;
- 提取第a个字符开始的;
- 共b个字符的数据。
第五步:手动处理问题数据
有些同学人为地填写错误,计算机当然难以分析咯。
对于这部分数据:
- 量很少;
- 做完纵览总表后,我们手动去掉就好。