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

如何基于相邻单元格支付状态对Excel行内奇数列数值求和?

Excel公式修正:按相邻偶数列支付状态求和奇数列数值

问题场景

数据集从A3开始,奇数列(A、C、E…)存储数值,偶数列(B、D、F…)对应支付状态(PAID/NOTPAID),需要统计对应状态下的数值总和。

原公式问题

你之前的SUMPRODUCT公式存在两处逻辑错误:

  1. 求和范围A3:S3包含了状态列(偶数列)的文本/空值,会导致计算异常
  2. 未将“偶数列状态”与“左侧奇数列数值”做精准对应

修正后的公式

统计"PAID"状态对应数值(单元格T3)

=SUMPRODUCT((MOD(COLUMN(B3:R3),2)=0)*(B3:R3="PAID")*A3:Q3)

统计"NOTPAID"状态对应数值(单元格U3)

=SUMPRODUCT((MOD(COLUMN(B3:R3),2)=0)*(B3:R3="NOTPAID")*A3:Q3)

公式解释

  • MOD(COLUMN(B3:R3),2)=0:筛选出所有偶数列的状态单元格(B、D…R)
  • B3:R3="PAID"/B3:R3="NOTPAID":匹配目标支付状态
  • A3:Q3:对应每个状态单元格左侧的奇数列数值,仅当前面两个条件同时满足时,该数值才会被计入求和

替代方案(更直观的列索引匹配)

如果觉得MOD判断列奇偶不够直观,可以用SEQUENCE直接指定对应列:

PAID求和

=SUMPRODUCT((INDEX(B3:S3,0,SEQUENCE(9,1,2,2))="PAID")*INDEX(A3:S3,0,SEQUENCE(9,1,1,2)))

NOTPAID求和

=SUMPRODUCT((INDEX(B3:S3,0,SEQUENCE(9,1,2,2))="NOTPAID")*INDEX(A3:S3,0,SEQUENCE(9,1,1,2)))

解释:SEQUENCE(9,1,2,2)生成2、4…18的列索引(对应偶数列状态),SEQUENCE(9,1,1,2)生成1、3…17的列索引(对应奇数列数值),精准匹配状态与数值列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 12:50:12