我想以编程方式使用特定范围引用求和(接下来的25个单元格),为此我正在使用CREATE UNIQUE INDEX idx_mgr ON (DECODE(Level_ID,mypackage.get_level_id('Manager'),NULL);
,这需要一个单元格引用。但是,大多数查找函数都返回索引或值,而不是单元格引用,因此我必须使用OFFSET()
。
我发现这样做只是为了以编程方式找到单元格的单元格引用,这有点荒谬:
INDEX(A:A,MATCH(C2,A:A,0),1)
是否有更好的方法以编程方式获取单元格引用?
整个过程如下:
= SUM(OFFSET(INDEX(A:A,MATCH(C2,A:A,0),1),0,1,25,1))
答案 0 :(得分:0)
您将要利用多个Match()
及其偏移量...请参见:
=SUM(OFFSET(A1,MATCH(C2,A:A,0)-1,0):OFFSET(A1,MATCH(C2,A:A,0)+24,0))
细分:
范围内第一个要累加到第1列(A)的单元格,必须从中减去1,因此您使用的是实际匹配参考:
OFFSET(A1,MATCH(C2,A:A,0)-1,0)
您要在第1列(A)中求和的最终单元格,必须从所需偏移量(25)中减去1,类似于第一个单元格:
OFFSET(A1,MATCH(C2,A:A,0)+24,0)
然后可以在偏移量之间求和
答案 1 :(得分:0)
这对您来说似乎很荒谬,但最好的非易失性选项是一对INDEX / MATCH函数,它们定义B列中总和范围的起点和终点,并完全抵消OFFSET。
=sum(INDEX(B:B, MATCH(C2, A:A, 0)):INDEX(B:B, MATCH(C2, A:A, 0)+24))