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

将Google Sheets公式转换为数组时遇到问题求助

问题描述

我正在使用Google Sheets中的Size工作表,另有一张他人协助制作的WorkingSize工作表,其中ColR的公式运行完全正常。我需要让Size工作表的ColN实现和WorkingSize ColR完全一致的输出,但尝试将后者的公式转换为数组公式应用到ColN时始终失败。

Size工作表关键细节:

  • 红色标记的问题数据区域,最终会迁移到其他工作表,我能熟练处理跨表引用。
  • K6及以下单元格是披萨类型输入区,当前为自由文本,后续会设置成A2:A区域的下拉选项,A2:A的条目与F3:H3表头匹配,理论上A2:A新增条目时会自动新增对应列。
  • ColL:存储面团重量的数值列
  • ColM:指定要搜索的目标表格列
  • ColN:需要将ColL的重量值四舍五入到对应披萨类型列的最近值,然后输出对应的尺寸。
解决方案

可以借助BYROW函数实现数组化计算,自动遍历每一行完成逻辑处理。在Size工作表的N6单元格输入以下数组公式:

=BYROW(L6:L,MAP(L6:L,M6:L,K6:L,LAMBDA(weight,target_col,pizza_type,
  IF(OR(weight="",target_col="",pizza_type=""),"",
    LET(
      weight_range, INDIRECT("'"&pizza_type&"'!"&target_col&":"&target_col),
      size_range, INDIRECT("'"&pizza_type&"'!B:B"),
      closest_weight, MIN(ABS(weight-weight_range)),
      INDEX(size_range,MATCH(closest_weight,ABS(weight-weight_range),0))
    )
  )
))

公式逻辑说明:

  1. BYROW+MAP组合遍历L、M、K列的每一行数据,将每行的重量、目标列、披萨类型传入自定义逻辑。
  2. IF判断空值,避免无输入时返回错误结果。
  3. LET定义变量简化公式:weight_range根据披萨类型和指定列获取对应的数据列,size_range获取对应披萨类型表的尺寸列。
  4. 通过MIN(ABS(weight-weight_range))找到与当前重量最接近的数值,再用MATCH+INDEX返回对应的尺寸。

如果原WorkingSize工作表ColR的公式逻辑有差异,只需调整LET内部的计算逻辑,保持BYROW的数组框架即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 03:15:23