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

Google Sheets中如何从最后非空单元格向左依次减至首个单元格?

解决方案

针对你需要从动态更新的C列及右侧列中,取最右侧非空值并依次减去左侧所有单元格值的需求,可以用以下公式实现:

单行列公式(以第2行为例)

在目标单元格(如H2)输入:

=LET(
    last_pos, XMATCH(TRUE, C2:2<>"", 0, -1),
    last_val, INDEX(C2:2, last_pos),
    sum_left, SUM(C2:OFFSET(C2, 0, last_pos - 2)),
    last_val - sum_left
)

批量多行公式(自动处理所有行)

如果需要批量处理多行数据(如从第2行到第100行),可以用BYROW函数实现自动计算:

=BYROW(C2:C100, LAMBDA(row, 
    IF(COUNTA(row) = 0, "",
        LET(
            last_pos, XMATCH(TRUE, row<>"", 0, -1),
            last_val, INDEX(row, last_pos),
            sum_left, SUM(INDEX(row, 1):INDEX(row, last_pos - 1)),
            last_val - sum_left
        )
    )
))

公式说明

  • XMATCH(TRUE, row<>"", 0, -1):从右往左查找当前行中第一个非空单元格的位置,确保能动态适配新增的列
  • INDEX(row, last_pos):提取最右侧的非空单元格值
  • SUM(INDEX(row,1):INDEX(row, last_pos-1)):计算从C列开始到最右侧非空单元格前一列的所有数值总和
  • 最终通过last_val - sum_left得到“最右值依次减去左侧所有值”的结果(等价于最右值减去左侧所有值的总和)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:00:54