Доброго дня. Имеется колонка1, содержащая ФИО+должность, должность+ФИО. Фио могут содержать инициалы, написаны полностью. И имеется колонка2 с ФИО полностью. Нужно на против каждого значения в колонке1 найти фио из колонки2, подкинете идею, как это сделать? Макрос/формула, не важно.
Доброго дня. Имеется колонка1, содержащая ФИО+должность, должность+ФИО. Фио могут содержать инициалы, написаны полностью. И имеется колонка2 с ФИО полностью. Нужно на против каждого значения в колонке1 найти фио из колонки2, подкинете идею, как это сделать? Макрос/формула, не важно.lFJl
lFJl, давайте сразу полнее примеры. Вариант Pelena, для Вашего примера - идеален, но если будут однофамильцы - даст сбой. (см. пример)
Как вариант УДФ-ка - будет работать с однофамильцами: [vba]
Код
Option Compare Text Function d(r As Range, r1 As Range) Dim C As Range, M, I% M = Split(Trim(Replace(r, ".", ". ")), " ") For I = 0 To UBound(M) For Each C In r1 If InStr(1, C, M(I)) Then If (C) Like "*" & M(I) & "*" & Replace(M(I + 1), ".", "") & "*" & Replace(M(I + 2), ".", "") & "*" Then d = C: Exit Function End If Next Next End Function
[/vba]
lFJl, давайте сразу полнее примеры. Вариант Pelena, для Вашего примера - идеален, но если будут однофамильцы - даст сбой. (см. пример)
Как вариант УДФ-ка - будет работать с однофамильцами: [vba]
Код
Option Compare Text Function d(r As Range, r1 As Range) Dim C As Range, M, I% M = Split(Trim(Replace(r, ".", ". ")), " ") For I = 0 To UBound(M) For Each C In r1 If InStr(1, C, M(I)) Then If (C) Like "*" & M(I) & "*" & Replace(M(I + 1), ".", "") & "*" & Replace(M(I + 2), ".", "") & "*" Then d = C: Exit Function End If Next Next End Function
Да, есть. Но попробую хоть так пройтись. Хотел макросом пройтись, каждую ячейку с базой ФИО сверить, и в случае положительного результата - записать значение, но чет пока туговато
Да, есть. Но попробую хоть так пройтись. Хотел макросом пройтись, каждую ячейку с базой ФИО сверить, и в случае положительного результата - записать значение, но чет пока туговатоlFJl
Как вариант УДФ-ка - будет работать с однофамильцами:
Не будет Начальник 4 Сидоров П.С.| Сидоров Сидор Сидорович| Сидоров Павел Сидорович| Сидоров Павел Сидорович Начальник 5 Сидоров П.С.| Сидоров Сидор Сидорович| Сидоров Петр Сидорович | Сидоров Павел Сидорович
Мы можем определить, что Начальник 4, это Сидоров Петр Сидорович, а Начальник 5, это Сидоров Павел Сидорович, только потому, что это у нас это где-то на "корочке" записано. Чтобы Excel мог их отличать, ему тоже надо это на "корочке" записать. А ежели они оба Пётры, только один лысый, а другой с бородой, то совсем капут!
Как вариант УДФ-ка - будет работать с однофамильцами:
Не будет Начальник 4 Сидоров П.С.| Сидоров Сидор Сидорович| Сидоров Павел Сидорович| Сидоров Павел Сидорович Начальник 5 Сидоров П.С.| Сидоров Сидор Сидорович| Сидоров Петр Сидорович | Сидоров Павел Сидорович
Мы можем определить, что Начальник 4, это Сидоров Петр Сидорович, а Начальник 5, это Сидоров Павел Сидорович, только потому, что это у нас это где-то на "корочке" записано. Чтобы Excel мог их отличать, ему тоже надо это на "корочке" записать. А ежели они оба Пётры, только один лысый, а другой с бородой, то совсем капут! RAN
Быть или не быть, вот в чем загвоздка!
Сообщение отредактировал RAN - Понедельник, 22.08.2016, 22:08
то Сидоров Петр Сидорович, а Начальник 5, это Сидоров Павел Сидорович, только потому,
я имел ввиду однофамильцев а не полностью одинаковых П.С. . таких конечно - только по "корочке" и определишь. Но их можно легко выделить УФ и пройтись глазками со своей корочкой и перечитать. Думаю будет не много полных совпадений, .
то Сидоров Петр Сидорович, а Начальник 5, это Сидоров Павел Сидорович, только потому,
я имел ввиду однофамильцев а не полностью одинаковых П.С. . таких конечно - только по "корочке" и определишь. Но их можно легко выделить УФ и пройтись глазками со своей корочкой и перечитать. Думаю будет не много полных совпадений, .
Сначала искал полное совпадение ФИО, потом инициалы, и результат меня устроил. Из неудобств неудобно было время работы(5500 строк в колонке 1 и 3500 в колонке 2) SLAVICK, Функцию проверил(в колонке 1 оставил 100 строк) Результат так тож нормальный :) Но поскольку уже решено формулой, переделывать не стал.
Сначала искал полное совпадение ФИО, потом инициалы, и результат меня устроил. Из неудобств неудобно было время работы(5500 строк в колонке 1 и 3500 в колонке 2) SLAVICK, Функцию проверил(в колонке 1 оставил 100 строк) Результат так тож нормальный :) Но поскольку уже решено формулой, переделывать не стал.