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
更新
我最初的问题是关于取命名范围的单个列的平均值。但经过深思熟虑,问题概括为“如何从命名范围中提取单个列?”
原题
我正在使用命名范围从大型数据集中提取两列。假设 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