如何在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()))