Excel公式求助:实现文本按指定字数截断拆分且不拆分单词
Excel文本截断与拆分解决方案
列B:最多155字符的非单词拆分截断
直接使用以下公式(假设数据从A2开始,下拉填充即可):
=IF(LEN(A2)<=155, A2, TRIM(LEFT(A2, FIND("~", SUBSTITUTE(LEFT(A2,155), " ", "~", LEN(LEFT(A2,155))-LEN(SUBSTITUTE(LEFT(A2,155), " ", "")))))))
公式逻辑:
- 先通过
LEN(A2)<=155判断原文本长度,符合条件直接返回A2内容 - 文本长度超过155时,先截取A2前155字符:
LEFT(A2,155) - 用
SUBSTITUTE把这段截取文本里的最后一个空格替换为~(选文本中不会出现的特殊字符即可) - 用
FIND定位这个~的位置,也就是155字符范围内最后一个单词的结束点 - 用
LEFT截断到该位置,最后通过TRIM去除末尾可能残留的空格
列C与D:拆分至200字符内的分段
列C公式(A2开始):
=IF(LEN(A2)<=200, A2, TRIM(LEFT(A2, FIND("~", SUBSTITUTE(LEFT(A2,200), " ", "~", LEN(LEFT(A2,200))-LEN(SUBSTITUTE(LEFT(A2,200), " ", "")))))))
列D公式(A2开始):
=IF(LEN(A2)<=200, "", TRIM(MID(A2, FIND("~", SUBSTITUTE(LEFT(A2,200), " ", "~", LEN(LEFT(A2,200))-LEN(SUBSTITUTE(LEFT(A2,200), " ", ""))))+1, LEN(A2))))
公式逻辑:
- 列C的逻辑和列B一致,仅将截断上限从155替换为200
- 列D先判断文本长度,不超过200则返回空值;超过时,找到列C的截断位置+1,用
MID提取剩余文本,最后通过TRIM去除开头的空格
注意事项:
- 如果你的文本中包含
~,可以将公式里的~替换为其他不常用的特殊字符(比如|或^) - 所有公式下拉填充到需要处理的行即可
内容的提问来源于stack exchange,提问作者silentrock
相关产品推荐
相关产品推荐

