本帖最后由 wangpc99 于 2023-12-27 09:06 编辑
01|职场实例
今天遇到一个这样的Excel问题:
在Excel表格当中如何提取每行数据中最后一个出现的数据?其实这个问题呢,是一个Excel办公界很经典的问题。这里需要注意的是每行中的“数据”分为几种情况,情况不同,解决的方法也就不同。
每行中的数据有以下几种情况:
①数字数据
②非数字数据
③数字数据+非数字数据混合数据
下面我们就这三种情况一一向大家介绍解决的方案。
02-1|数据为数字的提取方案1
如下图所示:每行的产量数据都为数值格式,我们该如何在F列提取每行最后一个记录的数据呢?
我们直接在F2单元格输入函数公式:
=LOOKUP(9E+307,B2:E2)
下拉填充公式即可得到全部结果。
9E+307被认为是接近Excel规范与限制允许键入最大数值的数,用它做查询值,可以返回一列或一行中的最后一个数值。
02-2|数据为数字的提取方案2
很多时候9E307也可以用9^9来替代,9^9的意思是9的9次幂,即9个9相乘的结果387420489,不过,如果你的数据中有超过这个数字的,还是用9E307稳妥一些。
在F2单元格输入函数公式:
=LOOKUP(9^9,B2:E2)
使用lookup时,默认是按升序排列的,每次都是查找正中间位置再和要找的值进行比对,再确定是在正中间的上方查找,还是正中间的下方查找。让lookup找的又是一个很大的值,那Excel自然会向下不断查询,而没有和9^9最接近的值,也就只会显示最后一个有效的值,从而得出我们的需求值。
03-1|数据为非数值的提取方案1 如下图所示:每行的产量数据都为汉字格式,我们该如何在F列提取每行最后一个记录的数据呢?
我们直接在F2单元格输入函数公式: =LOOKUP("座",B2:E2) 向下下拉填充公式即可得到所有的结果。 一般情况下,第一参数写成“座”也可以返回一列或一行中的最后一个文本。“座”通常被看做是一个编码较大的字符。
03-2|数据为非数值的提取方案2 除了Lookup函数,我们还可以使用IF+COUNTA+LOOKUP函数嵌套来解决: 在F2单元格输入函数公式: =IF(COUNTA(B2:E2),LOOKUP(1,0/(B2:E2<>""),B2:E2),"") 下拉填充公式即可得到全部结果。
04|数据为数值+非数值混合内容的提取方案 如下图所示:每行的产量数据都为数值+非数值混合内容格式,我们该如何在F列提取每行最后一个记录的数据呢?
我们直接在F2单元格输入函数公式: =LOOKUP(1,0/(B2:E2<>""),B2:E2) 下拉填充公式即可得到所有的结果。
|