从上面的单元中获取价值


72

是否可以在Google Spreadsheets中达到上方的单元格的值?

含义:在一个单元格中,A2我想显示上方单元格中的值A1。不是因为它是该坐标,而是因为它是上方的单元格。我可以通过简单地将值设置为等于上面的单元格来做到这一点:

在此处输入图片说明

如果在这两者之间创建新行,则会得到以下信息:

在此处输入图片说明

众所周知,值没有变化,因为引用不是以这种方式相对的。如何使它相对于单元格,所以我总是在nomatter上方选择单元格,这有什么变化?我希望结果是这样的:

在此处输入图片说明

当然,相对一词是错误的,但我希望你能理解我的意思。我俩想要通常的相对行为(以便我可以移动单元格本身,并且它的引用将适合新的列和行),以及引用不指向特定固定坐标而是指向路径的特定路径的行为。细胞本身。

Answers:


144

您可以这样解决:

=INDIRECT(ADDRESS(ROW()-1,COLUMN()))

COLUMN() 返回对当前列的数字引用

ROW() 返回对当前行的数字引用。

在此处的示例中,从行中减去1将得到上一行。该数学公式可以应用于ROW()和和或COLUMN(),但在回答您的问题时,此公式将引用上面的单元格。

然后,我们ADDRESS()接受一个数字行和列引用,并将单元格引用作为字符串返回。

最后INDIRECT(),您可以将单元格引用作为字符串传递,并将其作为公式进行处理。

Google Spreadsheets在您键入时会为您提供帮助提示,因此在键入上述公式时,您应该对每个函数都有完整的解释。


2
有人知道如何获取所有先前的细胞吗?
塞巴斯蒂安·托马斯

2
这个答案改变了我的生活。谢谢。
dancow

1
@SebastianThomas,您可以使用JOIN并放置宝贵细胞的引用。先前的单元格引用可能与此答案中描述的一样。繁荣,最终的灵活性,随之而来的是复杂性。
Mohammed Joraid

1
@SebastianThomas=SUM(A1:INDIRECT(ADDRESS(ROW()-1,COLUMN())))为我工作。
Jarett Millard '18

4
= INDIRECT(ADDRESS(ROW()-1; COLUMN()))
xpeiro

20

对于偶然遇到此问题的任何人,您也可以通过执行以下操作来指定列:

=INDIRECT("A" & ROW()-1)

如果您要在B列中返回值,但要对照A列中的上一行,这将很方便。


1
这正是我需要获得当前行和上一行之间的差异的内容:= H:H-INDIRECT(“ H”&(ROW()-1))。谢谢!
nocdib
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.