发布网友 发布时间:2022-04-23 05:35
共3个回答
热心网友 时间:2023-08-30 04:46
按字面意思可以用OFFSET函数
总算看到原题全部内容:
在单元格B1写入"=Sum(C1:G1)",然后在单元格A1写入一个公式求行1里从最后一个带有数值的单元格起往前的若干个单元格里的数值之和。假设B1=3,且行1里最后一个带有数值的单元格为AA1,则在单元格A1的公式是求Y1:AA1的和;假设B1=4,且行1里最后一个带有数值的单元格为AF1,则在单元格A1的公式是求AC1:AF1的和;假设B1=6,且行1里最后一个带有数值的单元格为AX1,则在单元格A1的公式是求AS1:AX1的和;...... 另外,将单元格A1里这个公式向下拉时,行号要自动变为2、3、4、......
一、达到目的的公式的写法
在A1单元格写入公式
=SUM(OFFSET(INDEX(1:1,LOOKUP(9E+307,1:1,COLUMN(1:1))),,,,-B1))
下拉填充公式
二、公式分解说明
第一步计算
LOOKUP(9E+307,1:1,COLUMN(1:1))
这一步是为了找出第一行数据中最后一个不为空的数字所在列数
第二步计算
INDEX(1:1,第某列)
得出该数据在第一行的具体单元格位置
第三步计算
OFFSET(某单元格位置,,,包含的列数) 因为这个列数是往左数的,所以是负值
即OFFSET(某单元格位置,,,-B1)
这样就得出要计算的单元格区域了
第四步计算
=SUM(某单元格区域)
最后进行求和,得出所要的数据
热心网友 时间:2023-08-30 04:47
在A1输入公式=IF(OR(B1="",COUNT(C1:IV1)=0),"",SUM(OFFSET(INDIRECT(ADDRESS(ROW(A1),MATCH(9E+307,C1:IV1)+2,4)),,-(B1-1),,B1)))公式向下复制
热心网友 时间:2023-08-30 04:47
=SUM(OFFSET(C3:IV3,0,COUNT(C3:IV3)-B3,1,COUNT(C3:IV3)))
这个公式的前提是:最后一个数前面不能有空的单元格