Функция обрезки Excel удаляет пробелы в середине текста - это было неожиданно (?) - PullRequest
0 голосов
/ 27 февраля 2019

Функция обрезки Excel удаляет пробелы в середине текста - это было неожиданно (?), То есть я думал, что обрезка Excel предназначена для обрезки начальных и конечных пробелов.например, значение ячейки = Trim («Last Obs Resp») становится значением «Last Obs Resp»

Конечно, Microsoft документирует это следующим образом: 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

1 Ответ

0 голосов
/ 27 февраля 2019

Создайте UDF, который использует версию Trim VBA, которая не касается внутренних пространств.Только удаляя начальные и конечные пробелы

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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...