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

问题描述 投票:0回答:3

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

范围是

-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)))}

arrays excel if-statement formula
3个回答
8
投票

我认为问题在于你的范围为

B4:$B$12
,所以因为
B4
周围没有$符号,当你将公式拖到列中时,引用会发生变化.......但公式看起来是比你需要的更复杂一点,所以我宁愿建议一个更好的选择:

您使用的是哪个版本的 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))))


0
投票

如果您的数据从 A1 开始,请使用以下公式:

=FILTER(A1:A8,A1:A8<>"")

在 FILTER 函数的第一个参数中,一个标识要返回的数据数组。

在第二个参数中,确定过滤的标准。在这种情况下,请求者想要跳过空格,因此条件不等于 (<>) null ("")。

确保返回范围和过滤器范围使用相同的。在本例中,为第 1 行到第 8 行。但您可以根据需要使用其他


-1
投票

找到了一种更简单、更容易的方法,基本上Excel认为所有空白单元格(

""
)相等,所以另一种简单的方法是选择包含数据的列,然后单击数据选项卡下的删除重复项,这将删除(跳过)所有空白单元格。

Simple and easy way to remove blank cells from a column in Excel - by Francis Lacle

© www.soinside.com 2019 - 2024. All rights reserved.