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

Google Sheets单QUERY公式实现SKU分组多维度数据提取需求

Google Sheets 按SKU分组聚合解决方案

这个需求完全可行,虽然单独用QUERY函数无法覆盖所有要求,但结合Google Sheets的其他函数可以实现完整功能。以下是具体公式和说明:

完整公式

假设数据范围为A2:E(表头在A1:E1),公式如下:

=ARRAYFORMULA(
  LET(
    grouped_data, QUERY(A2:E, "SELECT A, SUM(B), MIN(C), MAX(C) WHERE A IS NOT NULL GROUP BY A LABEL SUM(B)'Incoming PO总和', MIN(C)'首次采购日期', MAX(C)'最新采购日期'"),
    sku_list, INDEX(grouped_data,,1),
    latest_purchase_dates, INDEX(grouped_data,,4),
    latest_costs, VLOOKUP(sku_list&latest_purchase_dates, {A2:A&C2:C, D2:D}, 2, 0),
    supplier_prefixes, BYROW(sku_list, LAMBDA(sku, TEXTJOIN(", ", TRUE, UNIQUE(LEFT(FILTER(E2:E, A2:A=sku), 3))))),
    HSTACK(grouped_data, latest_costs, supplier_prefixes)
  )
)

公式拆解说明

  • grouped_data:通过QUERY完成基础分组聚合,计算每个SKU的:
    • SUM(B):Incoming PO总和
    • MIN(C):首次采购日期
    • MAX(C):最新采购日期(用于后续匹配最新成本)
  • latest_costs:通过VLOOKUP匹配每个SKU最新采购日期对应的成本,避免直接取MAX(D)导致的成本与日期不匹配问题
  • supplier_prefixes:遍历每个SKU,过滤出对应供应商,提取名称前3个字符,去重后用逗号分隔合并(如果不需要去重,可删除UNIQUE函数)
  • HSTACK:将所有结果横向合并,输出完整的分组数据

注意事项

如果需要将供应商前缀横向转置为多列(而非合并成字符串),可将supplier_prefixes部分修改为:

supplier_prefixes, BYROW(sku_list, LAMBDA(sku, TRANSPOSE(UNIQUE(LEFT(FILTER(E2:E, A2:A=sku), 3)))))

但这种方式会导致结果列数不固定,需根据实际需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:48:28