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

Office365无GROUPBY时,如何用LET单定义筛选生成唯一产品及汇总值?

解决方案

首先修正原公式中筛选条件的逻辑问题,再添加按prod.去重汇总的步骤,最终公式如下:

=LET(
    a, COUNTIF(G2:G4, B2:B18) + (COUNTBLANK(G2:G4) = ROWS(G2:G4)),
    b, COUNTIF(H2:H4, C2:C18) + (COUNTBLANK(H2:H4) = ROWS(H2:H4)),
    c, FILTER(A2:E18, a*b, ""),
    d, CHOOSECOLS(c, 4, 5),
    u, UNIQUE(CHOOSECOLS(d,1)),
    e, HSTACK(u, SUMIF(CHOOSECOLS(d,1), u, CHOOSECOLS(d,2))),
    e
)

关键修改说明:

  • 修正筛选全空的判断逻辑:原公式中AND(G2:G4="")会返回单个布尔值,无法适配数组运算,改用COUNTBLANK(G2:G4)=ROWS(G2:G4),当筛选区域全为空时,返回与数据行对应的数组结果,确保筛选逻辑正确。
  • 实现按prod.去重汇总:
    1. 用UNIQUE(CHOOSECOLS(d,1))提取筛选后所有唯一的prod.值;
    2. 用SUMIF的数组特性,直接对所有唯一prod.批量求和;
    3. 最后用HSTACK将唯一prod.和汇总后的val.合并成两列结果。

替代版(BYROW写法):

如果偏好更直观的遍历逻辑,也可以用BYROW实现:

=LET(
    a, COUNTIF(G2:G4, B2:B18) + (COUNTBLANK(G2:G4) = ROWS(G2:G4)),
    b, COUNTIF(H2:H4, C2:C18) + (COUNTBLANK(H2:H4) = ROWS(H2:H4)),
    c, FILTER(A2:E18, a*b, ""),
    d, CHOOSECOLS(c, 4, 5),
    u, UNIQUE(CHOOSECOLS(d,1)),
    e, HSTACK(u, BYROW(u, LAMBDA(x, SUM(FILTER(CHOOSECOLS(d,2), CHOOSECOLS(d,1)=x))))),
    e
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 08:39:54