2016-03-21 3 views
0

Я в основном унаследовал базу данных, в которой данные довольно перепутались. Мне нужно начать очищать его, что я делаю в Excel.excel найти строку, а затем IF заявление

Данные имеют код, который затем использовался в других ячейках, если он не должен иметь. В основном я хочу написать VB, который будет выглядеть на CellB и сравнить первый раздел текста между [ and . с текстом, найденным в CellA.

Если они такие же, я хочу удалить текст из CellB, если это не я хочу, чтобы он просто оставил CellB как есть.

Пример, приведенный ниже, является самым простым в том, что мне нужно сделать это при загрузке столбцов с множеством разных разделов текста, единственной константой является то, что код, который мне нужно проверить, будет находиться между первым [ and . во всех столбцах.

Я пробовал написать несколько VB, используя инструкцию MID, но не могу ее повесить.

Любые идеи?

Before 
A   B 
M548 [M548.PLANNED] 
M513 [M503.PLANNED] 
M503 [M503.PLANNED] 

After 
A   B 
M548 [.PLANNED] 
M513 [M503.PLANNED] 
M503 [.PLANNED] 
+1

простое решение заключается в использовании Найти и Заменить, чтобы удалить «[», текст в колонках, разграниченных, а затем сравнить две строки, чтобы увидеть, если они совпадают «». Затем вы можете объединить его вместе. – radiocontrolled

+0

1) Добро пожаловать в SO 2) Это действительно связано с 'vb.net'. Если нет, удалите тег 3) формулу для извлечения данных между '[' и '.' is' = MID (B2,2, FIND (".", B2) -2) '4) Наконец, если вам нужна помощь с фактическим VBA, вам нужно будет показать свои усилия до сих пор и где они терпят неудачу. См. [Как спросить] (http://stackoverflow.com/help/how-to-ask). –

+0

извините Убрал VB.net, который был предложенным тегом, я только что увидел VB и щелкнул извините. –

ответ

2

Если каждая часть данных столбца B находится в таком формате, это может работать:

=IF(MID(B4,2,4)=A4,"[.PLANNED]",B4) 

Вот картинка для дополнительного уточнения:

Image Link 1

Вы бы тогда ' Вставьте значения во второй столбец, чтобы заменить текущие данные.

+0

Thats brilliant –

+0

Большое спасибо, я думаю, я могу сделать эту работу для всех моих других столбцов. Еще раз спасибо –

+0

Проголосовали за усилия! ;) – Ian

0

Если ваши данные в том же самом точном формате, как и в [а затем 4-х символов вы можете просто использовать следующую формулу в столбце C.

=IF(MID(B2,2,4)=A2,CONCATENATE("[",MID(B2,SEARCH(".",B2),100)),B2) 
+0

Спасибо, что помогает –

0

простой замены будет работать, если значение A происходит только один раз в B:

Sub cleanData() 
    For i = 1 To 3 
     Cells(i, 2).Value = Replace(Cells(i, 2).Value, Cells(i, 1).Value, "") 
    Next 
End Sub 
Смежные вопросы