Google sheets GoogleSheets:提取命名范围的一列 更新
我最初的问题是对指定范围内的单个列求平均值。但经过思考,问题概括为“如何从命名范围中提取单个列?” 原始问题 我使用一个命名范围从一个大数据集中提取两列。假设Google sheets GoogleSheets:提取命名范围的一列 更新,google-sheets,google-sheets-formula,google-sheets-query,Google Sheets,Google Sheets Formula,Google Sheets Query,我最初的问题是对指定范围内的单个列求平均值。但经过思考,问题概括为“如何从命名范围中提取单个列?” 原始问题 我使用一个命名范围从一个大数据集中提取两列。假设MyRange从较大的数据集中定义了三行两列: ... |G |H | ... +----|----|----| | ... | |2000|15.1| 10| |2001|15.2| 23| |2002|15.3| 30| | ... | 使用MyRange,如何计算(仅)列H的平均值
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()
:
它之所以有效,是因为
FILTER(MyRange,{FALSE,TRUE})
只提取(仅)第二列,然后将第二列传递给AVERAGE()
,或者有一种尝试过的可靠的索引方法:
=average(index(NamedRange1,0,2))
(为行指定0意味着使用整个列)以下是现在更新的问题: 我最初的问题是对指定范围内的单个列求平均值。但经过思考,问题概括为“如何从命名范围中提取单个列?” 还可以使用:
=AVERAGE(OFFSET(MyRange,0,2))
关于有趣的解决方案:)我将命名范围与两列一起使用,因为我需要第一列用于其他计算——它们在逻辑上是绑定在一起的。如果我创建一个单独的命名范围,它们可能会失去同步。我明白了。你可以使用这个查询。但我必须承认。我更喜欢你的解决方案。啊!这就是我要找的。我不知道行字段中0的意义。
=AVERAGE(OFFSET(MyRange,0,2))