比赛截止,交流无止。趁板主答案没完全公布以前,我来凑一下热闹。
用合并计算的办法,当然是最好的办法,但用“定位空值,输入等号,左光标键,CTRL+回车”的办法(以下简称“定位填充”)也能实现,且都是一次性操作定位、查找或替换,操作次数与列数多少无关。 由于表中数据存在错位的行或列,在定位填充前必须加以处理,运用适当的技巧,可避免繁锁的逐个选取操作。 结合以上模型表操作如下:(注:表中黄色部份为源表区域,汇总和阻断列为通过技巧一次性加入的列) 1、通过公式,将数量和金额的分界列标为"A",数据末列人为输入"A",其它的为"",并选择性粘贴数值,同时消除假空单元格。数据末列人为输入"A"。 2、选取第二列,查找"A",全部查找,在出现的下拉框中用CTRL+A全选,定位"A",插入列,得到"阻断"列 3、重复以上第2步操作得到"汇总"列,最后在数据首列人为插入一列,并标识为"A"。 4、复制第2行,在新的工作表中,拖动复制6行。 5、复制以上数据,定位在模型表E6单元格,选择性粘贴勾选"跳过空单元格",得到上图 6、复制第2行,将"A"替换为"C",定位在D4单元格,粘贴,构建列标为"C"的"汇总"列, 7、完成以上步骤后,即可进行“定位填充”。 8、定位填充完毕,复制,选择性粘贴值。将数据区所在填充的"A"替换为真空单元格。 9、选取第3行,定位空值,删除整列,从而只剩"C"的"汇总"列 10、定位空值,删除,下上单元格上移,即得到所需数据。
最后说明,本题只是模型,比赛题中由于存在分界列连续现象,即出现分界列标识AA时,在查找定位后进行插入列操作时,不是在每个A前插入一列,而是在前面的A前插入2列。因此在用公式定位时加入column()函数可克服,用A和B来进行标识。 适合竞赛题中的公式为: IF(ROUNDUP(COUNT(A19:$B336)/93,0)-ROUNDUP(COUNT($B19:B336)/93,0)=0,"",IF(AND(ROUNDUP(COUNT(A19:$B336)/93,0)-ROUNDUP(COUNT($B19:B336)/93,0)=-1,MOD(COLUMN(B2),2)=0),"A","B")) 这样先选A插入列,再选B插入列。插入完后,将B替换为A。其它步骤相同。 |