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

Google Sheets中MAXIFS结合arrayformula无法自动填充求助

数组公式仅返回首个单元格结果,无法自动填充

我首次在Stack Overflow发帖,若格式或礼仪有问题请见谅。

我需要在「Control de Orden」工作表中添加字段,显示订单的最后更新日期,但使用的数组公式仅在第一个单元格返回正确结果,无法自动填充下方单元格。

工作表说明

  • RawDataOrdenes:用于录入新订单,C列为订单号,D列为收据号;
  • RawDataActualizaciones:用于录入订单更新,D列为订单号,E列为收据号,包含订单更新日期字段;
  • Control de Orden:整合前两个工作表的数据,订单新增或更新时同步更新,单个订单可能有多条更新记录。

尝试过的公式

最初使用的公式:

=arrayformula(MAXIFS(RawDataActualizacion!G2:G,RawDataActualizacion!B2:B,(D2:D&C2:C)))

参数说明:

  • RawDataActualizacion!G2:G:最后更新日期列;
  • RawDataActualizacion!B2:B:收据号与订单号的拼接值列;
  • D2:D&C2:C:当前工作表中收据号与订单号的拼接值。

后续还尝试了两个公式,同时创建了辅助列J2:J存储D2:D&C2:C的数组拼接值:
1.

=arrayformula(BYROW(RawDataActualizacion!G2:G,LAMBDA(x,MAXIFS(RawDataActualizacion!B2:B,(D2:D&C2:C),x))))

该公式能自动填充但返回零值。
2.

=BYROW(A3:INDEX(RawDataActualizacion!G2:G,COUNTA(RawDataActualizacion!G2:G)),LAMBDA(x,MAXIFS(RawDataActualizacion!B:B,(D2:D&C2:C),x)))

解决方案

问题核心是MAXIFS搭配ARRAYFORMULA时,无法自动遍历每一行的匹配条件;你之前用BYROW时遍历对象搞错了,应该遍历当前工作表的订单拼接值,而非更新表的日期列。

推荐两种可行公式:

方案1:用XLOOKUP(效率更高)

在「Control de Orden」目标列的首行输入:

=ARRAYFORMULA(IF(D2:D="","",XLOOKUP(D2:D&C2:C,RawDataActualizaciones!B2:B,RawDataActualizaciones!G2:G,"",0,2)))
  • 逻辑:用当前行的订单+收据拼接值作为匹配键,在更新表的拼接列中降序查找,返回最后匹配到的日期(即最新更新日期);
  • IF(D2:D="","",...)用于过滤空行,避免返回错误或0值。

方案2:用BYROW(逻辑更直观)

同样在目标列首行输入:

=BYROW(D2:D&C2:C,LAMBDA(key,IF(key="","",MAXIFS(RawDataActualizaciones!G2:G,RawDataActualizaciones!B2:B,key))))
  • 逻辑:遍历当前工作表每一行的拼接键,对每个键执行MAXIFS,从更新表中取出对应订单的最大更新日期;
  • 同样加入空值判断,优化显示效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:23:22