如何在excel公式中使用string和当前行号来表示单元格id?

假设我想计算一个列的总和,然后减去另一列的总和, 只使用给定行的值到当前行(该公式所在的行)。

所以,在“非正式的自定义语言”中,我需要这样的东西:

Supose我在C5=(sum(A1:“A”+ ROW()) – sum(B1:“B”+ ROW()))

我怎样才能在Excel中写出正确的expression式呢?

您可以尝试使用INDIRECT ,它接受对范围的string引用并返回范围本身:

 =SUM(INDIRECT("A1:A"&ROW()))-SUM(INDIRECT("B1:B"&ROW())) 

在这里,我们从"A1:A"的“存根”开始。 然后我们用ROW() (在这个例子中是5 ROW()得到当前行,并将它与我们的存根连接起来,给我们提供INDIRECT("A1:A5") 。 由于INDIRECT将返回由它的参数引用的范围(这里是"A1:A5" ),所以我们可以用SUM公式来包装它以得到结果(与SUM(A1:A5) )。 然后,我们为B列做同样的事情。

我想你可能正在倒退。 您需要将调用中的第一个单元格引用定位到第一行,但让第二个单元格引用与该行一起更改。 尝试在单元格C1中

 =SUM(A$1:A1) - SUM(B$1:B1) 

现在当你在列上复制它时,它变成:

C2: = SUM(A $ 1:A2) – SUM(B $ 1:B2)
C3: = SUM(A $ 1:A3) – SUM(B $ 1:B3)
C4: = SUM(A $ 1:A4) – SUM(B $ 1:B4)
C5: = SUM(A $ 1:A5) – SUM(B $ 1:B5)

 C5:= (SUM))-(SUM)) 

尝试这个:

 C5:= (SUM(INDIRECT("A1:A" & ROW()))-(SUM(INDIRECT("B1:B" & ROW()))