VBA Excel: поиск множественных значений и возврат соответствующего значения в следующую ячейку - PullRequest
0 голосов
/ 16 декабря 2011

Этот вопрос соответствует этой ссылке VBA Excel: извлечение данных в определенном формате из файлов CSV

но у меня здесь другая проблема.

В файле CVS, в столбце C полной информации о таких прикладных программах, как Windows XP, Adobe, Office, .net Framework, vlc и т. Д. Итак, в столбце C у меня есть около> 1800 строк.

Я хочу найти Windows XP, Adobe, IBM, VLC и т. Д. В каждой и каждой ячейке столбца или во всем столбце, если есть совпадение, затем вставьте значение совпадения в следующую ячейку столбца.

Например, если «Adobe» найден, вставьте «Adobe» в следующую ячейку col.

Как мне выполнить, используя ìf или Lookup, или есть какой-нибудь лучший способ?

if(FIND("Adobe",C:C),"TRUE","FALSE")

=Lookup(Windows XP, C:C) would return "Windows XP" =Lookup(Adobe, C:C) would return "Adobe" =Lookup(IBM, C:C) would return "IBM "

Я загрузил файл CVS здесь !!

http://uploadmb.com/freeuploadservice.php?uploadmbID=1324042163&srv=www&filename=5200.csv

Ответы [ 2 ]

1 голос
/ 16 декабря 2011

Вы можете использовать формулу в столбце D для проверки «Windows XP» или любых данных, которые вы пытаетесь найти:

=IF(ISERROR(FIND("Windows XP",C2)),"","Windows XP")

Джесси

0 голосов
/ 19 декабря 2011
Sub AddFormula()
    Dim lLR As Long
    lLR = Range("A" & Rows.Count).End(xlUp).Row
    Range("D2").FormulaArray = "=INDEX($E$2:$E$15,MATCH(1,--ISNUMBER(SEARCH($E$2:$E$15,$C2,1)),0),1)"
    Range("D2").AutoFill Destination:=Range("D2:D" & lLR)

Этот код формулы работает нормально.

...