2009-04-27 50 views
0

我在数据库中的以下情况:Excel数据透视表问题 - 如何获得行区域字段的小计?

表保存所有部门的公司。

员工表中包含所有员工以及他们的部门ID和AllowedAbsenceDays字段,它告诉我们当天雇员缺席多少天。

缺席表持有公司发生的所有缺席。它的雇员ID并没有日期,也没有理由(休假,病假,事假,并有可能在未来更多...)

alt text http://i42.tinypic.com/4ktv69.jpg

我应该创建一个报告列出了所有员工,并显示他们被允许缺席多少天以及他们缺席多少天(缺席的原因是什么)。

我已经通过员工和因缺少分组的数据:

alt text http://i39.tinypic.com/2gt9g8o.jpg

这是我能得到这么远,通过将部门,员工和允许的缺勤天数支点行区域,原因在列面积和天数总和在数据区域中不存在:

alt text http://i43.tinypic.com/9s86bl.jpg

的问题是,我不能够得到允许的情况下的分类汇总每个部门的天数(这是一个坚定的要求)。最终的报告应该看起来像这样(我已经拍了这个)。

alt text http://i40.tinypic.com/1415a4y.jpg

有没有什么办法让这些小计?也许我应该以不同的方式准备数据透视表的数据?请注意,“总计”栏应仅包含实际缺勤天数(不包括“允许的缺勤天数”)。

例簿可下载here

感谢大家谁仍然在读:)

附:真实情况不同(在问题域中)。这是一个有点人为的例子,但基本问题是一样的。

回答

3

这是一个经典的数据标准化问题。 “允许的缺席日”字段与员工相关,而不涉及任何特定的缺席。在每一行(记录)中重复这个信息是导致问题的原因。

要在Excel工作表和数据透视表中实现此目的,您可以删除“允许的缺席日”列,而是将“允许的缺席日”用作“原因”列中的其中一个值。显示允许天数为负值或显示其他缺席原因的天数为负值可能会有所帮助。否则总体总数将不会有实际意义。

表和数据透视表应该大致是这样的:

Excel spreadsheet showing restructured data: column A is department, B is employee, C is days absent, D is reason. Allowed absence days is now a reason and associated days absent is negative http://img527.imageshack.us/img527/1979/so1.png

Excel pivot table showing sums of days absent in columns C through E. Allowed absence days in column C http://img412.imageshack.us/img412/9201/so2.png

重复为每一位员工的部门似乎并不理想,但我想,雇员可能在年内更换部门所以你可能不需要以某种方式来解释。你也需要它来使数据透视表无论如何工作

如果你绝对100%不能有这样的总受影响,那么我不相信你可以实现这与一个数据透视表。您可能想要查看使用ADO查询工作表并使用一些VBA宏来格式化和输出结果。 This page应该给你一些想法

0

只需在所有行中留下“允许的缺席日”空白,然后在底部/顶部放置希望的数字为“允许的缺席日”和空白其他的东西。

然后,只需在数据中放置“允许的缺勤天数”而不是数据透视中的列,并将其拖动到左侧。