|
楼主 |
发表于 2018-3-27 11:02
|
显示全部楼层
本帖最后由 1e3e 于 2018-3-27 13:36 编辑
向大侠致歉,本人手抖在单元格x39中误打了一个58,我已经把58删除了。
思路对于大侠而言很简单,举个例子对于样表二就是:
1、x列中数字一定是从小到大排列。
2、在x列中寻找最小值,对于样表二就是28,获取28的行号4,接下来再寻找除去28外的最小值,即29,获取29的行号6,
复制的起始行是4+1,复制的终结行是6-1,所以要复制的部分为:起始行第5行,终结行第5行。
下面,获取x列中除28、29外的最小值30,(已经寻找过的x列数值全部排除之!!!!因为28和29已经寻找过,就排除在外)
如果28的行号为4, 29行号为5,即复制范围为起始行4+1行,终结行5-1行,即相邻则无须复制。
依次类推往下寻找:当寻找至38时,此时38是第17行到表格最末行的最小值,获取38的行号17,接下来再寻找除去已经寻找过的x列数值的最小值为49,获取49行号为23,复制的起始行是17+1,复制的终结行为49-1,所以要复制的部分为:起始行第18行,终结行第48行。
如果x列中全部数字恰好取完,则执行如上操作即可。
如果x列中只取剩一个数字,这个数字在样表二中恰好为57,(在其它样表中可能不是57,因为当"七、其他费用b计划"没有投资额时,也有可能会被删除,所以这最后一个数可能为55、53、32…等任一个。),这时获取57的行号为34,复制起始行第34行,复制终结行为34+15行,因为明细项不会超过15行。 |
|