Office中国论坛/Access中国论坛

标题: 怎样通过函数把明细表中的人员生成到汇总表中 [打印本页]

作者: huanglucy    时间: 2014-8-18 19:50
标题: 怎样通过函数把明细表中的人员生成到汇总表中
求助,怎样通过函数把附件明细表中的人员生成到汇总表中!
作者: 科学のGillian    时间: 2014-8-19 08:46
见附件
用添加序号的方式,不知这样能否解决您的问题。两个表的信息通过一个“工号/编号"字段来链接。这个字段不能有重复信息。另外里面的公式使用了iferror,如果您的office版本是2003的可以用if公式与iserror公式嵌套改写一下公式。
作者: roych    时间: 2014-8-19 09:15
搞不懂。一个简单的数据透视表就可以搞定了,用什么函数公式?!
[attach]54480[/attach]
作者: pureshadow    时间: 2014-8-19 10:52
roych 发表于 2014-8-19 09:15
搞不懂。一个简单的数据透视表就可以搞定了,用什么函数公式?!

我也想跳出来替透视表鸣不平了
作者: huanglucy    时间: 2014-8-19 12:05
科学のGillian 发表于 2014-8-19 08:46
见附件
用添加序号的方式,不知这样能否解决您的问题。两个表的信息通过一个“工号/编号"字段来链接。这个 ...

这样不行,要生成一个人员名单,不能重复
作者: huanglucy    时间: 2014-8-19 12:07
roych 发表于 2014-8-19 09:15
搞不懂。一个简单的数据透视表就可以搞定了,用什么函数公式?!

用函数可以做成自己喜欢的格式,另外还要根据人员名单计算一些其他的东西
作者: roych    时间: 2014-8-19 12:40
huanglucy 发表于 2014-8-19 12:07
用函数可以做成自己喜欢的格式,另外还要根据人员名单计算一些其他的东西

就这张表来说,除了计数还有什么?即便是更多信息,数据透视表同样可以体现出来。
作者: huanglucy    时间: 2014-8-19 13:19
roych 发表于 2014-8-19 09:15
搞不懂。一个简单的数据透视表就可以搞定了,用什么函数公式?!

姓名        日期        金额
张三        2012-1-1        1
李四        2011-1-1        1
王五        2014-7-6        100
张三        1989-9-4        1
李四        2012-1-1        1
王五        2000-7-7        1
张三        2014-7-2        200
雷锋        2014-5-5        300
王五        2012-1-1        1
张三        2000-8-9        1
李四        2014-5-5        400
王五        1989-8-8        1

作者: huanglucy    时间: 2014-8-19 13:20
huanglucy 发表于 2014-8-19 13:19
姓名        日期        金额
张三        2012-1-1        1
李四        2011-1-1        1

姓名        日期        金额
雷锋        2014-5-5        300
李四        2014-5-5        400
王五        2014-7-6        100
张三        2014-7-2        200

作者: huanglucy    时间: 2014-8-19 13:20
huanglucy 发表于 2014-8-19 13:20
姓名        日期        金额
雷锋        2014-5-5        300
李四        2014-5-5        400

自动将明细中每个人的最后一笔记录(日期最大的)统计到汇总表上,就是明细表上黄色的生成过来,不想在透视表中每次都刷新数据

明细表上添加一个新人,汇总上就自动增加一个人和他的最后一笔数据

作者: roych    时间: 2014-8-19 13:58
1、数据透视表本身可以自动更新。如果不想手动刷新的话,完全可以勾选这一项。
2、所选区域变化时,可以定义名称来动态处理(主要是定义动态数据表)。——顺便说一句,即便用函数公式,同样也要动态处理才可能同步。

作者: huanglucy    时间: 2014-8-19 14:39
roych 发表于 2014-8-19 13:58
1、数据透视表本身可以自动更新。如果不想手动刷新的话,完全可以勾选这一项。
2、所选区域变化时,可以定 ...

谢谢,我再想想
作者: huanglucy    时间: 2014-8-19 19:10
roych 发表于 2014-8-19 13:58
1、数据透视表本身可以自动更新。如果不想手动刷新的话,完全可以勾选这一项。
2、所选区域变化时,可以定 ...

明细表上添加一个新人,汇总上就自动增加一个人和他的最后一笔数据
作者: roych    时间: 2014-8-20 10:42
试试看?注意,由于动态数据表的缘故,主数据表A-C列已编辑的单元格中不能留有空行或者合并单元格。
[attach]54482[/attach]
作者: huanglucy    时间: 2014-8-20 11:22
roych 发表于 2014-8-20 10:42
试试看?注意,由于动态数据表的缘故,主数据表A-C列已编辑的单元格中不能留有空行或者合并单元格。

