Excle剔除某列的空白单元格

公式如下:

=INDEX(A:A,SMALL(IF(A:A<>"",ROW(A:A),4^8),ROW(A1)))&""

在新列的第一个单元格中输入以上公式,然后Ctrl+Shift+Enter;下拉单元格,保持队形。
注意:公式输入之后不是直接回车,是按Ctrl+Shift加回车。

图例:
Excle剔除某列的空白单元格_第1张图片
image.png

当然具体写法根据具体场景略有差别,公式含义:

EXCLE 之 INDEX:

INDEX( )用法有两种:
1.数组形式——INDEX(array,row_num,column_num)
数组形式通常返回数值或数值数组;

  • array - 选择区域
  • row_num - 选定区域(array)中第row_num行
  • column_num - 选定区域(array)中第column_num列
  • 最后返回:区域(array)中第row_num行第column_num列的值。

2.引用形式——INDEX(reference,row_num,column_num,area_num)。
引用形式通常返回引用。
此处使用INDEX( )的数组形式。

EXCLE 之 SMALL:

1.small函数的语法格式 : SMALL(array,k)

  • array - 选择数据范围
  • k - 选定范围(array)里的第k个位置(从小到大)
EXCLE 之 IF:

1.if为excle的常用函数,语法:IF(Logical_test,[value_if_ture],[value_if_false])

  • Logical_test - 表达式
  • [value_if_ture] - 输入为表达式结果为真时想要的值
  • [value_if_false] - 输入为表达式结果为假时想要的值
    即 IF(表达式,结果为真是返回值,结果为假时返回值)
分解公式:

=INDEX(A:A,SMALL(IF(A:A<>"",ROW(A:A),4^8),ROW(A1)))&""
IF(A:A<>"",ROW(A:A),4^8)
SMALL(IF(A:A<>"",ROW(A:A),4^8),ROW(A1))
INDEX(A:A,SMALL(IF(A:A<>"",ROW(A:A),4^8),ROW(A1)))

1.IF(A:A<>"",ROW(A:A),4^8)
当A列值不为空时返回此行向下的一个数组区域(array,区域将作为small函数的参数),为空时返回4^8。
另有写法IF($A$1:$A$100<>"",ROW($A$1:$A$100),4^8) ,同上。
注:4^8,4的8次方为excel2003的最大行数,以不小于数据行数为准

2.SMALL(IF(A:A<>"",ROW(A:A),4^8),ROW(A1))
如果SMALL函数接收到的时IF返回的数组(array),返回对应的行号。

3.INDEX(A:A,SMALL(IF(A:A<>"",ROW(A:A),4^8),ROW(A1)))
返回A:A中对应行号(SMALL函数的结果)里的值。

你可能感兴趣的:(Excle剔除某列的空白单元格)