相当于VBA TRIM函数Excel和工作表函数

ste*_*cec 1 excel vba trim excel-vba

我知道TRIM函数作为工作表函数和VBA函数返回不同的结果:

  • 工作表函数从文本字符串中删除所有空格,除了单词之间的单个空格
  • 而VBA函数只删除前导和尾随空格.

有一种方法可以使用工作表函数模拟VBA行为,没有自定义VBA函数?

lor*_*i_m 5

仅使用工作表函数,您可以尝试使用A1中的文本字符串:

=REPLACE(LEFT(A1,MATCH(2,1/(MID(A1,MMULT(ROW(INDIRECT("1:"&LEN(A1))),1),1)<>" "))),1,FIND(LEFT(TRIM(A1)),A1)-1,"")
Run Code Online (Sandbox Code Playgroud)

由于缺少字符串反向工作表函数,查找不是空格的最后一个字符的位置并不简单.

如果您不想使用VBA,那么使用带有选项的Data | Text to Columns会更简单:

  1. 固定宽度
  2. 没有断线
  3. 目的地:B1

这也删除了前导和尾随空格.

  • @andyholaday:谢谢,是的,这正是意图.令人惊讶的是,尽管有额外的函数调用,但MMULT版本重新计算的速度是Excel 2010中等效数组公式的两倍(通过复制许多单元格进行测试 - 尽管Excel 2003中似乎没有任何差别). (2认同)