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

标签 arrays excel if-statement formula

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

范围是

-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/

相关文章:

arrays - 如何将范围作为数组从 Excel 导入 Word 文档

arrays - 查找修改数组以满足条件的最小操作集

python - 将结果写入 Excel

if-statement - 批处理文件检查目录是否存在,如果不存在则使用备用目录进行文件复制

java - 如何删除输出中的最后一个 “-”?

javascript - 声明为常量的数组仍在 javascript 中被操作

if-statement - 当我不关心 `if` 语句中包含什么值时,如何使用枚举?

python - 为什么这个 python 脚本给出错误的输出,使用 awk 并比较 if block 中的值?

java - 如何编写 jXLS 模板以及在何处编写

c# - 使用openxml将背景颜色应用于excel中的特定单元格