Google表格查询功能:如何对具有非常数的列进行算术运算,即不除以常数而是除以另一个单元格?

问题描述 投票:1回答:2

只要我使用固定常数,我就知道如何使用查询函数对列进行算术运算。但是,如果我尝试使用单元格引用而不是常量来执行相同操作,则会收到错误消息。

我已经尝试将单元格命名为一个范围,并引用该名称,希望它的作用就像一个常量,但是我仍然会出错。必须有一种方法可以做到这一点。以下是一些可行的示例:

[=QUERY(FebMarket,"SELECT (C/5)") //将C列除以5

=QUERY(FebMarket,"SELECT AVG(C)") //这使我得到列C的平均值

=QUERY(FebMarket,"SELECT AVG(C) LABEL AVG(C) ''")//没有标题的col C的平均值

但是,如果我执行以下任何操作,则会出现错误:

=QUERY(FebMarket,"SELECT C/(AVG(C) LABEL AVG(C) '')")

=QUERY(FebMarket,"SELECT C/(AVG(C))")

=QUERY(FebMarket,"SELECT C/AVG(C)")

=QUERY(FebMarket,"SELECT C/avgC") //其中“ avgC”是赋予单元格的命名范围,在该单元格中我分别计算了列C的平均值

google-sheets average google-sheets-formula google-sheets-query arithmetic-expressions
2个回答
3
投票
=QUERY(QUERY(C1:C,
 "select C / "&AVERAGE(C1:C), 0), 
 "select Col1 
  where Col1 is not null
  label Col1 '' ", 0)


1
投票

据我所知,您在SQL的所有方言中都得到相同的结果。您可以在单个查询中执行以下两项操作之一:

Get the result of an aggregate (like AVGE) over the entire dataset

例如

=QUERY(FebMarket,"SELECT AVG(C)") 

在这种情况下,您只能在查询中选择聚合

Get an aggregate for each one of a set of groups defined by one or more grouping variables.

例如

=QUERY(FebMarket,"SELECT GroupVariable,AVG(C) group by groupVariable") 

在这种情况下,您可以在查询中选择分组变量和聚合。

这些都不提供帮助。

如果您用谷歌搜索“ SQL将列除以平均值”之类的内容,则可能会使用子查询获得答案,但在编写本文时,这些内容在Google表格中不可用。

因此(尽管您可以通过其他方式缩短此时间)使用查询的解决方案必须是

=ArrayFormula(query(A:A,"select A where A is not null")/query(A:A,"select avg(A) label avg(A) ''"))
© www.soinside.com 2019 - 2024. All rights reserved.