Google Spreadsheets:如何从一个范围获得第一个(第N个)行/列?(内置功能)

Ond*_*žka 17 google-sheets

假设我有这个命名范围,而不是A1.

      idz01  idz04  ida02
foo     a      1      b
bar     c      3      8
baz     8      2      g
Run Code Online (Sandbox Code Playgroud)

现在我该如何获得第一行?和第N行?第N列怎么样?作为范围,使用内置功能.

编辑:第N行:=OFFSET(ObjednavkyData, N,0, 1) 最后一行:

=OFFSET(ObjednavkyData, 
    MAX(ARRAYFORMULA(ROW(ObjednavkyData)))-ROW(ObjednavkyData), 0, 1
 )
Run Code Online (Sandbox Code Playgroud)

deP*_*kin 21

只需使用该INDEX功能:

=INDEX(NamedRange1,NRow,NColumn)
Run Code Online (Sandbox Code Playgroud)

如果您想要最后一行和列,您可以使用:

=INDEX(NamedRange1,ROWS(NamedRange1),COLUMNS(NamedRange1))
Run Code Online (Sandbox Code Playgroud)
  • INDEX比替代方案更有效OFFSET,INDIRECT而且是不稳定的.

例子:

=INDEX(ObjednavkyData,3,2) //This will return "c".
=INDEX(ObjednavkyData,ROWS(ObjednavkyData),COLUMNS(ObjednavkyData2)) //This will return "g".
Run Code Online (Sandbox Code Playgroud)

加成:

如果要获取整行,可以省略INDEX函数的[column]部分.如果您需要整列,请省略[row]部分.

=INDEX(ObjednavkyData,3) //This will return row 3: "bar     c      3      8".
Run Code Online (Sandbox Code Playgroud)

  • 我相信他正试图拉动整个柱子/行,而不仅仅是一个细胞.他希望将它们与索引一起使用[发布] [http://stackoverflow.com/questions/30809066/google-spreadsheets-function-to-get-a-cell-from-a-range-by-row-and -COL名) (6认同)

Alt*_*y_H 5

现在有专门的函数称为CHOOSEROWSCHOOSECOLS为此。它们适用于任何数组,例如另一个函数的输出,并且可以选择多行或多列。

要选择第一行:

=CHOOSEROWS(ObjednavkyData, 1)
Run Code Online (Sandbox Code Playgroud)

要选择最后一行:

=CHOOSEROWS(ObjednavkyData, -1)
Run Code Online (Sandbox Code Playgroud)

选择第 N 行:

=CHOOSEROWS(ObjednavkyData, N)
Run Code Online (Sandbox Code Playgroud)

要选择前三行:

=CHOOSEROWS(ObjednavkyData, 1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

替换CHOOSECOLSCHOOSEROWS选择列。


Ond*_*žka 4

部分答案:(仍然对更好的开放)

第一排

OFFSET(Data, 0 , 0, 1)
Run Code Online (Sandbox Code Playgroud)

第一栏:

您只需调用该范围内的一些函数即可,它们占用第一列。
或者,如果需要的话:

OFFSET(Data, 0, 0, MAX(ARRAYFORMULA(ROW(Data))), 1)
Run Code Online (Sandbox Code Playgroud)

第N行:
这里的关键是OFFSET()只填充右下。所以你只需要通过它的参数来裁剪这些方向。

OFFSET(Data, N, 0, 1);
Run Code Online (Sandbox Code Playgroud)

还可以通过将第一行输入到ARRAYFORMULA()每列(单元格)并使用 获取最后一行的单元格来实现INDEX(COLUMN(),ROW() + N)

第 N 列:

与上面类似,只需获取行数即可。

OFFSET(Data, 0, N, ROWS(Data), 1);
Run Code Online (Sandbox Code Playgroud)

我正在玩,TRANSPOSE()但似乎OFFSET()不能很好地消化它。