我有这个:
=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,但也无法让它正常工作。
有人可以告诉我如何正确添加列吗?谢谢!
答案 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)