0

我一直在尝试在 2007 年访问时开发现金流量表。这在 excel 中使用公式很容易完成,例如

= SUM (B6:M6) / CountIF(B6:M6)>0 

但是在访问时,我似乎无法解决这个问题。对于我们输入数据的每家公司,我都需要这个。现金流量表应该是这样的(因为我还不能发布图片):

-------------------------------------------------- -------------------------------------------------- ------------
详情 | 一月 | 二月 | 三月 | 四月 | 君 | 七月 | 八月 | 九月 | 十月 | 十一月 | 十二月 | 平均 |
销售---------------------->
薪水-------->
交通----->

以及该行中大约 10 个其他项目,所有项目都包含 1 月到 12 月的条目,但是,有时我们需要 6 个月的数据,有时需要全部 12 个月的数据。(想象一个基本的 Excel 表,第一列有项目,接下来的 12-13 列有标题)。

在访问中,我为每个项目制作了以月份为列的表格,例如。tblRcpt--> |rcpt_ID|Jan|Feb|... 以此类推,直到 12 月所有项目。然后它们将被安排并呈现在一个条目表格中,该表格的设计看起来类似于上表,而稍后我将查询并将它们链接在一起以呈现完整的现金流量表。

现在问题来了,我需要对列进行平均(如您在最右边的列中所见),但我只想对已填充的月份进行平均(有时在会计人员输入“0”的地方没有数据),所以我不能只对列求和并除以十二。它必须是动态的,所有功能似乎都以计算和平均 ROW 为中心,而不是 COLUMN。

感谢您对我的包容并阅读本文,我们将不胜感激任何帮助。

4

2 回答 2

1

试试这个

(Jan + Feb + ... + Dec) /
  ( case when Jan = 0 then 0 else 1 end
  + case when Feb = 0 then 0 else 1 end

  + case when Dec = 0 then 0 else 1 end )
as Avg
于 2013-04-07T17:54:46.203 回答
1

你的表结构应该是:

Particulars | Month | Amount
Sales         1       500
Sales         2       1000
Salary        1       80000

...等等。当您没有该月的值时,您可以不输入行,也可以在 SQL 语句中处理它们(如下所示):

SELECT Particulars, AVG(Amount) AverageAmount
FROM MyTable
WHERE NULLIF(Amount, 0) IS NOT NULL
GROUP BY Particulars;
于 2013-04-07T17:57:03.333 回答