本帖最后由 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"等三表中,将上述数据统计到上表中,请各位老师帮忙了!谢谢!!!具体详见附件示例
如:首先,由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:和 [AI23:AI25]2个连续区域,其中前一个区域数值和为”735“大于后一个连续区域数值和”412“,故其年龄分布取最大和的第一个连续区域[AI17:,即20~40岁 疾病名称已由Sub lqxs()程序的第一部分求字典键值时所得(k = d1.keys),并赋值于““H”表A列”, “H”表A列是由"原始表", "原始表hj", "原始表fhj"三表中A列的“种类”按“设置”表的A、B列进行判断,如三表中的A列“种类”与“设置”表中A、B列相符,同时三表中“本期F数(B列)”不为空所得到的键值 (亦即各表"疾病类型"与“设置”表的A、B列对照相符且总发病不为空的键值),因总发病不变,所以只求一次就可。 不知讲清楚了没有?特别希望能得到老师的帮助!谢谢了!
|