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

如何优化重复调用XLOOKUP的求和公式使其更简洁?

简化重复XLOOKUP求和的几种方案
  • 方案1:SUMPRODUCT + INDEX/MATCH(兼容多数Excel版本)
    把需要引用的行号和对应的正负系数做成两个数组,一次性完成匹配计算,彻底避免重复调用查找函数:

    =SUMPRODUCT(
        {1,1,-1,1,1,-1},
        INDEX(BankStatements!$G$37:$IU$49, MATCH(K$5, BankStatements!$G$5:$IU$5, 0), {1,2,3,10,12,13})
    )
    

    注:{1,2,3,10,12,13}是目标行相对于起始行G37的偏移量(第1行对应G37、第2行G38、第3行G39、第10行G46、第12行G48、第13行G49),{1,1,-1,1,1,-1}是对应行的正负系数,按需调整即可。

  • 方案2:XLOOKUP + 数组运算(Excel 365/2021及以上)
    利用XLOOKUP支持数组返回的特性,直接传入多行数据区域,搭配系数数组一次性求和:

    =SUM(XLOOKUP(K$5, BankStatements!$G$5:$IU$5, BankStatements!$G$37:$IU$49)*{1;1;-1;0;0;0;0;0;0;1;0;1;-1})
    

    注:{1;1;-1;0;0;0;0;0;0;1;0;1;-1}是G37到G49每行对应的系数,不需要参与计算的行填0,XLOOKUP返回对应列的所有行值后,乘以系数再求和即可自动忽略0值。

  • 方案3:LET函数封装(Excel 365/2021及以上,可读性最优)
    用LET把重复使用的查找值、表头区域等定义为变量,后续修改只需调整指定部分,公式结构更清晰:

    =LET(
        lookup_val, K$5,
        header_range, BankStatements!$G$5:$IU$5,
        data_range, BankStatements!$G$37:$IU$49,
        coefficients, {1;1;-1;0;0;0;0;0;0;1;0;1;-1},
        SUM(XLOOKUP(lookup_val, header_range, data_range)*coefficients)
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 12:02:38