2013-08-27 6 views
1

Мне было интересно, может ли кто-нибудь помочь мне с предложениями по очистке данных в листе распространения Excel.Excel макрос для очистки данных для удаления

У меня очень длинный список, который мне нужно пройти. В настоящее время я копирую список данных (чтобы получить имена кучу интересующих препаратов) в Excel. Но проблема в том, что каждая строка данных имеет постороннюю информацию, которая мне не нужна.

Например:

Fluoride Updated 7/10/13 
Acetaminophen Updated 8/10/13 

Я хотел бы создать макрос, который сохраняет только первый текст (в приведенном выше примере будучи фторид и ацетаминофен) и удалить все остальное.

Любые предложения? Я пробовал метод «Найти» и «Заменить все» до сих пор, но, разумеется, поскольку даты отличаются для каждого лекарства, это не реально.

Любая помощь будет оценена по достоинству!

Спасибо!

+1

Если имена ваших лекарств не имеют пробелов, вы можете использовать 'Split (drugName," ")' и хранить только первый элемент результирующего массива. –

ответ

1

Поскольку вы, кажется, в по крайней мере, немного гибкий подход к использованию макроса, возможно, использует формулы для большей гибкости для «угловых случаев». например:

=LEFT(A1,FIND(" ",A1)) 

в случае (вряд ли?), где все названия лекарств не содержат пробелов, или, возможно, более перспективным:

=LEFT(A1,FIND("Updated",A1)-2) 

, где все записи включают в себя «Обновление».

Сортировка результатов должна указывать, где синтаксический анализ не подходит и позволяет выполнить дальнейшую корректировку.

+0

Отлично. Спасибо! – user2722253

+0

+1 для использования формулы –

0

Самый простой способ будет создать макрос, который делает текст столбцам с пробелом в качестве разделителя

Это предполагает, что данные в первом столбце Лист1

Dim shtWorking As Worksheet 
Set shtWorking = Worksheets("Sheet1") 
shtWorking.Columns(1).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ 
    TextQualifier:=xlNone, ConsecutiveDelimiter:=True, Tab:=False, Semicolon _ 
    :=False, Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(_ 
    Array(1, 2), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True 
+0

Спасибо за ваш ответ! – user2722253

Смежные вопросы