如何计算Google Sheets某一行中相邻数字的差值之和?
Google Sheets 行内相邻数字差值求和方案
核心逻辑
你给出的示例(37-35)+(39-37)+(38-39)展开后中间项完全抵消,带符号求和的结果等价于最后一个非空数字减去第一个非空数字。如果需要计算绝对值的差值总和,需用数组公式处理。
公式实现
1. 带符号相邻差值求和
公式自动识别行内首尾非空数字,直接计算差值:
=IFERROR(LOOKUP(1,INDEX(1/(1:1<>""),0),1:1)-INDEX(1:1,MATCH(TRUE,1:1<>"",0)),0)
LOOKUP(...):获取行1最后一个非空值(和你找到的公式逻辑匹配)INDEX(1:1,MATCH(...)):获取行1第一个非空值IFERROR(...,0):处理无数据场景,返回0
2. 绝对值相邻差值求和
如果需要所有相邻差值的绝对值之和,使用以下数组公式(Google Sheets中直接回车即可生效):
=SUM(ARRAYFORMULA(ABS(QUERY(TRANSPOSE(1:1),"select Col1 where Col1 is not null offset 1")-QUERY(TRANSPOSE(1:1),"select Col1 where Col1 is not null limit "&COUNTA(1:1)-1))))
QUERY(TRANSPOSE(...)):提取行内所有非空数字并转为列格式offset 1截取除第一个外的所有值,limit ...截取除最后一个外的所有值- 两组值相减后取绝对值,最终求和
示例验证
针对行1数据35 | 37 | 39 | 38:
- 带符号求和结果:
38-35=3,与预期一致 - 绝对值求和结果:
|37-35|+|39-37|+|38-39|=5
内容的提问来源于stack exchange,提问作者EagleEye
相关产品推荐
相关产品推荐

