快速提取第一个值和最后一个值,这个函数都能搞定

office

在很多数据表格里面,通常需要把同一行数据的第一个值和最后一个值取出来。

比如这张销售跟进表,如果要单独拎“第一次响应时间”和“最后一次跟进时间”,你真靠眼睛一格格找,做一次还行,数据一多就很容易看花。

图片

今天分享一个超简单的公式,解决这类问题毫不费力。

先把第一个值提取出来

要的是第一次响应时间,H2公式直接写:

=@TOROW(B2:G2,1)

如果你用的是支持这些新函数的 Excel 365,或者 WPS 当前版本也已经带上了,回车以后,当前行第一个非空时间就会直接出来。

图片

这条公式其实很好理解。

 TOROW(B2:G2,1) 先把这一行里有内容的时间拢成一个数组 。

最前面的 @ 再顺手一收,就只留最左边那个。

所以 H2 拿到的,就是这一行第一次出现的时间。

提醒:

如果你对 @ 还是有点虚,最简单的办法就是先把它删掉。让 TOROW(B2:G2,1) 先把整排结果吐出来,你看明白它到底返回了什么。

@ 到底在干嘛

这个符号很多人都会用,但真问名字,往往就卡住了。

来来来,我来给你讲清楚。

微软官方把它叫 Implicit intersection operator ,中文支持页正文写的是“隐式交集运算符”。

名字听着有点学术,你不用硬背,人话理解就行:公式本来会吐出一串结果,但当前这个单元格只准留一个值,那 @ 就负责把它收成单个结果。

放到这题里, TOROW(B2:G2,1) 返回的是一整排结果,所以 @ 留下的自然就是最左边那个。你把 @ 去掉也很好理解,因为整排结果会直接溢出来。

最后一个值怎么拿

I2 要的是最后一次跟进时间,思路根本不用重来,还是先把非空值拢起来,只不过这次改成拿最右边那个:

=TAKE(TOROW(B2:G2,1),,-1)

TAKE(...,,-1) 的意思,就是从最右边截 1 列。

所以同样是 09:12 | 14:35 | 19:20 这排值,它最后截到的就是 19:20 。

你会发现,这题看着像两个问题,其实就是同一个动作做了两次:先把散着的值拢起来,再决定你拿排头,还是拿排尾。

图片

没有 365 新函数怎么办

真没有也不用慌,这题照样能做。

找第一个值,可以用:

=IFERROR(INDEX(B2:G2,MATCH(TRUE,B2:G2<>"",0)),"")

找最后一个非空值,可以用:

=IFERROR(LOOKUP(1,0/(B2:G2<>""),B2:G2),"")

前面这条,是 MATCH 先找到第一个非空位置,再让 INDEX 去取值;后面这条,是 LOOKUP 顺着往后找,最后落到最后一个非空单元格上。

所以新函数当然更顺手,但真碰到老版本 Excel,或者 WPS 这边暂时还没跟上,也不是没法做。

提醒一句:这类题找的是“从左到右的出现顺序”,不是时间大小。也就是说,哪一列应该更早出现,哪一列就该摆得更靠前。

不然公式没错,结果也可能跑偏。