Google sheets Google sheets查询功能:如何对非常量列进行算术运算,即不除以常量而是除以另一个单元格?
只要使用固定常量,我就知道如何使用查询函数对列进行算术运算。但是,如果我尝试使用单元格引用而不是常量来执行相同的操作,我会得到一个错误 我尝试将单元格设置为一个命名范围,并引用该名称,希望它能像常量一样工作,但仍然会出现错误。一定有办法做到这一点。以下是一些有效的例子:Google sheets Google sheets查询功能:如何对非常量列进行算术运算,即不除以常量而是除以另一个单元格?,google-sheets,average,google-sheets-formula,google-sheets-query,arithmetic-expressions,Google Sheets,Average,Google Sheets Formula,Google Sheets Query,Arithmetic Expressions,只要使用固定常量,我就知道如何使用查询函数对列进行算术运算。但是,如果我尝试使用单元格引用而不是常量来执行相同的操作,我会得到一个错误 我尝试将单元格设置为一个命名范围,并引用该名称,希望它能像常量一样工作,但仍然会出现错误。一定有办法做到这一点。以下是一些有效的例子: =查询(FebMarket,“选择(C/5)”)//这将C列除以5 =QUERY(FebMarket,“SELECT AVG(C)”)//这给出了C列的平均值 =查询(FebMarket,“选择平均值(C)标签平均值(C)””)
=查询(FebMarket,“选择(C/5)”)
//这将C列除以5
=QUERY(FebMarket,“SELECT AVG(C)”)
//这给出了C列的平均值
=查询(FebMarket,“选择平均值(C)标签平均值(C)””)
//不带表头的列C的平均值
但是,如果我执行以下任一操作,则会出现错误:
=查询(FebMarket,“选择C/(平均(C)标签平均(C)”)”)
=查询(FebMarket,“选择C/(平均C))”
=查询(FebMarket,“选择C/AVG(C)”)
=QUERY(FebMarket,“SELECT C/avgC”)
//其中'avgC'是一个命名范围,指定给一个单元格,我分别计算了C列的平均值,据我所知,您在SQL的所有方言中都得到了相同的结果。您可以在一个查询中执行以下两项操作之一:
Get the result of an aggregate (like AVGE) over the entire dataset
e、 g
在这种情况下,您只能在查询中选择聚合
或
e、 g
在这种情况下,您可以在查询中选择分组变量和聚合
这两种方法都没有帮助
如果你在谷歌上搜索类似“SQL除以平均值”的东西,你可能会使用子查询得到答案,但在撰写本文时,这些在谷歌工作表中是不可用的
因此(尽管您可以通过其他方式缩短时间),使用查询的解决方案必须是
=ArrayFormula(query(A:A,"select A where A is not null")/query(A:A,"select avg(A) label avg(A) ''"))
真管用!令人惊叹的非常感谢。我将不得不花时间去弄清楚您使用的一些技术,但非常感谢。实际上,如果您不介意的话,我可以问您0在外部和内部查询中表示什么吗?0表示标题行-以防万一,因为有时候查询无法识别数据集,并且错误地假设有标题行,即使没有NICE-这可能是在Google Sheets查询中最接近的子查询。谢谢!这起作用了。我得花点时间来理解你的技巧。有趣的是,有人提供了一种稍微不同的方法,这种方法同样有效。我对你的方法唯一的问题是它在包含标题的顶部单元格中给了我一个错误。然而,所有的平均值都是正确的。再次感谢。是的,您是对的,标题行将给出一个错误。您可以使用=ArrayFormula(iferror(查询(A:A,“选择A,其中A不为空”)/query(A:A,“选择A,标签A,平均G(A)”),A1)来修复它,但不是很优雅。或者=ArrayFormula(查询(A:A,“选择A,其中A不为空)”),0)/query(A:A,“选择A,标签A,平均G(A)”),并手动将标题放入等。
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")
=ArrayFormula(query(A:A,"select A where A is not null")/query(A:A,"select avg(A) label avg(A) ''"))
=QUERY(QUERY(C1:C,
"select C / "&AVERAGE(C1:C), 0),
"select Col1
where Col1 is not null
label Col1 '' ", 0)