易表在线答疑技术与交流用户社区 → [求助]如何精确计算某人在某年某月某日属于何年龄段档次问题


  共有19220人关注过本帖树形打印复制链接

主题:[求助]如何精确计算某人在某年某月某日属于何年龄段档次问题

帅哥哟,离线,有人找我吗?
tzszw
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
[求助]如何精确计算某人在某年某月某日属于何年龄段档次问题  发帖心情 Post By:2006/11/23 20:07:00 [显示全部帖子]

   我做的一个系统,其中涉及对人员的分段问题,搞了好长时间,我认为很好了,但用户总觉得计算不精确,特此请教一下各位。
   情况是这样的:
   有一个分段方法,如下
   年龄段             男                         女
 第一年龄段       16周岁以下                 16周岁以下            
 第二年龄段       >=16周岁<50周岁            >=16周岁<45周岁
 第三年龄段       >=50周岁<60周岁            >=45周岁<55周岁
 第四年龄段       >=60周岁                   >=55周岁
 有一个固定的截止计算时间,为2005年12月31日(这个时间也可能会变动,但不管变动不变动,其对每个人来说,都是一致的,即每个人计算的截止时间均以此为准,姑且先定为“截止时间”,另一个时间为“出生年月”)。
 我目前的计算公式是:
 第一年龄段:if([性别]="男",if(DaysBtw([出生年月],[截止时间])/365<[年龄段!年龄段_一_男周岁],-1,0),if(DaysBtw([出生年月],[截止时间])/365<[年龄段!年龄段_一_女周岁],-1,0))
 第二年龄段:if([性别]="男",if(DaysBtw([出生年月],[截止时间])/365>=[年龄段!年龄段_二_男周岁1] and DaysBtw([出生年月],[截止时间])/365<[年龄段!年龄段_二_男周岁2],-1,0),if(DaysBtw([出生年月],[截止时间])/365>=[年龄段!年龄段_二_女周岁1] and DaysBtw([出生年月],[截止时间])/365<[年龄段!年龄段_二_女周岁2],-1,0))
  第三年龄段:if([性别]="男",if(DaysBtw([出生年月],[截止时间])/365>=[年龄段!年龄段_三_男周岁1] and DaysBtw([出生年月],[截止时间])/365<[年龄段!年龄段_三_男周岁2],-1,0),if(DaysBtw([出生年月],[截止时间])/365>=[年龄段!年龄段_三_女周岁1] and DaysBtw([出生年月],[截止时间])/365<[年龄段!年龄段_三_女周岁2],-1,0))
  第四年龄段:if([性别]="男",if(DaysBtw([出生年月],[截止时间])/365>=[年龄段!年龄段_四_男周岁],-1,0),if(DaysBtw([出生年月],[截止时间])/365>=[年龄段!年龄段_四_女周岁],-1,0))
  要求如定位某人在某年龄段,则其必须正好是满多少周岁月落在某个年龄段的档次里。即是分“男”或“女”用其“出生年月”至“截止时间”的天数/365天计算,但这样算的话还是有误差(特别是40岁以上人员,可能是有闰年的缘故)。
 如:周某,男,1946年1月7日出生,截止2005年12月31日,应属第三年龄段,因为其肯定不足60周岁(至60的应至2006年1月7日后),但却计算成第四年龄段的了。
  请大家看看,是不是公式有问题,什么好建议?
  谢谢!
  

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/23 20:33:00 [显示全部帖子]

下面引用由czy2006/11/23 08:13pm 发表的内容:
发文件测试吧。

egd文件下载
文件如上,管理员,无密码。
计算的数据在“个人开户”表中,周某为周同二(周二同)
另外,这个表好象特慢,不知何故?
CZY老师,请帮忙看一下,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/23 21:19:00 [显示全部帖子]

我试试。先谢谢!
记得我原来的公式也是用的YearFrac,后来用户说不准,就又改了。
慢主要体现在点主菜单中“参保处理”进入二级菜单,慢得令人难以忍受。以前很快的

-=-=-=- 以下内容由 tzszw2006年11月23日 09:19pm 时添加 -=-=-=-
点上一条、下一条都慢得要命

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/23 21:34:00 [显示全部帖子]

搞错了,是李同二,保险编号:02020210
      杨仁高     02040090
      杨登贵     02050288
三人都是46年1月出生的,

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/23 21:40:00 [显示全部帖子]

下面引用由czy2006/11/23 09:09pm 发表的内容:
试试年龄段_第三的公式,看看是不是准确?
="男" And YearFrac(,,0)>= Or YearFrac(,,0)<Or="女" And YearFrac(,,0)>=Or YearFrac(,,0)<-=-=-=- 以下内容由 czy 在 2006年11月2 ...

刚才试了一下,用上面的公式后,李同二和两个姓杨的都跑到第三年龄段了
请问CZY老师:YearFrac()(返回两个日期之间以年为单位的间隔,例如:YearFrac($"1971-9-17",$"2002-8-5",1) = 30.904,第三个参数始终设为1即可。)
函数中的第三个参数,用1和0有什么不同啊?
谢谢指教!

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/23 22:13:00 [显示全部帖子]

我在表中新增了四列,分别将这四个公式放进去,结果发现问题大了,好象全算乱了
不知何故

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/23 22:21:00 [显示全部帖子]

请看!egd文件下载
我在表中新增了四列yd、ed、sd和shd,分别对应于第一、二、三、四个年龄段,将这四个公式放进去,结果发现问题大了,好象全算乱了,与原来的差距很大,显然有问题
请CZY老师再看一下!
谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/23 22:43:00 [显示全部帖子]

这下了全对了,只是有一点是你不小心写错了,即:
2、[性别]="男" And YearFrac([出生年月],[截止时间],0)>=[年龄段!年龄段_二_男周岁1] And YearFrac([出生年月],[截止时间],0)<[年龄段!年龄段_二_男周岁2] Or [姓名]="女" And YearFrac([出生年月],[截止时间],0)>=[年龄段!年龄段_二_女周岁1] And YearFrac([出生年月],[截止时间],0)<[年龄段!年龄段_二_女周岁2]
Or后面应是[性别],错写成[姓名]了
CZY老师啊,太谢谢你了,这种公式确实精确多了,我大约遍历了2000多记录,好象没看出问题来。
再次谢谢CZY老师!

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/24 8:39:00 [显示全部帖子]

另外,再请问一下CZY版主:
"打开主窗口后,几个窗口中的定时器不停的计算,你的文件还怎么操作啊?"象我这个慢的问题有什么好的方法解决呀?能否具体指导一下?
谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
tzszw
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蒙面侠 帖子:2409 积分:400 威望:0 精华:0 注册:2006/8/14 19:31:00
  发帖心情 Post By:2006/11/24 11:27:00 [显示全部帖子]

那就发个全的文件如何?

 回到顶部
总数 16 1 2 下一页