You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写ArrayFormula公式实现多列特定关键词检测并返回结果

用ArrayFormula逐行检测多列中的特定关键词

你的原公式无法和ArrayFormula正常工作,是因为COUNTIF在数组公式中会对整个指定范围进行单次计数,而非逐行单独计算,导致所有行返回相同结果。以下是两种可行的解决方案:

方法1:使用MMULT(兼容旧版Google Sheets)

通过矩阵乘法实现逐行求和判断,适配不支持Lambda函数的旧版环境:

=ArrayFormula(IF(MMULT(--(B2:C="need order"),SEQUENCE(COLUMNS(B2:C),1,1,0))>0,"need order","ok"))
  • --(B2:C="need order"):将匹配到"need order"的单元格转为数字1,未匹配的转为0
  • SEQUENCE(COLUMNS(B2:C),1,1,0):生成与目标列数一致的全1列向量,配合MMULT完成逐行求和
  • MMULT(...)>0:判断每行是否存在至少一个匹配项,返回对应结果

方法2:使用BYROW(新版Google Sheets推荐)

如果你的Google Sheets支持Lambda函数,这个方法逻辑更直观易读:

=ArrayFormula(BYROW(B2:C,LAMBDA(row,IF(COUNTIF(row,"need order")>0,"need order","ok"))))
  • BYROW(B2:C, LAMBDA(row, ...)):遍历目标范围的每一行,将当前行作为参数row传入后续判断
  • COUNTIF(row,"need order"):对当前行单独计数,判断是否存在目标关键词

额外说明

  • 请根据实际数据范围调整公式中的B2:C,确保覆盖所有需要检测的列
  • 如果需要精确匹配大小写,可将判断部分替换为EXACT(B2:C,"need order")(方法1)或COUNTIF(row,EXACT("need order"))(方法2)

内容的提问来源于stack exchange,提问作者user20333600

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:50:22