首页 > 解决方案 > excel 修剪功能正在删除文本中间的空格 - 这是出乎意料的(?)

问题描述

excel 修剪功能正在删除文本中间的空格 - 这是出乎意料的(?),即我认为 excel 修剪是用于修剪前导和尾随空格。例如 =Trim("Last Obs Resp") 的单元格值变为 "Last Obs Resp" 的值

果然微软这样记录:https: //support.office.com/en-gb/article/trim-function-410388fa-c5df-49c6-b16c-9e5630b479f9

我习惯了只删除前导和尾随空格的 Oracle 数据库修剪功能。 https://www.techonthenet.com/oracle/functions/trim.php

excel修剪功能总是这样吗?

Excel 没有 ltrim 和 rtrim 函数.. 即我做不到: =RTRIM(Ltrim("Last Obs Resp"))

我想知道当我不想删除字符串中间的双倍空格时,如何在 Excel 中实现等价?

此页面记录 VBA 修剪功能: https ://www.techonthenet.com/excel/formulas/trim.php

标签: excel-formula

解决方案


创建一个使用 VBA 版本的不触及内部空间的修剪的 UDF。仅删除前导和尾随空格

Function MyTrim(str As String) As String
    MyTrim = Trim(str)
End Function

然后你可以从工作表中调用它:

=MyTrim(A1)

如果你想要一个公式来做到这一点:

=MID(LEFT(A1,AGGREGATE(14,6,ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)))/(MID(A1,ROW($XFD$1:INDEX(XFD:XFD,LEN(A1))),1)<>" "),1)),AGGREGATE(15,6,ROW($XFD$1:INDEX(XFD:XFD,LEN(A1)))/(MID(A1,ROW($XFD$1:INDEX(XFD:XFD,LEN(A1))),1)<>" "),1),999)

在此处输入图像描述


推荐阅读