|
楼主 |
发表于 2009-9-17 22:42
|
显示全部楼层
说了这么多,给了这么些实例,头快昏了。不怕,我们抓一个小实例来:如何将一个字符串逆序返回?
【解剖】所谓逆序返回字符,就是将字符串从右到左倒过来。这里使用了几个简单的函数:RIHGT、LEFT、LEN和IF。
【制作步骤】
1、公式核心分析:假设公式放在C2,逆转“我爱EH”——我们希望,第1次运算得到最右一个字符T,第2次运算得到T&右边倒数2个字符E,第3次得到TE&右边倒数第3个字符“爱”……
即:
第1次运算C2得到的是LEFT(RIGHT(A2,1)),第2次运算得到LEFT(RIGHT(A2,1))&LEFT(RIGHT(A2,2)),第3次运算得到(RIGHT(A2,1))&LEFT(RIGHT(A2,2))&LEFT(RIGHT(A2,3))。注意,这里的1、2、3是一个需要的变量。
与此同时,C2单元格的字符数也随之变化为1、2、3……那么我们就可以利用这个特性,“循环引用”C2自身的字符长度LEN(C2)
因此,在C2输入-
- =IF(D$1,C2&LEFT(RIGHT(A2,1+LEN(C2))),"")
复制代码 注意:D1是启动开关。确保公式输入过程不会有乱七八糟的东西出现
输入完毕,按F9不放——居然成功了一半:得到“HE爱我我我我我我我我我我我我我我我我我我我……”
哈哈,故意甩个破绽,绕个圈子。思路一转:问题出在LEFT(RIGHT())最终一直在取第一个字符。那么改过来:-
- =IF(D$1,C2&RIGHT(LEFT(A2,LEN(A2)-LEN(C2))),"")
复制代码 在D1输入1,按F9,终于成功!
2、有了启动开关,LEN(C2)+1实际上也是一个计数器,但不此题不好用而已,同理,LEN(A2)-LEN(C2)也可以视为计数器。那么,是否非要按F9呢,岂不是小米加半自动步枪。
此时,设置迭代次数为100(假设A列需逆序反转的文本不超过100字),清空D1,在E1输入=E1+1,然后在D1输入1启动,看看,奇迹发生了,E1跟公式一点关系也没有,却乖乖地帮你按了100次的F9。
这一个简单的【循环引用】之逆序返回字符串的东东就这么做成了(见附件)
你掌握了吗?去找点儿东西来试验一下,别忘了把应用的案例发到社区中来分享哦! |
|