Ms access MS Access:如果数量不为零,如何对报告中的数量列表求平均值?

Ms access MS Access:如果数量不为零,如何对报告中的数量列表求平均值?,ms-access,report,average,ms-access-2013,Ms Access,Report,Average,Ms Access 2013,我有一份报告。此报告返回许多行。其中一列是qty\u req(所需数量)。我需要AVG()此列并将平均值放在报告的底部。问题是,有时某些行在此列中有一个零。我希望平均值不包括任何有零的行。我怎样才能做到这一点 我尝试的内容:我尝试在查询中使用DAvg,但这使得查询时间非常长。那么你就不能使用计算的SUM()或AVG()字段,就这么简单。 这些函数始终使用报表中的所有行 您需要DSum()或DAvg()来分别计算它 如果速度太慢,则需要解决此问题。Avg()忽略空值。因此,您可以使用IIf()表达

我有一份报告。此报告返回许多行。其中一列是
qty\u req
(所需数量)。我需要
AVG()
此列并将平均值放在报告的底部。问题是,有时某些行在此列中有一个零。我希望平均值不包括任何有零的行。我怎样才能做到这一点


我尝试的内容:我尝试在查询中使用
DAvg
,但这使得查询时间非常长。

那么你就不能使用计算的
SUM()
AVG()
字段,就这么简单。
这些函数始终使用报表中的所有行

您需要
DSum()
DAvg()
来分别计算它

如果速度太慢,则需要解决此问题。

Avg()
忽略空值。因此,您可以使用
IIf()
表达式将Null值替换为零值,然后将
Avg()
基于该
IIf()
表达式

以下是报表页脚中文本框的控件源:

=Avg(IIf([gainOrLoss]=0, Null, [gainOrLoss]))

gainOrLoss
是报告记录源中的一个字段。文本框显示所有既不为零也不为空的值的平均值。

zero=0。这不会影响总数,所以为什么需要排除它们?@Andre我会让它更适用。现在编辑。总的来说,当且仅当
qty_req
列中没有
0
时,我需要对行的
SUM
AVG
进行计算。对,那么我如何“解决此问题”?这是有效的。我现在有一个新问题,不确定你是否希望我把它作为一个新问题发布。但它和这个非常相似。如果是这样,只要说一句话,我就会。现在,我需要根据
qty\u req
是否为零,对另一列
qty\u issued
求和。因此,
Sum([qty\u issued])
,但如果
qty\u req
列为零,则不要将其包含在求和中。我该怎么做?好的,我创建了它: