假设我有这个命名范围,而不是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)
现在有专门的函数称为CHOOSEROWS和CHOOSECOLS为此。它们适用于任何数组,例如另一个函数的输出,并且可以选择多行或多列。
要选择第一行:
=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)
替换CHOOSECOLS为CHOOSEROWS选择列。
部分答案:(仍然对更好的开放)
第一排
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()不能很好地消化它。