如何防止Google Sheets/Excel中arrayformula自动填充空行
问题对应表格
| 行号 | A | B | C |
|---|---|---|---|
| 1 | Apples | Bananas | Fruit |
| 2 | 26 | 28 | Banana |
| 3 | 36 | 34 | Apple |
| 4 | 33 | 39 | Banana |
| 5 | 无值 | 无值 | Banana |
| 6 | 无值 | 无值 | Banana |
解决方案
你当前公式的问题在于:当A、B列对应行都为空时,空值比较A2:A>B2:B结果为FALSE,会默认返回Banana,导致无数据行也被填充。
保留ARRAYFORMULA不修改的前提下,可使用以下改写后的公式:
=ARRAYFORMULA( { "Fruit"; IF( (A2:A="")*(B2:B=""), "", IF(A2:A>B2:B, "Apple", "Banana") ) } )
逻辑说明
(A2:A="")*(B2:B="")是数组格式的「同时为空」判断:只有对应行的A、B列都没有输入值时,判断结果为真- 判断为真时返回空白,无数据行不会被填充内容;判断为假时执行原有数量比较逻辑,输出对应水果名称
- 完全兼容你现有表格结构,无需额外调整其他设置
如果你的使用场景需要「只要A、B其中一列为空就返回空白」,可以把判断条件修改为(A2:A="")+(B2:B=""),加号对应数组逻辑或运算。
内容的提问来源于stack exchange,提问作者TheKing
相关产品推荐
相关产品推荐

