У меня есть список из 1000 различных меток, и мне нужно убрать пробел между числом и мг. Иногда пространство присутствует, а иногда нет. Положение текста "mg" не одинаково в каждой ячейке (перед ним может быть четыре слова или только одно), поэтому я предполагаю, что код vba будет самым простым вариантом.

Пример части списка:

IBUPROFEN 5 MG TAB
IBUPROFEN 5MG TAB
IBUPROFEN 5 MG TAB
IBUPROFEN 5MG TAB
ESTRADIOL 0.5 MG TAB
ESTRADIOL 0.5 MG TAB
ESTRADIOL 0.5MG TAB
ESTRADIOL 0.5MG TAB
ESTRADIOL 0.5MG TAB
ATORVASTATIN TAB 20MG
ATORVASTATIN TAB 20 MG
ATORVASTATIN TAB 20 MG
ATORVASTATIN TAB 20 MG

2 ответа2

1

Я сомневаюсь, что текст "MG" появляется где угодно, кроме случаев, которые вы хотите заменить. Mganga (колдун) возможен, но я действительно сомневаюсь, что он там. Если это так, вы можете просто найти + заменить, чтобы заменить "MG" на "MG".

Если есть какие- либо случаи, когда у вас есть "MG" и вы не хотите "MG", то ответ Брайана является более полным.

0

Предполагая, что "MG" всегда имеет следующий пробел:

Если вы можете быть уверены, что ваш тест всегда в верхнем регистре, должно работать следующее:

=SUBSTITUTE(A1," MG ","MG ")

Если вы согласны с преобразованием любого текста в нижнем регистре в верхний регистр, будет работать следующее:

=SUBSTITUTE(UPPER(A1)," MG ","MG ")

В противном случае вам потребуется вложить вызовы SUBSTITUTE для обработки всех возможных сценариев верхнего / нижнего регистра:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," MG ","MG ")," mg ","mg ")," Mg ","Mg ")," mG ","mG ")

Если возможно, что за одним или несколькими вхождениями 'MG' не будет пробела, будет сложно сделать то, что вы хотите. Использование VBA и регулярных выражений почти наверняка будет необходимо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .