从本帖标题出发点看,是要解决问题,而不是要绕弯路。与其费心思去算B2=-1构造特殊情况,不如由用户来决定什么时候开始运行。
启动开关不仅可以做到这一点,还可以轻松给迭代变量赋予初始值,而不需一次次进入公式的编辑状态来重新赋值。
而计数器的作用,经常作为MID遍历字符串中每一个字符、遍历单元格区域中每一个单元格等,
按照《轻松控制循环引用完全教程》的做法,不需要这么麻烦,步骤如下:
1、设置D1单元格为启动开关,输入1启动,清除时关闭。
2、以B2为计数器,输入简单公式:=IF(D1,B2+1,)——即D1启动后从1开始累加,否则归零。
3、C2输入下面普通公式提取数字(或参考用公式将混合数字和字母的分开)
=IF(D1,C2&IF(ISERR(-MID(A2,B2,1)),"",MID(A2,B2,1)),"")——普通公式,即当D1未启动时返回""作为初始值,启动后,则返回C2的结果与IF的合并。IF只需判断所取出的A2单元格中的单个字符是否为数字,非数字就返回""空文本,数字就保留。
得到结果就是提取数字。
4、C3输入数组公式:
=IF(D1,C3&IF(ISERR(-MID(A2,B2,1)),"",MID(A2,B2,1)&IF(ISERR(-MID(A2,B2+1,1))*(B2<MATCH(1,0/MID(A2,ROW($1:$99),1))),"*","")),"")
在前者基础上,保留数字的同时——判断下一位不是数字且其位置不会超过A2最后一个数字(MATCH的结果),则再加*号。 |