1 背景
7/24同事请教了一个问题,Excel中有一列,内容各有不同(什么系统中导出来的),怎么提取出其中的日期格式。
给了三个示例:
4 | 3 | 白色XXXX | 乙XXXX | …… | 20221212 | 注XXXX
4 | 3 | 无色XXXX | 乙XXXX | …… | 20221223 | 工XXXX
4 | 3 | 外观XXXX | 成XXXX | …… | 20220925 | 用XXXX
其中,XXXX、省略号部分内容也有长有短不尽相同。
2 思路分析
最开始想到用Left函数或者Mid函数,查找的对象设定为“| 20”(默认都是20XX年),先用Find函数查找“| 20”,定位出字符串位置,再用Mid和Left函数提取出八位日期数字。捣鼓了一圈,成功,但是同事说也有19XX年开头的,所以又重头来过。
后来又想尝试用数组,又捣鼓一圈,没成。
后来开始在网上搜索类似的文章,寻寻觅觅,当关键词变成“遍历”时,豁然开朗。
3 实现过程
以下步骤基本copy lExcel公式技巧100:遍历单元格中的数据,感谢万能的网友。
使用公式:
=MAX(IFERROR(VALUE(MID(A1,ROW(INDIRECT(“1:”&LEN(A1))),8)),“”))
注:在Office软件里直接输入以上公式就可,在WPS中输完需按数组公式按键Shift+Ctrl+Enter,不然会像H3单元格那样显示为#VALUE!。
(别问我怎么知道的,我在Office里做好的第一版,在WPS里整理这篇文章,然后发现失灵了,又琢磨半个多小时。)
4 总结与思考
- 公式的思路网友的链接里说得挺清楚,就不再复述了。网友的公式很精巧,当时看着觉得眼前一亮。
- 网友的例子原本用来提取最大两位数数值,这里用来提取日期,有点刁钻但是挺好用。 “遍历”这个词真是强大,思路严谨且清晰,也不会出错。
- WPS需要按数组公式的三个键那个,真是一个隐藏的坑,害我今晚晚睡40min。
- 7月份的故事,12月的最后一天来写,好多细节都记不清了。以后还是及时整理吧。
【原创内容,引用请注明出处:【Excel】遍历自动提取日期】