暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Excel公式技巧90:剔除单元格区域中的空单元格

完美Excel 2021-06-07
1939

学习Excel技术,关注微信公众号:

excelperfect


有时候,在一列数据中有许多空单元格,导致数据不连续,我们需要剔除这些空单元格,让数据区域连起来。

 

如下图1所示,在单元格区域A1:A15中输入了一些数据,但其间有许多空白单元格。

1

 

在单元格D1中,输入数组公式:

=IFERROR(INDIRECT("A" & SMALL(IF(LEN($A$1:$A$15)=0,"",ROW($1:$15)),ROW(A1))),"")

然后,向下复制直至出现空白单元格为止,如下图2所示。

2

 

注意,数组公式要求按下Ctrl+Shift+Enter组合键才算完成输入,Excel将自动在公式两侧加上花括号({})。

 

公式的核心部分是:

SMALL(IF(LEN($A$1:$A$15)=0,"",ROW($1:$15)),ROW(A1))

首先,获取单元格区域A1:A15中每个单元格内数据的长度:LEN($A$1:$A$15),看其是否为0LEN($A$1:$A$15)=0,如果为0,则表明该单元格为空,返回一个空值,否则返回该单元格所在的行号:IF(LEN($A$1:$A$15)=0,"",ROW($1:$15)),对于本例来说,返回数组:{1;””;3;””;””;6;””;””;””;10;11;””;””;””;15}。接着,对于第一个公式来说,ROW(A1)返回1,即获取该数组中最小的值,即1

 

然后,使用INDIRECT函数获取第1个非空单元格的值:

INDIRECT(“A” & 1)

即单元格A1中的值。

 

依此类推,得到其他非空单元格的值。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

文章转载自完美Excel,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论