0

我在数据库中有以下情况:

部门表包含公司的所有部门。

Employee表包含所有员工,以及他们的部门 id 和 AllowedAbsenceDays 字段,它告诉我们该员工今年允许缺勤多少天。

缺勤表包含公司中发生的所有缺勤。它有员工 ID 和缺勤日期,以及缺勤原因(假期、病假、个人日,以及未来可能更多......)

替代文字

我应该创建一个报告,列出所有员工并显示他们允许缺勤的天数以及他们缺勤的天数(以及缺勤的原因)。

我按员工和缺勤原因对数据进行了分组:

替代文字

到目前为止,通过将部门、员工和允许的缺勤天数放在枢轴行区域,将原因放在列区域,将缺勤天数总和放在数据区域,这是我目前所能得到的:

替代文字

问题是我无法获得每个部门允许的缺勤天数的小计(这是一项严格的要求)。最终报告应该看起来像这样(我已经对此进行了Photoshop处理)。

替代文字

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

示例工作簿可在此处下载

感谢所有仍在阅读的人:)

PS 实际情况不同(在问题域中)。这是一个有些人为的例子,但基本问题是相同的。

4

2 回答 2

3

这是一个经典的数据规范化问题。“允许的缺勤天数”字段与员工有关,与任何特定缺勤无关。在每一行(记录)中重复此信息是导致问题的原因。

要在 Excel 工作表和数据透视表中实现此目的,您可以删除“允许缺勤天数”列,而使用“允许缺勤天数”作为“原因”列中的值之一。将允许的天数显示为负数或将其他缺勤原因的天数显示为负数可能是有益的。否则,总的总数将毫无意义。

工作表和数据透视表应大致如下所示:

显示重组数据的 Excel 电子表格:A 列是部门,B 是员工,C 是缺勤天数,D 是原因。允许缺勤天数现在是一个原因,相关天数缺勤是负数 http://img527.imageshack.us/img527/1979/so1.png

Excel 数据透视表显示 C 到 E 列中缺勤天数的总和。C 列允许缺勤天数

为每个员工重复部门似乎并不理想,但我想员工可以在一年中更换部门,所以你可能/可能不必以某种方式考虑这一点。您还需要它来使数据透视表正常工作

如果您绝对 100% 不能以这种方式影响总计,那么我不相信您可以通过数据透视表来实现这一点。您可能希望查看使用 ADO 查询工作表并使用一些 VBA 宏来格式化和输出结果。此页面应该让您了解所涉及的内容

于 2009-04-29T02:09:28.743 回答
0

只需在所有行中将“允许的缺勤天数”留空,然后在底部/顶部输入“允许的缺勤天数”所需的数字和其他内容的空白。

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

于 2010-01-28T14:52:59.147 回答