如何在Google Sheets中计算列空单元格对应左侧首个非空值的总和
实现方法
可以直接用数组公式结合LOOKUP的技巧实现,无需新建列,还能自动适配新增的日期列:
核心公式(一次性生成所有Deleted值)
在Deleted行的第一个日期单元格(例如B8,对应Date1)输入以下公式:
=BYCOL(B2:7, LAMBDA(col, LET( col_num, COLUMN(col), left_range, IF(col_num=COLUMN(B2), "", OFFSET(col, 0, 1-col_num+COLUMN(B2), , col_num-COLUMN(B2))), IF( col_num=COLUMN(B2), 0, SUM(ARRAYFORMULA(IF(ISBLANK(col), LOOKUP(2, 1/(left_range<>""), left_range), 0))) ) ) ))
公式说明
BYCOL(B2:7, LAMBDA(col, ...)):遍历所有日期列(从B2到第7行的所有列,根据你的实际数据行数调整7),对每一列col执行后续逻辑。LEFT_RANGE:动态生成当前列左侧的所有数据列(从第一日期列到当前列的前一列),自动适配新增列。LOOKUP(2, 1/(left_range<>""), left_range):获取每行左侧最后一个非空值(实现你需要的“行内左侧首个非空值”逻辑)。SUM(ARRAYFORMULA(...)):筛选出当前列中空单元格对应的行,将这些行的左侧非空值求和,得到Deleted值。
单列公式(针对单个日期列)
如果需要单独给某一列写公式(例如Date4对应的E8单元格),可以用:
=SUM(ARRAYFORMULA(IF(ISBLANK(E2:E7), LOOKUP(2, 1/(B2:D7<>""), B2:D7), 0)))
注意事项
- 把公式中的
B2:7、E2:E7、B2:D7替换成你实际的数据范围,行数根据你的Item数量调整。 - 新增日期列后,
BYCOL会自动包含新列,无需修改公式。
内容的提问来源于stack exchange,提问作者gab
相关产品推荐
相关产品推荐

