从上面的单元格中获取价值

Ste*_*ven 50 reference relative-path google-sheets

Google Spreadsheets是否有可能达到上面单元格的价值?

含义:在一个单元格中,A2我想显示上面单元格中的值,即A1.不是因为它是那个坐标,而是因为它是上面的单元格.我这样做只需将值设置为等于上面的单元格:

在此输入图像描述

如果我在这两者之间创建一个新行,我得到这个:

在此输入图像描述

我们知道,值没有变化,因为引用不是这样的相对值.我怎样才能使它相对于细胞,所以我总是选择上面的细胞来改变什么?我希望结果如下:

在此输入图像描述

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

小智 108

您可以这样解决:

=INDIRECT(ADDRESS(ROW()-1,COLUMN()))
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

最后,INDIRECT()允许您以字符串形式传递单元格引用,并将其作为公式处理.

Google Spreadsheets会在您输入时为您提供帮助提示,因此您在键入上述公式时应获得每个功能的完整说明.

  • @SebastianThomas `=SUM(A1:INDIRECT(ADDRESS(ROW()-1,COLUMN())))` 对我有用。 (4认同)
  • =间接(地址(行()-1;列())) (4认同)
  • 有谁知道如何获得所有以前的细胞? (2认同)
  • 这个答案改变了我的生活。谢谢你。 (2认同)

小智 14

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

=INDIRECT("A" & ROW()-1)
Run Code Online (Sandbox Code Playgroud)

如果您在B列中返回值但是检查A列中的上一行,这会派上用场.


小智 6

对于 VisiCal 老计时器来说,最短且更容易的是具有相对值\xe2\x80\xa6 的旧 RC 语法

\n
=INDIRECT("R[-1]C[0]"; FALSE)\n
Run Code Online (Sandbox Code Playgroud)\n

非常直观、易于记忆和修改的代码模板,而且非常简短。

\n

问候,安托万

\n