Excel: дефисы и пробелы

Программное обеспечение: Эксель 2010

У моего клиента есть биржевые номера во всевозможных форматах, и мне нужно иметь возможность правильно отформатировать все коды.

Биржевой код может быть

EY_20-DJ  -           

то есть 2 пробела перед дефисом и до 20 пробелов после дефиса. Суть в том, что дефис не должен двигаться. Только имейте в виду, что НЕ ВСЕ стоковые товары выглядят так, только некоторые. В основном ТОЛЬКО конечные пробелы должны быть удалены, НИКАКОЙ ДОПОЛНИТЕЛЬНЫЙ интервал между ними не должен быть «исправлен».

Я попробовал TRIM, который уменьшает 2 пробела перед дефисом до 1, а CLEAN ничего не делает в этом отношении.

Можно просто оставить это в формуле или нам нужно пойти макро-маршрутом?

Любые советы приветствуются!


person hermanvn    schedule 19.06.2012    source источник


Ответы (2)


Вам следует попробовать Asap Utilities: http://www.asap-utilities.com/ макросы, одним из которых является удаление пробелов между или после того, как я использовал его во многих упражнениях Excel, и он работает как шарм

person Daniël Tulp    schedule 19.06.2012
comment
Спасибо, Даниэль, но это должно выполняться как часть автоматического отчета. Кстати, я большой поклонник ASAP Utilities! - person hermanvn; 19.06.2012
comment
вы также можете вызывать функции макросов из своего собственного кода, но, возможно, вы не хотите, чтобы имена постоянно менялись - person Daniël Tulp; 19.06.2012

Эта определяемая пользователем функция сделает свое дело:

Function RTrimExcel(s As String) As String
    RTrimExcel = Rtrim(s)
End Function

Это просто обертка для функции Rtrim VBA, которая делает именно то, что вы просите. Вызовите его из Excel как =RTrimExcel(A1):

введите здесь описание изображения

Обратите внимание, как я подчеркиваю текст, чтобы сделать видимыми конечные пробелы.

Обратите внимание, что это не макрос; это определяемая пользователем функция. Вы подразумеваете, что предпочитаете не использовать макросы, но на самом деле, если вы хотите что-то совсем без VBA, то дайте нам знать... Это потребует еще немного размышлений!

ИЗМЕНИТЬ

Если ваш последний непробельный символ всегда -, вы можете сделать это, используя формулу рабочего листа, подобную этой:

=LEFT(A1,FIND(CHAR(1),
    SUBSTITUTE(A1,$B$3,CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,$B$3,"")))))

Обратите внимание, что я храню - в ячейке B3, поэтому его легко изменить.

введите здесь описание изображения

person Jean-François Corbett    schedule 19.06.2012