非常感谢版主的指导,但是还有一点点问题,金额与最大日期的记录不匹配

姓名        日期        金额        需要手动刷新,能否自动刷新
张三        2000-5-5        10        最大日期对应的金额不对
李四        2011-1-1        1000                                        
李四        2014-7-6        60        姓名        交易日期        交易金额       
张三        1999-9-9        100        李四        2014-7-6        1000        李四2014年7月6日对应的金额是60
                        张三        2000-5-5        100        张三2000年5月5日对应的金额是10

作者: roych    时间: 2014-8-20 15:57
没看到哪个地方不匹配。
右边是你汇总后的原表,左边是数据透视表
[attach]54483[/attach]
另外,自动更新的意思是说,更新数据后,(保存)关闭后再打开时就自动更新了。如果需要实时更新的话,要么写代码,要么手动更新。
[attach]54484[/attach]
作者: huanglucy    时间: 2014-8-21 08:26
roych 发表于 2014-8-20 15:57
没看到哪个地方不匹配。
右边是你汇总后的原表,左边是数据透视表

序号        姓名      日期      金额
  1      张三    1999-1-1      100
   2         张三    2014-1-1       20
以上两条记录通过透视表出来的结果是: 张三    2014-1-1       100
而正确的应该是序号为2的整条记录   : 张三    2014-1-1         20
要的是日期为最大的那整条记录,金额不是最大值,而是日期最大的那条记录的金额。
非常感谢版主的帮助,我的电脑不能添加附件了,只能这样演示了!另外,用代码的话,刷新也要点一下的
作者: 科学のGillian    时间: 2014-8-21 08:41
huanglucy 发表于 2014-8-19 13:20
自动将明细中每个人的最后一笔记录(日期最大的)统计到汇总表上,就是明细表上黄色的生成过来,不想在透 ...

我个人的看法昂...如果数据透视表可以解决的话,就用数据透视表,大不了选取的区域大一些,把未来可能添加的空白区域也圈进来。
至于刷新,在VBA里对Sheet1添加个deactivate的触发事件,自动刷新透视表。
个人拙见
作者: roych    时间: 2014-8-21 09:32
huanglucy 发表于 2014-8-21 08:26
序号        姓名      日期      金额
  1      张三    1999-1-1      100
   2         张三    201 ...

张三最后一次的记录是2014年7月2日的好不好?——你的要求是列出最后一次,而不是每一次。
作者: pureshadow    时间: 2014-8-21 10:18
roych 发表于 2014-8-19 13:58
1、数据透视表本身可以自动更新。如果不想手动刷新的话,完全可以勾选这一项。
2、所选区域变化时,可以定 ...

Roy试试数据源套用表格格式(2003版叫列表来着)来实现数据透视表的全联动
作者: huanglucy    时间: 2014-8-21 12:06
roych 发表于 2014-8-21 09:32
张三最后一次的记录是2014年7月2日的好不好?——你的要求是列出最后一次,而不是每一次。

如明细中张三就输入下面两条记录
序号        姓名      日期      金额
  1      张三    1999-1-1      100
   2      张三    2014-1-1       20
以上两条记录通过透视表出来的结果是: 张三    2014-1-1       100
而正确的应该是序号为2的整条记录   : 张三    2014-1-1         20

作者: roych    时间: 2014-8-21 16:30
如果你非要这么说的话,只能说你的表数据跟我的不一样了。
其实,你到底有没有看过我的附件,有没有留意过里面的“汇总2”呢?自己筛选出来,再比较下最后的日期好吗?
[attach]54495[/attach]
1、数据透视表本身就类似于数据库,记录只能一条一条地呈现,根本不可能出现这种错位的情况。
2、这种错位情况的出现只有一种可能:用公式。
顺便说一句,妖版说的套用表格式似乎解决不了实时更新的问题。估计要么得设置sql语句,要么用VBA处理了。
作者: huanglucy    时间: 2014-8-22 08:22
谢谢roych,附件中的例子可以说明数据不匹配的问题,数据透视表《汇总2》抓取了张三所有记录的最大日期、所有记录的最大金额,但抓取到的最大日期和最大金额并不是来自同一条记录!另外,即使使用代码,刷新数据还是要手动点一下,不像写函数,数据是同步刷新的!
作者: roych    时间: 2014-8-22 15:21
筛选下就是啦。
[attach]54504[/attach]

作者: huanglucy    时间: 2014-8-22 15:50
非常谢谢roych




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3