Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets GoogleSheets:提取命名范围的一列 更新_Google Sheets_Google Sheets Formula_Google Sheets Query - Fatal编程技术网

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))