ArrayFormula无法填充全部单元格问题求助
问题排查与解决办法
问题原因
你使用的AND()函数不支持数组批量运算,它会把M2:M>=80和LEFT(H2:H,2)>=20这两个数组条件当成一个整体判断,只会返回单个布尔值,导致ARRAYFORMULA仅能生成第一行结果,无法自动填充后续单元格。
另外需要注意:LEFT(H2:H,2)返回的是文本类型,直接和数值20比较可能出现逻辑错误,必须先转换成数值。
修复后的公式
方法一:用乘法替代AND()(推荐)
利用Google Sheets中逻辑值TRUE=1、FALSE=0的特性,两个条件相乘后,只有同时满足才会得到1(即TRUE),否则为0(FALSE):
=ARRAYFORMULA({"test"; IF((M2:M>=80)*(VALUE(LEFT(H2:H,2))>=20),"Yes","No")})
也可以用*1简化数值转换:
=ARRAYFORMULA({"test"; IF((M2:M>=80)*(LEFT(H2:H,2)*1>=20),"Yes","No")})
方法二:嵌套IF函数
通过嵌套IF实现多条件判断,同样支持数组运算:
=ARRAYFORMULA({"test"; IF(M2:M>=80, IF(LEFT(H2:H,2)*1>=20, "Yes", "No"), "No")})
内容的提问来源于stack exchange,提问作者cpaone
相关产品推荐
相关产品推荐

