Здравствуйте, уважаемые форумчане. Помогите, пожалуйста, решить такую задачу. Есть файл, в файле 2 столбца: В и С. Оба столбца содержат текстовую информацию. В ячейках столбца В содержатся полные названия продукции, состоящие из нескольких слов. В ячейках столбца С содержатся названия линий продаж. Мое задание: определить содержит ли каждое название продукции название линии продаж. Соответственно, мне нужно каждую ячейку столбца B сравнить во всем столбцом C, если хоть одно слово совпадает, то в столбце Е написать "правда", ну или как-то по-другому отметить. Файлик с примером прикрепила. Я пробовала разные функции, но ничего не получается, макрос тоже не получается.. Была бы вам очень благодарна за помощь, очень нужно!
Здравствуйте, уважаемые форумчане. Помогите, пожалуйста, решить такую задачу. Есть файл, в файле 2 столбца: В и С. Оба столбца содержат текстовую информацию. В ячейках столбца В содержатся полные названия продукции, состоящие из нескольких слов. В ячейках столбца С содержатся названия линий продаж. Мое задание: определить содержит ли каждое название продукции название линии продаж. Соответственно, мне нужно каждую ячейку столбца B сравнить во всем столбцом C, если хоть одно слово совпадает, то в столбце Е написать "правда", ну или как-то по-другому отметить. Файлик с примером прикрепила. Я пробовала разные функции, но ничего не получается, макрос тоже не получается.. Была бы вам очень благодарна за помощь, очень нужно!Viktoria2291
Viktoria2291, добрый день,Ваша тема продублирована на дружественном форуме,вот мой вариант макроса здесь,используйте,например WinRaR,кнопка use1
[vba]
Код
Sub replica2(r As Range) Dim i&, x, c As Range For Each c In r: c = Trim(c): Next x = Range("B4:E" & Range("B" & Rows.Count).End(xlUp).Row).Value With CreateObject("vbscript.regexp"): .Pattern = Join(Application.Transpose(r), "|") For i = 1 To UBound(x) If .test(x(i, 1)) Then x(i, 4) = True Else x(i, 4) = False Next End With Range("B4").Resize(UBound(x), UBound(x, 2)).Value = x End Sub
[/vba] [vba]
Код
Sub use1() replica2 Range("C4:C" & Range("C" & Rows.Count).End(xlUp).Row) End Sub
[/vba]
Viktoria2291, добрый день,Ваша тема продублирована на дружественном форуме,вот мой вариант макроса здесь,используйте,например WinRaR,кнопка use1
[vba]
Код
Sub replica2(r As Range) Dim i&, x, c As Range For Each c In r: c = Trim(c): Next x = Range("B4:E" & Range("B" & Rows.Count).End(xlUp).Row).Value With CreateObject("vbscript.regexp"): .Pattern = Join(Application.Transpose(r), "|") For i = 1 To UBound(x) If .test(x(i, 1)) Then x(i, 4) = True Else x(i, 4) = False Next End With Range("B4").Resize(UBound(x), UBound(x, 2)).Value = x End Sub
[/vba] [vba]
Код
Sub use1() replica2 Range("C4:C" & Range("C" & Rows.Count).End(xlUp).Row) End Sub