我有一个数组公式来填充包含文本的单元格,但我希望它忽略该单元格(如果它是空白的)并转到下一个。我遇到的问题是它没有按照我的顺序执行,例如:
范围是
-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
周围没有 $ 符号当您将公式拖到列中时,该引用会发生变化......但是该公式看起来比您需要的更复杂一些,所以我宁愿建议一个更好的替代方案:
您使用的是哪个版本的 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))))
关于arrays - Excel - 数组公式跳过空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20338711/