Excel – 数组公式跳过空单元格

我有一个数组公式来填充单元格,当它包含文本,但我希望它忽略单元格,如果它的空白,并转到下一个。 我遇到的问题是,它没有按照我的例子来做:

范围是

-A -(BLANK CELL) -(BLANK CELL) -D -E -F -(BLANK CELL) -H -(BLANK CELL) 

从公式得出结果

 -A -E -F -H 

它正在跳过包含字母的单元格。 有人可以帮忙?

式:

{=IF(ISERROR(SMALL(IF(B4:$B$12<>"",ROW(B4:$B$12)),ROW(B4:$B$12)-3)),"",INDEX(B4:$B$12,MATCH(SMALL(IF(B4:$B$12<>"",ROW(B4:$B$12)),ROW(B4:$B$12)-3),IF(B4:$B$12<>"",ROW(B4:$B$12)),0)))}

我认为问题在于你的范围是B4:$B$12 ,因为B4周围没有任何$符号,当你将公式向下拖动时,引用发生变化…….但是公式看起来有点比你需要更复杂,所以我宁愿build议一个更好的select:

你使用的是哪个版本的Excel?

在Excel 2007或更高版本中尝试此版本

=IFERROR(INDEX(B$4:B$12,SMALL(IF(B$4:B$12<>"",ROW(B$4:B$12)-ROW(B$4)+1),ROWS(D$4:D4))),"")

假设您的第一个单元格是D4 (更改ROWS(D$4:D4)部分以匹配您的实际开始单元格),然后将公式拖动到列

CTRL + SHIFT + ENTER确认

IFERROR函数不可用的早期版本中,可以使用此版本

=IF(ROWS(D$4:D4)>COUNTA(B$4:B$12),"",INDEX(B$4:B$12,SMALL(IF(B$4:B$12<>"",ROW(B$4:B$12)-ROW(B$4)+1),ROWS(D$4:D4))))

发现一个更简单和更简单的方法,基本上Excel认为所有的空白单元格( "" )相等,所以另一个简单的方法是select包含数据的列,然后单击删除重复在数据选项卡下,这将删除(跳过)空白的空单元格。

从Excel栏中删除空白单元格的简单方法 -  Francis Lacle