想在excel里把单元格里的文字反过来显示?超简单,直接在结果列输入公式 =textjoin("",true,mid(b5,sequence(len(b5),,len(b5),-1),1)) 就搞定。这次演示用的是microsoft 365版本的excel,例子里会把b列的原文倒序输出到c列,不管是姓名、编号、中文短句还是中英混合的文本,都能正常处理。
第一步:准备原文字列
先把所有需要倒序的内容都放到同一列,咱们例子里放在B5:B12的区域,右边的C列就专门放倒序后的结果。动手前最好先扫一眼单元格里有没有多余的空格——公式会把空格也当成普通字符一起倒转,原文前后带的多余空格很容易影响最终效果。

第二步:输入倒序公式
选中C5单元格,在顶部的公式栏输入 =TEXTJOIN("",TRUE,MID(B5,SEQUENCE(LEN(B5),,LEN(B5),-1),1))。这条公式的逻辑超好理解:先用 LEN(B5) 算出B5单元格里的文字总长度,再让 SEQUENCE 从最后一个字符的位置开始往前数,MID 顺着这个倒过来的位置挨个取单个字符,最后用 TEXTJOIN 把这些零散的字符拼回完整的文本。

第三步:查看首行结果
按一下回车,C5就会显示B5内容的倒序结果了。比如例子里的“手机电话”倒过来就变成“话电机手”,先核对下第一行,确认公式引用的是B5,别不小心点到标题行或者空白单元格。要是输完公式直接显示的是公式本身的文字,大概率是单元格之前被设成了文本格式,改成常规格式之后再重新确认下公式就好。

第四步:向下填充结果
把鼠标移到C5单元格右下角的填充柄上,按住往下拖到C12就行;嫌麻烦的话也可以直接双击填充柄,Excel会自动按照左侧现有数据的范围批量填充。填充完可以逐行扫一眼结果,比如“PHP中文网”倒过来就变成“网文中PHP”,不管是中文还是英文,都会按单个字符的顺序倒转。

公式语法和参数
这次用到的完整公式是这样的:
=TEXTJOIN("",TRUE,MID(B5,SEQUENCE(LEN(B5),,LEN(B5),-1),1))
| 函数或参数 | 作用 | 本例写法 |
|---|---|---|
TEXTJOIN(delimiter, ignore_empty, text1, ...) |
把多个文本片段连接起来 |
TEXTJOIN("",TRUE,...) 表示不加分隔符,忽略空值 |
MID(text, start_num, num_chars) |
从指定位置截取字符 |
MID(B5, 倒序位置, 1) 表示每次取 1 个字符 |
SEQUENCE(rows, [columns], [start], [step]) |
生成一组连续数字 |
SEQUENCE(LEN(B5),,LEN(B5),-1) 从文字长度开始,每次减 1 |
LEN(text) |
计算文本字符数 |
LEN(B5) 返回 B5 的长度 |
如果你用的是WPS或者旧版Excel,得先确认下软件支不支持 SEQUENCE 这个动态数组函数。要是不支持的话,可以换用传统的数组公式:
=TEXTJOIN("",TRUE,MID(B5,LEN(B5)-ROW(INDIRECT("1:"&LEN(B5)))+1,1))
旧版Excel输完这条公式后,可能需要按Ctrl+Shift+Enter组合键才能生效;Microsoft 365版本直接按回车就能出结果。
容易出错的地方
要是公式返回 #NAME? 报错,基本都是当前用的软件不认 TEXTJOIN 或者 SEQUENCE 函数,先查下自己的软件版本支不支持这两个函数。公式返回空白,大多是引用到了没内容的空单元格。结果里多出看不见的空位,一般是原文字前后自带空格,可以先用 TRIM(B5) 把普通空格清掉,再套进倒序公式里用。
想要把倒序出来的结果固定住的话,就选中C列的结果复制,右键选“选择性粘贴”里的“值”就行。之后就算删掉B列的原文,C列的内容也不会跟着变成错误值。
扩展示例:先去空格再倒序
如果你的原数据是从别的地方复制粘贴来的,建议直接换成这版公式:
=TEXTJOIN("",TRUE,MID(TRIM(B5),SEQUENCE(LEN(TRIM(B5)),,LEN(TRIM(B5)),-1),1))
它会先把B5前后的普通空格清理掉,再执行倒序操作。要注意的是,文字中间本身有意义的空格还是会保留,并且参与倒序,比如“Excel 公式”倒转之后会变成“式公 lecxE”,这是正常的计算结果哈。


















