如何以编程方式获取单元格引用

时间:2019-05-09 17:58:05

标签: excel

我想以编程方式使用特定范围引用求和(接下来的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))

2 个答案:

答案 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))