在 Excel 数据处理过程中,有时我们需要从某列众多单元格里获取最后一个非空单元格的内容,这时可以借助公式 = LOOKUP (1,0/(B:B<>""),B:B) 来实现,如下图所示。

Excel中返回最后一个非空单元格内容的公式及原理解析-趣帮office教程网

以下详细解析这个公式的计算过程及原理。

公式各部分作用及计算步骤:

1. 构建逻辑值数组(B:B<>"")

首先,公式中的 B:B<>"" 这部分用于判断 B 列的每个单元格是否不等于空单元格。执行这一判断后,会得到一组由逻辑值 TRUE 和 FALSE 构成的内存数组。例如,如果 B 列中部分单元格有内容,部分为空,那么对应有内容的单元格位置就会标记为 TRUE,空单元格位置则标记为 FALSE。这一步操作相当于给 B 列的每个单元格都做了一个是否非空的 “标记”,为后续筛选做准备。

2. 生成新内存数组(0/(B:B<>""))

接着,用上一步得到的逻辑值数组参与运算,也就是用 0 除以这些逻辑值。在 Excel 的四则运算规则里,逻辑值 TRUE 相当于 1,FALSE 相当于 0。所以,当进行 0 除以逻辑值的操作时,就会出现两种情况:0 除以 TRUE(也就是相当于 1),结果为 0;而 0 除以 FALSE(相当于 0),由于除数不能为 0,会产生错误值。经过这样的运算后,就得到了一个由错误值和 0 构成的新内存数组。这里面出现的 0,其实就是 0/TRUE 的结果,它表示对应的单元格是符合非空这个条件的,而那些错误值对应的单元格则是不符合条件(也就是原本为空的单元格)的情况。

3. 查找并返回内容(LOOKUP (1,0/(B:B<>""),B:B))

最后,使用 LOOKUP 函数来进行查找并返回相应内容。LOOKUP 函数以 1 作为查找值,在前面生成的由错误值和 0 构成的内存数组中查找。LOOKUP 函数有个特性,它会忽略错误值,然后在剩下的符合查找条件(也就是值为 0 的位置)中,找到最后一个 0 的位置,并返回第三参数(这里第三参数同样是 B:B,也就是整个 B 列)中对应位置的内容。如果 B 列中有多个符合条件(也就是非空)的记录,LOOKUP 函数默认会以最后一个进行匹配,最终返回的就是 B 列最后一个非空单元格的内容了。

通过这样巧妙地运用逻辑判断、四则运算以及 LOOKUP 函数的特性,上述公式能够精准地帮助我们在 Excel 中获取某列最后一个非空单元格的内容,满足一些特定的数据处理和分析需求,比如在数据记录有先后顺序且需要获取最后有效记录内容等场景中就非常实用。