Google 工作表:提取命名范围的一列

Google Sheets: extract one column of a named range

更新

我最初的问题是关于取命名范围的单个列的平均值。但经过深思熟虑,问题概括为“如何从命名范围中提取单个列?”

原题

我正在使用命名范围从大型数据集中提取两列。假设 MyRange 从一个更大的数据集中定义了三行两列:

 ... |G   |H   | ...
+----|----|----|
| ...          |
|2000|15.1|  10|
|2001|15.2|  23|
|2002|15.3|  30|
| ...          |

使用 MyRange,我如何取(仅)第 H 列的平均值?
我尝试了各种方法,例如 AVERAGE(MyRange:H)AVERAGE(INDEX(MyRange 1)),但还没有找到正确的语法。
(在上面的例子中,结果应该是21。)

您可以使用查询:

=Query(ArrayFormula(MyRange), "select avg(H) label avg(H) ''") 

作为替代方案。

为什么不直接从第 H 列的 3 行创建一个新的命名范围,例如MyRangeH?
然后,使用:

=AVERAGE(MyRangeH) 

我只是偶然发现了一种更简单的方法,使用 FILTER():

=AVERAGE(FILTER(MyRange, {FALSE, TRUE}))

之所以有效,是因为 FILTER(MyRange, {FALSE, TRUE}) 提取(仅)第二列,然后传递给 AVERAGE()

或者有索引的可靠方法:

=average(index(NamedRange1,0,2))

(为行指定 0 表示使用整列)

关注现在更新的问题:

My original question was about taking the average of a single column of a named range. But upon reflection, the question generalizes to "how do I extract a single column from a named range?"

也可以使用:

=AVERAGE(OFFSET(MyRange,0,2))

关于OFFSET