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

如何在Google Sheets递归Lambda生成的笛卡尔积数组中添加查找列

Google Sheets 递归Lambda笛卡尔积动态添加匹配列方案

需求说明

基于原递归Lambda生成的Product、Country、Date笛卡尔积数组,无需辅助列,直接在数组末尾动态添加Sales和Receipts两列:

  • Sales列:从独立的Sales表中,匹配当前行的Product、Country、Date字段,求和对应销售额
  • Receipts列:从独立的Receipts表中,匹配相同的三个字段,求和对应收款额

需将查找逻辑整合进原笛卡尔积公式,掌握这种动态扩展数组列的设计模式。

整合后的完整公式

=let( 
      table, A2:C, 
      blank, iferror(1/0), 
      first_, lambda(array, tocol(choosecols(array, 1), true)), 
      rest_, lambda(n, choosecols(table, sequence(1, columns(table) - n, n + 1))), 
      wrap_, lambda(array, wrapCount, wraprows(tocol(array, 1), wrapCount)), 

      cartesian_, lambda(a, b, wrap_( 
        byrow(a, lambda(row, 
          reduce(blank, sequence(rows(b)), lambda(acc, i, 
            { acc, row, chooserows(b, i) } 
          ) ) 
        ) ), 
        columns(a) + columns(b) 
      ) ), 

      iterate_, lambda( 
        self, a, b, if(iserror(b), a, 
          self(self, cartesian_(a, first_(b)), rest_(columns(a) + 1)) 
        ) 
      ), 

      // 生成基础笛卡尔积数组
      cartesian_result, iterate_(iterate_, first_(table), rest_(1)),
      // 对每一行扩展Sales和Receipts列
      byrow(cartesian_result, lambda(row,
        let(
          prod, index(row, 1),
          country, index(row, 2),
          date_val, index(row, 3),
          // 多条件求和Sales
          sales_sum, sumifs(Sales!D:D, Sales!A:A, prod, Sales!B:B, country, Sales!C:C, date_val),
          // 多条件求和Receipts
          receipts_sum, sumifs(Receipts!D:D, Receipts!A:A, prod, Receipts!B:B, country, Receipts!C:C, date_val),
          // 拼接原行与新计算列
          {row, sales_sum, receipts_sum}
        )
      ))
    )

动态扩展列的设计模式解析

这种模式的核心是先生成基础数据集,再通过BYROW逐行计算扩展列,步骤如下:

  1. 保留原有的核心逻辑(此处是递归生成笛卡尔积),将结果存入一个变量(如cartesian_result)
  2. 使用BYROW遍历基础数据集的每一行:
    • 从当前行提取需要用于匹配的字段(如Product、Country、Date)
    • 调用合适的查找/求和函数(这里用SUMIFS适配多条件求和场景,若需单值匹配可改用XLOOKUP或INDEX/MATCH组合)
    • 将原行数据与新计算的列值拼接成新的行数组
  3. 最终输出包含扩展列的完整数组

如果需要添加更多列,只需在BYROW的拼接部分继续追加新的计算逻辑即可,无需修改原有的基础数据集生成逻辑,扩展性极强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 01:48:13