Pho*_*Jay 6 arrays excel if-statement formula
我有一个数组公式,当它包含文本时填充单元格,但我希望它忽略单元格,如果它的空白,然后转到下一个单元格.我遇到的问题是,它没有按照我的顺序执行:
范围是
-A
-(BLANK CELL)
-(BLANK CELL)
-D
-E
-F
-(BLANK CELL)
-H
-(BLANK CELL)
Run Code Online (Sandbox Code Playgroud)
公式的结果
-A
-E
-F
-H
Run Code Online (Sandbox Code Playgroud)
它正在跳过包含字母的单元格.有人可以提供帮助吗?
式:
{=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))))