作者:绿色风
分类:
时间:2022-08-18
浏览:155
楼主 小吴同学 |
Q:如何将字符逆转过来,如将“你好我是小吴同学”显示为“学同吴小是我好你”
A:通过一下几种方法均可以实现逆转
1、 基础技巧:“文本竖排”+“自动换行” 选中单元格,右键设置单元格,在“对齐”选项卡中勾选“自动换行”,并点击“方向”中的“文本”
使用这种方法只是显示的时候逆转,实际的文本并没有逆转过来。
2、 VBA:使用StrReverse函数- Function getreverse(rng As Range)
- getreverse = StrReverse(rng)
- End Function
3、 SQL:使用StrReverse函数- Select strreverse(姓名) as 字符逆转 from [sheet1$A:B]
4、 函数:循环引用 A1是源字符,在“EXCEL选项”—“公式”中勾选“迭代计算”,再在B1中输入以下公式- =T(B1)&RIGHT(LEFT(A1,LEN(A1)-LEN(T(B1))))
再按一会F9即可 公式解释: b1的初始值为空,在输入公式的时候,执行第一次计算,过程是:- t(b1) = ""
- len(a1)-len(t(b1))=8
- right(left(a1,8))="学"
- T(B1)&RIGHT(LEFT(A1,LEN(A1)-LEN(T(B1)))) = "学"
此时b1的值已经变为了“学”,在按第二次f9的时候,再执行一次循环计算- t(b1) = "学"
- len(a1)-len(t(b1))=7
- right(left(a1,7))="同"
- T(B1)&RIGHT(LEFT(A1,LEN(A1)-LEN(T(B1)))) = "学同"
|
2楼 小吴同学 |
以此类推,按了7次之后会把8个字符全部显示出来“学同吴小是我好你”,如果进行按f9(第8次,第9次,第10次,,)- t(b1) = "学同吴小是我好你"
- len(a1)-len(t(b1))=0
- right(left(a1,7))=""
所以,最终结果还是- T(B1)&RIGHT(LEFT(A1,LEN(A1)-LEN(T(B1)))) = "学同吴小是我好你"
这里解释一下为什么b1要加个t() T()函数在这里的作用是将空单元格默认的数值“0”转化“”,如果不使用T()进行转化的话,b1的初始值是将是0,第一次计算的过程将变成- b1 = 0
- len(a1)-len(b1)=7
- right(left(a1,7))="同"
也就是说,第一次计算的结果会变成- B1&RIGHT(LEFT(A1,LEN(A1)-LEN(B1))) = "0同"
|
3楼 yqcircle |
哈哈哈哈哈哈哈哈哈 |
4楼 twtgwygwy |
噶有难度的 |
5楼 xpm130 |
一个小玩意竟有这么多名堂.叹叹 |
6楼 CheryBTL |
很帅,收藏了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一