如何定位最后一个非空单元格? Excel二维表横向查找最晚更新的非空值技巧
有读者遇到这么个问题:有一个二维表,其中的单元格并未全部填充满,如何根据行标题,向右查找出最新的值?
案例 一:
某公司近期因准备 IPO,要给员工配股,因此统计了 2016 年至今在职员工的职级,规则如下,如下图 1 的 A 至 F 列数据表所示:
统计每个人自 2016 年起的职级,如果职级发生变化,则连续向右填充至最新的状态,如果之后职级无更新,则留空不需要再填,根据 H2 单元格中填入的姓名,在 I2 单元格查找出该员工的最新职级。
效果如下图 2 所示。
解决方案:
1. 将 J 列设置为辅助列,在 J2 单元格中输入以下公式:
=COUNTA(INDEX(B2:F8,MATCH(H2,A2:A8,0),))
公式释义:
MATCH(H2,A2:A8,0):在 A2:A8 区域查找 H2,并返回其在区域中的位置
INDEX(B2:F8,...,):
返回 B2:F8 区域中指定行、列的值;
行数为上述 match 函数的查找结果;
列数为空,即不限定列,表示查找出区域中姓名与 H2 内容相同的所有单元格;
COUNTA(...):
COUNTA函数功能是返回参数列表中非空的单元格个数;
即统计出 H2 单元格的员工在区域中的职级共有几个非空单元格;
本例中,“诸葛钢铁”的职级共有 3 个单元格
2. 在 I2 单元格中输入以下公式:
=INDEX(B2:F8,MATCH(H2,A2:A8,0),J2)
公式释义:
MATCH(H2,A2:A8,0):再次使用 match 函数匹配出所需查找的姓名在 A2:A8 区域中的位置,并将其用作行号;
J2:将 J2 单元格,即上述辅助列的结果作为列号,即区域中的最后一列非空单元格;
INDEX(B2:F8,...,):用 index 函数在 B2:F8 区域中查找出行、列交叉位置的值
如果在 H2 中输入其他姓名,I2 单元格的结果也会随之变化。
案例二
一、使用MAX函数找到非空单元格的位置
MAX函数可以用来找到一列或一行所在的最大值,因此可以用它来找到非空单元格所在的位置。
=MAX(A:A)
上述公式将返回列A中最后一个非空单元格所在的行号。
同样地,如果要查找最后一个非空单元格所在的列号,可以使用以下公式:
=MAX(1:1)
二、结合INDEX函数返回非空单元格的值
一旦找到了最后一个非空单元格的位置,就可以使用INDEX函数返回该单元格的值。
=INDEX(A:A,MAX(A:A))
上述公式将返回列A中最后一个非空单元格的值。
同样地,如果要返回最后一个非空单元格所在的列的值,可以使用以下公式:
=INDEX(1:1,MAX(1:1))
三、使用VBA宏实现自动查找最后一个非空单元格
通过编写VBA宏,可以实现在大型工作簿中自动查找最后一个非空单元格。
可以使用以下代码实现:
Sub LastNonBlankCell() Dim LastRow As Long Dim LastCol As Long Dim LastCell As Range '查找最后一个非空行 LastRow = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row '查找最后一个非空列 LastCol = Cells.Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByColumns).Column '找到最后一个非空单元格 Set LastCell = Cells(LastRow, LastCol) '选中最后一个非空单元格 LastCell.Select End Sub
上述代码中,Find函数代表查找函数,它可以对表格、行或列进行查找。SearchDirection参数表示查找的方向,SearchOrder参数则表示查找的顺序。
四、结合OFFSET函数实现动态查找
如果需要动态查找最后一个非空单元格,可以结合OFFSET函数实现。
可以使用以下公式实现在列A中动态查找:
=OFFSET(A1,COUNTA(A:A)-1,0)
上述公式中,COUNTA函数可以用来计算列A中的非空单元格数量,-1操作可以确定最后一个非空单元格所在的行号(基于A1作为起始点)。OFFSET函数可以用来定位该单元格并返回其值。
同样地,如果要动态查找最后一个非空单元格所在的列的值,可以使用以下公式:
=OFFSET(A1,0,COUNTA(1:1)-1)
相关文章
终于有专门的去重函数了! Excel数据去重复值神器UNIQUE函数详解
今天我们来了解一个Excel中的新函数—— UNIQUE, 它可以说是很多人期盼已久的函数,可以帮助我们从数据区域中自动提取唯一值,就是我们常说的去重,操作也非常简单,下面2025-01-02Excel如何去重留最下方的行? 最基础公式实现删除重复值的技巧
Excel中经常需要去掉重复值,该怎么操作呢?没有高阶Excel函数也没事,去重留最下方的行,最基础公式就行,详细请看下文实例教程2025-01-02怎么查找15位以上数据重复? Excel超过15位的数字查找重复值的技巧
excel由于本身限制,数值格式只能识别15位以内的数字,超过15位时,后面的数字自动被识别为“0”,这种情况怎么查重呢?详细请看下文介绍2024-12-24- excel中的文本数值是不能直接排序的,如果想要排序首先要帮助 Excel 把文本翻译成数值,下面我们就来看看详细的教程2024-12-15
Excel怎么自由切换单位? 选择单选钮实现数值按不同单位显示的技巧
今天我们来看看,在Excel中如何快速切换一列数据的单位,我们就用长度单位来示范一下,详细请看下文实例介绍2024-12-15excel如何快速将数值批量扩大10倍? EXcel表格中数字扩大10倍的技巧
想要将电子表格中一列数据扩大10倍,该怎么批量实现呢?下面我们就来看看excel快速将数据扩大10倍的教程2024-09-28多个重复值如何快速只统计一次? excel重复的数据设置只统计一次教程
excel表格中重复的数据很多,统计数据的时候,想要将重复数据只统计一次,该怎么操作呢?下面我们就来看看详细的教程2024-09-15- 今天跟大家分享10组日常工作中经常需要用到的Excel公式组合,大家如果遇到类似的问题,更改数据区域,直接套用即可2023-01-04
excel怎么突出显示重复值 excel设置突出显示重复出现数值的方法
日常办公中相信很多小伙伴们都会用到excel这款办公软件,那使用的过程中想突出显示重复数值的设置方法,那小伙伴们都知道吗?下面一起来了解一下吧2022-07-13excel突出重复值怎么操作?excel中突出显示重复值操作方式
这篇文章主要介绍了excel突出重复值怎么操作?excel中突出显示重复值操作方式的相关资料,需要的朋友可以参考下本文详细内容介绍2022-07-12
最新评论