已收录

单元格有多行日期,怎么提取最新日期?

墨云轩
墨云轩 WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

大家好,我是墨云轩,一名教办公软件的中职教师。边学习,边分享,每天进步一点点。

前几天,有网友问了我一个问题:

一个单元格里存了好几个日期,怎么能把最新的那个提取出来?

就是下面这个样子:

▲ 图1 网友的问题:A3单元格里装了4行日期

A3单元格里装了4行日期,一行一个。在单元格里换行,用的是Alt+回车。现在要把最新的日期,提取到旁边的单元格里。

说实话,这个问题我以前也没怎么遇到过。琢磨了一番,整理出两种方法,今天一次分享给大家。

方法一:TAKE 取最后一行

这个方法有个前提:日期是从小到大排好序的。

为了演示,我先把第一个日期改成2026.4.11,让4个日期从小到大排列。

第一步,用TEXTSPLIT拆分。

=TEXTSPLIT(A3,CHAR(10))

CHAR(10)就是单元格里的换行符。拿它当分隔符,多行日期就拆成了一行多列。

第二步,用TAKE取最后一个。

=TAKE(TEXTSPLIT(A3,CHAR(10)),,-1)

TAKE的第三个参数填-1,就是取最后一列。中间的行数参数留空,不用填。

日期既然是从小到大排的,最后一列自然就是最新的。

回车,2026.09.10就提取出来了。

▲ 图2 日期排序的情况下,方法一顺利提取出2026.09.10

公式不长,思路也顺。

不过,先别急着走。

日期一乱,方法一就失效了

我把A3里的第一个日期,改回2026.9.11。

这下最新的日期排在了最上面,顺序乱了。

再看方法一的结果,还是2026.09.10。

▲ 图3 日期乱序后,方法一取到的不是最新日期

不对了。最新的明明是2026.9.11。

原因很简单:TAKE只认位置,不认大小。它只会老老实实取最后一列,不会帮你比较日期。

所以方法一,只适合排序规整的数据。

乱序的怎么办?看方法二。

方法二:MAX 取最大值

思路换一下:要找最新,说白了就是找最大。

第一步,还是用TEXTSPLIT拆分。

=TEXTSPLIT(A3,CHAR(10))

跟方法一一样,先按换行符拆开。

第二步,用SUBSTITUTE统一日期格式。

=SUBSTITUTE(TEXTSPLIT(A3,CHAR(10)),".","-")

把日期里的点(.),统一换成横线(-)。2026.9.11就变成了2026-9-11,这才是标准的日期格式。

▲ 图4 用SUBSTITUTE把点换成横线,变成标准日期格式

要注意,这时候它还是文本,不是真正的日期,没法直接比大小。

第三步,加两个负号,把文本变成真日期。

--SUBSTITUTE(TEXTSPLIT(A3,CHAR(10)),".","-")

在公式前面加两个负号,负负得正,数值不变。但文本日期就变成了真正的日期,可以参与计算了。

第四步,用MAX取最大值。

=MAX(--SUBSTITUTE(TEXTSPLIT(A3,CHAR(10)),".","-"))

最大值,就是最新的日期。

▲ 图5 用MAX取最大值,得到最新日期的序列值

这里有个小细节:MAX算出来的,其实是日期的序列值,是一串数字。我是提前把单元格设置成了日期格式,所以能正常显示成日期。

如果想显示成带点的样式,比如2026.9.11,可以再套一层TEXT:

=TEXT(MAX(--SUBSTITUTE(TEXTSPLIT(A3,CHAR(10)),".","-")),"e.m.d")

格式代码e.m.d:e是年,m是月,d是日。

敲回车,完成。2026.9.11,正是最新的那个日期。

▲ 图6 方法二最终结果:2026.9.11,取对了

两种方法,怎么选

对比项

方法一

方法二

适用前提

日期从小到大排序

没有要求

公式长短

短,好记

长一点,但稳

适用建议

数据规整时用

日常推荐,一步到位

日常工作中,拿到的数据常常没这么规矩。我个人的建议是:直接用方法二,不用惦记数据排没排序。

公式汇总

方法一(日期已从小到大排序):

=TAKE(TEXTSPLIT(A3,CHAR(10)),,-1)

方法二(不限顺序,推荐):

=TEXT(MAX(--SUBSTITUTE(TEXTSPLIT(A3,CHAR(10)),".","-")),"e.m.d")

把公式里的A3,换成您自己的数据单元格,就能直接用了。

两句题外话

TEXTSPLIT和TAKE是这两年新出的函数,需要WPS Office较新的版本才支持。如果您用的是老版本,可能找不到这两个函数,这个得先说清楚,免得耽误您的时间。

这个小问题,前后用到了4个函数:TEXTSPLIT、TAKE、SUBSTITUTE、MAX。单拿出哪一个都不难,难的是想到把它们串起来,去解决实际问题。

这也是我一直跟自己说的:边学习,边分享,每天进步一点点。

今天的分享就到这里。如果您有更简单的方法,欢迎留言交流,先谢过各位大佬!

河北省
浏览 100
收藏
7
分享
7 +1
9
+1
全部评论 9
 
亂雲飛渡
点赞学习
   广东省
举报
0
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

· 河北省
举报
0
0
 
懒得批爆
懒得批爆 WPS资深用户WPS产品体验官WPS寻令官Lv.2 潜力创作者

Lv.2潜力创作者

清洗数据是最麻烦的,每次拿到手工表格还有手写表格拍照转换后再清洗的也麻烦, 你这遇到的是最简单的案例,曾经遇到过史上千奇百怪的书写方式,比如图中这种,如何破! 2020年左右遇到过,当时还真的是几百行挨个儿改,现在想想都痛苦。
   四川省
举报
0
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

试试分列
· 河北省
举报
0
0
 
临商珑胜
临商珑胜 Lv.2 潜力创作者

Lv.2 潜力创作者

学习了,收藏了,点赞感谢!
举报
1
1
墨云轩
墨云轩WPS资深用户Lv.3 优质创作者KVPWPS寻令官

Lv.3 优质创作者

·
举报
1
0
 
HC.旋
HC.旋 WPS资深用户Lv.3 优质创作者WPS寻令官KVP

Lv.3 优质创作者

感谢大佬分享,我也来一个,wps query的分列当行+分组聚合取最大值
   福建省
举报
2
2
HC.旋
HC.旋WPS资深用户Lv.3 优质创作者WPS寻令官KVP

Lv.3 优质创作者

大佬案例已收录,作为下次发帖案例
· 福建省
举报
1
0