Office中国论坛/Access中国论坛

标题: 在列中查找连续区域并计算其和等复杂的统计? [打印本页]

作者: gwfzh    时间: 2014-7-29 18:11
标题: 在列中查找连续区域并计算其和等复杂的统计?
本帖最后由 gwfzh 于 2014-8-10 10:48 编辑

在列中查找连续区域并计算其和等复杂的统计?



各位老师:



         "H"表Rang("l3:z19")是"按照A列(已由Sub dc0()程序在统计前面第一个表时得到)在"年龄", "年龄hj", "年龄fhj"等三表中第二行"疾病类型"进行查找,然后在查找"疾病类型"所在对应列中(不包括第5行"合计"和第31行"不详"):



         1、取得所在列F数第一个有数据的值(最小年龄 )和在"年龄", "年龄hj", "年龄fhj"三表中第一列中所对应的年龄(填在本表"M、S、Y列"和"AE、AK、AQ列"和"和"AW、BC、BI列");



          2、取得所在列F数最后一个有数据 的值(最大年龄 )和在"年龄", "年龄hj", "年龄fhj"三表中第一列中所对应的年龄(填在本表填在本表"L、R、X列"和"AD、AJ、AP列"和"和"AV、BB、BH列");



          3、所在列F数的连续有数据无空值间隔的连续单元格区域(条件是最大连续区域:连续区域数值的和最大)起始单元格在第一列中所对应的年龄X-、Y- 值(填在本表"N、T、Z列"和"AF、AL、AR列"和"和"AX、BD、BJ列");



          4、上述 连续区域所在数值的和(填在本表"O、U、AA列"和"AG、AM、AS列"和"和"AY、BE、BK列");



          5、上述 和值 与该所在列总和(第5行)的构成比=3项和值/所在列和*100(填在本表"P、V、AB列"和"AH、AN、AT列"和"和"AZ、BF、BL列");



          6、取得所在列F数的最大值及在第一列所对应的年龄;(填在本表"Q、W、AC列"和"AI、AO、AU列"和"和"BA、BG、BM列");



          怎样在"年龄", "年龄hj", "年龄fhj"等三表中,将上述数据统计到上表中,请各位老师帮忙了!谢谢!!!具体详见附件示例 [attach]54328[/attach]

如:首先,由Sub lqxs()程序的第一部分取得的疾病名称,然后:
   1、查找“疾病名称A5”在年龄!表所对应的列为AI列,其有数据的起始单元格“男性”所在列为AI17=179例,则该单元格在第1列所对应的为最小年龄为!A17=20岁,同样取得最大年年龄AI25=60岁,然后将数据“20"和“'60"分别填在"H"表的LM列与“疾病名称A5”所对应的第3行男性所列单元格;

   3、所在列连续区域的查找(1、是连续有值的行;2、且区域无空格行;3、且区域各行的和值最大):如疾病名称“A5”在表“年龄”中对应的AI列男有[AI17 [AI23:AI25]2个连续区域,其中前一个区域数值和为”735“大于后一个连续区域数值和”412“,故其年龄分布取最大和的第一个连续区域[AI17,即20~40

   疾病名称已由Sub lqxs()程序的第一部分求字典键值时所得(k = d1.keys),并赋值于““H”表A列”,          H”表A列是由"原始表", "原始表hj", "原始表fhj"三表中A列的“种类”按“设置”表的AB列进行判断,如三表中的A列“种类”与“设置”表中AB列相符,同时三表中“本期F数(B列)”不为空所得到的键值 (亦即各表"疾病类型"与“设置”表的AB列对照相符且总发病不为空的键值),因总发病不变,所以只求一次就可。

不知讲清楚了没有?特别希望能得到老师的帮助!谢谢了!



作者: gwfzh    时间: 2014-7-30 17:02
  顶!!!!!!!!!!!!
作者: gwfzh    时间: 2014-7-31 12:56
顶!!!!!!!!!!!!
作者: roych    时间: 2014-7-31 12:59
本帖最后由 roych 于 2014-7-31 13:00 编辑

昨天看了下,只是觉得很复杂,没看懂你的意思。今晚回去研究下。而且,“F数”是什么玩意儿?
作者: gwfzh    时间: 2014-8-1 09:34
郁闷,怎么没老师来解决问题呢??????????????:
作者: gwfzh    时间: 2014-8-1 09:35
F数是发病数
的简称

作者: gwfzh    时间: 2014-8-1 09:35
本帖最后由 gwfzh 于 2014-8-1 09:38 编辑


roych 发表于 2014-7-31 12:59

昨天看了下,只是觉得很复杂,没看懂你的意思。今晚回去研究下。而且,“F数”是什么玩意儿?

F数是发病数 的简称,现将新的附件传上,请老师帮忙了!!![attach]54341[/attach]


作者: gwfzh    时间: 2014-8-2 13:18
请老师帮忙了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
作者: gwfzh    时间: 2014-8-2 18:49
郁闷,怎么没老师来解决问题呢??????????????:
作者: gwfzh    时间: 2014-8-4 09:09
该论坛怎么了?怎么不解决问题!!!!!!
作者: gwfzh    时间: 2014-8-4 17:56
郁闷!该论坛怎么没有老师来解决问题呢?
作者: gwfzh    时间: 2014-8-5 09:28
顶!!!!!!!!!!!!
作者: gwfzh    时间: 2014-8-5 18:11
请老师帮忙!!!!!!!!!!!!!!!!!!!!!!!!!!  

作者: gwfzh    时间: 2014-8-6 11:27
该论坛怎么了?怎么不解决问题!!!!!!

作者: gwfzh    时间: 2014-8-9 17:42
请老师们帮忙写一个代码啊!!!
作者: gwfzh    时间: 2014-8-9 17:43
如:首先,由Sub lqxs()程序的第一部分取得的疾病名称,然后:
   1、查找“疾病名称A5”在年龄!表所对应的列为AI列,其有数据的起始单元格“男性”所在列为AI17=179例,则该单元格在第1列所对应的为最小年龄为!A17=20岁,同样取得最大年年龄AI25=60岁,然后将数据“20岁"和“'60岁"分别填在"H"表的L、M列与“疾病名称A5”所对应的第3行男性所列单元格;
   3、所在列连续区域的查找(1、是连续有值的行;2、且区域无空格行;3、且区域各行的和值最大):如疾病名称“A5”在表“年龄”中对应的AI列男有[AI17:AI21]和 [AI23:AI25]2个连续区域,其中前一个区域数值和为”735“大于后一个连续区域数值和”412“,故其年龄分布取最大和的第一个连续区域[AI17:AI21],即20~40岁
    疾病名称已由Sub lqxs()程序的第一部分求字典键值时所得(k = d1.keys),并赋值于““H”表A列”,          “H”表A列是由"原始表", "原始表hj", "原始表fhj"三表中A列的“种类”按“设置”表的A、B列进行判断,如三表中的A列“种类”与“设置”表中A、B列相符,同时三表中“本期F数(B列)”不为空所得到的键值 (亦即各表"疾病类型"与“设置”表的A、B列对照相符且总发病不为空的键值),因总发病不变,所以只求一次就可。
不知讲清楚了没有?特别希望能得到老师的帮助!谢谢了!

作者: gwfzh    时间: 2014-8-9 17:43
roych 发表于 2014-7-31 12:59
昨天看了下,只是觉得很复杂,没看懂你的意思。今晚回去研究下。而且,“F数”是什么玩意儿?

如:首先,由Sub lqxs()程序的第一部分取得的疾病名称,然后:
   1、查找“疾病名称A5”在年龄!表所对应的列为AI列,其有数据的起始单元格“男性”所在列为AI17=179例,则该单元格在第1列所对应的为最小年龄为!A17=20岁,同样取得最大年年龄AI25=60岁,然后将数据“20岁"和“'60岁"分别填在"H"表的L、M列与“疾病名称A5”所对应的第3行男性所列单元格;
   3、所在列连续区域的查找(1、是连续有值的行;2、且区域无空格行;3、且区域各行的和值最大):如疾病名称“A5”在表“年龄”中对应的AI列男有[AI17:AI21]和 [AI23:AI25]2个连续区域,其中前一个区域数值和为”735“大于后一个连续区域数值和”412“,故其年龄分布取最大和的第一个连续区域[AI17:AI21],即20~40岁
    疾病名称已由Sub lqxs()程序的第一部分求字典键值时所得(k = d1.keys),并赋值于““H”表A列”,          “H”表A列是由"原始表", "原始表hj", "原始表fhj"三表中A列的“种类”按“设置”表的A、B列进行判断,如三表中的A列“种类”与“设置”表中A、B列相符,同时三表中“本期F数(B列)”不为空所得到的键值 (亦即各表"疾病类型"与“设置”表的A、B列对照相符且总发病不为空的键值),因总发病不变,所以只求一次就可。
不知讲清楚了没有?特别希望能得到老师的帮助!谢谢了!

作者: gwfzh    时间: 2014-8-10 10:49
如:首先,由Sub lqxs()程序的第一部分取得的疾病名称,然后:
   1、查找“疾病名称A5”在年龄!表所对应的列为AI列,其有数据的起始单元格“男性”所在列为AI17=179例,则该单元格在第1列所对应的为最小年龄为!A17=20岁,同样取得最大年年龄AI25=60岁,然后将数据“20岁"和“'60岁"分别填在"H"表的L、M列与“疾病名称A5”所对应的第3行男性所列单元格;

   3、所在列连续区域的查找(1、是连续有值的行;2、且区域无空格行;3、且区域各行的和值最大):如疾病名称“A5”在表“年龄”中对应的AI列男有[AI17:AI21]和 [AI23:AI25]2个连续区域,其中前一个区域数值和为”735“大于后一个连续区域数值和”412“,故其年龄分布取最大和的第一个连续区域[AI17:AI21],即20~40岁

   疾病名称已由Sub lqxs()程序的第一部分求字典键值时所得(k = d1.keys),并赋值于““H”表A列”,          “H”表A列是由"原始表", "原始表hj", "原始表fhj"三表中A列的“种类”按“设置”表的A、B列进行判断,如三表中的A列“种类”与“设置”表中A、B列相符,同时三表中“本期F数(B列)”不为空所得到的键值 (亦即各表"疾病类型"与“设置”表的A、B列对照相符且总发病不为空的键值),因总发病不变,所以只求一次就可。

不知讲清楚了没有?特别希望能得到老师的帮助!谢谢了!

作者: roych    时间: 2014-8-11 11:37
之前拿回去貌似打不开,后面就忘了……不好意思。今天转换成2007格式再看下。
作者: gwfzh    时间: 2014-8-12 10:38
roych 发表于 2014-8-11 11:37
之前拿回去貌似打不开,后面就忘了……不好意思。今天转换成2007格式再看下。

先谢谢老师了!期盼中!
作者: gwfzh    时间: 2014-8-13 10:19
roych 发表于 2014-8-11 11:37
之前拿回去貌似打不开,后面就忘了……不好意思。今天转换成2007格式再看下。

先谢谢老师了!期盼中!
作者: gwfzh    时间: 2014-8-14 17:17
roych 发表于 2014-8-11 11:37
之前拿回去貌似打不开,后面就忘了……不好意思。今天转换成2007格式再看下。

请老师帮忙!!!!!!!!!!!!!!!!!!!!!!!!!!  
作者: gwfzh    时间: 2014-8-14 17:24
请老师帮忙!!!!!!!!!!!!!!!!!!!!!!!!!!  
作者: gwfzh    时间: 2014-8-15 08:51
roych 发表于 2014-8-11 11:37
之前拿回去貌似打不开,后面就忘了……不好意思。今天转换成2007格式再看下。

请老师帮忙!!!!!!!!!!!!!!!!!!!!!!!!!!  
作者: roych    时间: 2014-8-18 12:32
我觉得你的表太乱了。能不能处理成一个标准数据表再处理啊?
按这个格式把数据填好,我再帮你处理。剩下的其实用数据透视表就很好处理的了。。。。
[attach]54469[/attach]




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