如何让GCD函数与ARRAYFORMULA配合实现批量倍数判断?
解决Google Sheets中ARRAYFORMULA与GCD不兼容的问题:判断数值是否为5的倍数
问题核心
你尝试用=ARRAYFORMULA(IF(GCD(5,A1:A)=5,TRUE,FALSE))判断A列数值是否为5的倍数,但GCD函数不支持数组批量运算,导致ARRAYFORMULA无法自动展开生效。
替代解决方案
判断一个数是否为5的倍数,用MOD函数更直接高效,且完美支持ARRAYFORMULA,公式如下:
=ARRAYFORMULA(IF(A1:A="",,MOD(A1:A,5)=0))
公式说明
MOD(A1:A,5):计算A列每个数值除以5的余数=0:余数为0则说明是5的倍数,返回TRUE,否则返回FALSEIF(A1:A="",,...):跳过A列的空行,保持结果列空值(和你手动下拉的C列格式一致)
备选方案(若坚持用GCD)
如果一定要基于GCD实现,可以用BYROW逐行处理数据:
=BYROW(A1:A,LAMBDA(x,IF(x="",,GCD(5,x)=5)))
不过这种方法的运算效率不如MOD方案,适合特定场景需求。
结果验证
上述两个公式都能自动填充B列,得到和你手动下拉的C列完全一致的结果:
| A | B[数组公式] | C[下拉填充] |
|---|---|---|
| 1 | FALSE | FALSE |
| 2 | FALSE | FALSE |
| 3 | FALSE | FALSE |
| 4 | FALSE | FALSE |
| 5 | TRUE | TRUE |
| 6 | FALSE | FALSE |
| 7 | FALSE | FALSE |
| 8 | FALSE | FALSE |
| 9 | FALSE | FALSE |
| 10 | TRUE | TRUE |
| 62 | FALSE | FALSE |
| 34 | FALSE | FALSE |
| 22 | FALSE | FALSE |
| 75 | TRUE | TRUE |
| 34 | FALSE | FALSE |
| 46 | FALSE | FALSE |
| 30 | TRUE | TRUE |
| 21 | FALSE | FALSE |
| 92 | FALSE | FALSE |
| 56 | FALSE | FALSE |
内容的提问来源于stack exchange,提问作者watchman
相关产品推荐
相关产品推荐

