在Google Spreadsheets中,是否可以访问上面的单元格的值?
意思是:在一个单元格A2
中,我想显示上面单元格A1
的值。不是因为它是那个坐标,而是因为它是上面的单元格。我通过将值设置为上面的单元格来实现此目的:
词语相对的在这种情况下是错误的,但我希望你能理解我的意思。我同时想要通常的相对行为(这样我可以移动单元格本身,其引用将适应新的列和行),以及引用不指向特定的固定坐标,而是指向从单元格本身出发的特定路径的行为。
在Google Spreadsheets中,是否可以访问上面的单元格的值?
意思是:在一个单元格A2
中,我想显示上面单元格A1
的值。不是因为它是那个坐标,而是因为它是上面的单元格。我通过将值设置为上面的单元格来实现此目的:
词语相对的在这种情况下是错误的,但我希望你能理解我的意思。我同时想要通常的相对行为(这样我可以移动单元格本身,其引用将适应新的列和行),以及引用不指向特定的固定坐标,而是指向从单元格本身出发的特定路径的行为。
=INDIRECT(ADDRESS(ROW()-1;COLUMN()))
COLUMN()
返回当前列的数字引用。
ROW()
返回当前行的数字引用。
在这个示例中,从行中减去1可以得到上一行。可以将数学运算应用于ROW()
和/或COLUMN()
,但是在回答您的问题时,此公式将引用上面的单元格。
然后我们有ADDRESS()
,它接受一个数字行和列引用,并将单元格引用作为字符串返回。
最后,INDIRECT()
允许您将单元格引用作为字符串传递,并将其处理为公式。
Google电子表格会在您输入时提供帮助提示,因此在键入上述公式时,您应该得到每个函数的完整说明。
对于任何偶然看到这个问题的人,你也可以通过像这样指定列:
=INDIRECT("A" & ROW()-1)
如果你在返回B列的值,但是需要与A列的上一行进行比较,那么这个功能会非常有用。
最短、也是对VisiCal老手来说更容易的方法是使用旧版RC语法和相对值…
=INDIRECT("R[-1]C[0]"; FALSE)
@SebastianThomas
=SUM(A1:INDIRECT(ADDRESS(ROW()-1,COLUMN())))`对我有效。 - Jarett Millard