Google Sheets 嵌套IF/AND公式转ARRAYFORMULA实现求助
Google Sheets多条件嵌套IF公式转ARRAYFORMULA方案
核心注意点
- 原生
AND函数无法在ARRAYFORMULA中实现逐行判断,需用布尔值乘法替代:AND(条件A, 条件B)等价于(条件A)*(条件B),两个条件同时满足时结果为真 - 所有单单元格引用要替换为整列引用,比如
L2替换为L2:L即可自动向下遍历所有行
转换后可直接使用的数组公式
你可以把以下公式放在你要输出结果的列的第二行(和原单单元格公式起始位置一致),会自动对整列生效:=ARRAYFORMULA(IF(ISBLANK(N2:N),IF((L2:L>=1)*(O2:O=""),ROUNDUP(L2:L/C2:C),IF((L2:L>=1)*(O2:O="Pallet"),"Pallet",IF(L2:L<1,ROUNDUP(L2:L/C2:C),))),"BO"))
逻辑对应说明
公式完全保留了你原有单单元格公式的所有判断规则:
- 首先判断当前行N列是否为空:
- 不为空直接返回
BO - 为空则进入下一级判断
- 不为空直接返回
- 若当前行L列数值≥1且O列为空:返回L列数值除以C列数值的向上取整结果
- 若当前行L列数值≥1且O列内容为
Pallet:返回Pallet - 若当前行L列数值<1:返回L列数值除以C列数值的向上取整结果
优化提示
如果不需要公式计算无数据的空白行,可以在最外层增加空行判断减少无效计算,示例:=ARRAYFORMULA(IF(L2:L="",,IF(ISBLANK(N2:N),IF((L2:L>=1)*(O2:O=""),ROUNDUP(L2:L/C2:C),IF((L2:L>=1)*(O2:O="Pallet"),"Pallet",IF(L2:L<1,ROUNDUP(L2:L/C2:C),))),"BO")))
内容的提问来源于stack exchange,提问作者Del
相关产品推荐
相关产品推荐

