Google表格查询:添加算术序列创建#N / A

时间:2017-11-28 17:17:45

标签: google-sheets

我有这个:

=query(Data, "SELECT A, B, sum(E), avg(D), sum(D), sum(F), sum(D)-sum(F) GROUP BY B, A ORDER BY A asc LABEL sum(E) 'Total Daily QTY', sum(D) 'Gross Daily Sales', sum(F) 'Daily Promotion Discounts', sum(D)-sum(F) 'Daily Gross Profit'")

我需要使用以下格式向查询添加一列:

(sum(D)-sum(F))/sum(E)

这给了我这个:

=query(Data, "SELECT A, B, sum(E), avg(D), sum(D), sum(F), sum(D)-sum(F), (sum(D)-sum(F))/sum(E) GROUP BY B, A ORDER BY A asc LABEL sum(E) 'Total Daily QTY', sum(D) 'Gross Daily Sales', sum(F) 'Daily Promotion Discounts', sum(D)-sum(F) 'Daily Gross Profit'")

然而,结果是#N / A.我不确定它是否会创建一种循环引用并导致它破坏?我试着把它分成一个arraryformula,但也无法让它正常工作。

有人可以告诉我如何正确添加列吗?谢谢!

1 个答案:

答案 0 :(得分:3)

看起来像Sheets bug。该查询引发了一个无法解释的" #N / A"表达式sum(D)-sum(F)出现两次时出错:本身和另一个公式的一部分。一个简化的例子:

=query(A:F, "select sum(D)-sum(F), (sum(D)-sum(F))/sum(E)")

抛出错误,但=query(A:F, "select sum(C)-sum(F), (sum(D)-sum(F))/sum(E)")(我更改了第一个表达式)工作正常。我认为该软件试图通过重用以前的数据来优化执行,并且出现了问题。

解决方法:更改两个公式中的一个,使其看起来不像另一个公式的一部分。在开头添加0+就足够了:

=query(A:F, "select sum(D)-sum(F), (0+sum(D)-sum(F))/sum(E)")

=query(A:F, "select 0+sum(D)-sum(F), (sum(D)-sum(F))/sum(E)")
两个都工作。 (不要在这两个地方加0,然后第二个公式再次有一部分,我们回到#N / A)