Эта задача не подходит для Excel, отчасти потому, что SEARCH
и FIND
работают только слева направо и находят только первый экземпляр. Тем не менее, вы не можете надеяться получить идеальный результат от любого автоматизированного решения и можете быть готовы принять плохое приближение к чему-то относительно простому - т.е. это ваш выбор, сколько усилий вы потратите на кодирование, а не на проверку человеком. .
Для начала я предлагаю создать таблицу поиска из вашего второго листа с именами first_name, initial, last_name и first_name, last_name, указывающими на значения, которые у вас есть в ColumnF. В первом случае вы можете захотеть объединить что-то вроде "inc Initial" со значением ColumnF, чтобы указать более близкое совпадение, чем без совпадения с начальным.
Тогда я предлагаю скопировать столбец A вашего первого листа в столбец B и удалить ESQ из столбца B (по крайней мере, для фамилий, не запускающих ESQ!). В США насчитывается около 40 000 человек, чьи фамилии начинаются с «Esq», но, возможно, будет проще разобраться с ними как с отдельной проблемой, чем отказаться от возможности «игнорировать» Esquires.
Я бы предложил ввести следующее в ColumnsC:N соответственно (при условии, что Row1 является меткой данных): =FIND(" ",B2)
=IF(ISERROR(FIND(",",B2)),0,FIND(",",B2))
=LEN(B2)
=LEFT(B2,C2)
=IF(C2>0,MID(B2,C2+1,E2-C2+1),0)
=LEFT(G2,1)
=IF(ISERROR(FIND(" ",G2)),0,FIND(" ",G2))
=MID(G2,I2+1,E2-C2)
=IF(ISERROR(FIND(",",J2)),IF(ISERROR(FIND(".",J2)),0,FIND(".",J2)),FIND(",",J2))
=IF(K2=0,J2,LEFT(J2,K2-1))
=IF(I2>0,F2&H2&" "&L2,F2&L2)
=VLOOKUP(M2,array,2,FALSE)
, где «массив» — это таблица поиска в Sheet2.
Из вашей выборки из 13, которые должны дать вам «совпадения» для 8, причем 5 из них включают совпадение среднего инициала. Если недостаточно хорошо, просто продолжайте добавлять формулы в столбцы справа, пока не достигнете точки компромисса (например, хотя ваш 13-й пример является одним из 5 выше, которые не совпадают, он подойдет, если в отдельном столбце вы не объединили букву «P» - с тем фактом, что она совпала в таком другом столбце, это признак того, что она не была так близка к совпадению, как 8 других). И вы могли бы относиться к ATTY так же, как к ESQ, хотя в США более 100 000 человек с этой фамилией.
В качестве альтернативы вы можете предложить вознаграждение или попробовать freelancer.com, где, как я ожидаю, вы найдете множество людей, довольных небольшой суммой, которые предоставят код, который будет не только гораздо более избирательным, но, вероятно, даст вам «оценку», чтобы указать, как вероятно, любое «совпадение».
person
pnuts
schedule
10.07.2012
SEARCH
проверить, существуют ли термины на другом листе в той или иной строке данных, но вам придется решить, достаточно ли этого для положительной идентификации целевых данных. В этой заметке вы предоставили только те данные, которые, как вы ожидаете, будут совпадать, а не данные, которые не должны совпадать. Таким образом, даже если вы получите здесь решение, специфичное для г-на Хертца, оно может оказаться неприемлемым для ваших реальных данных. - person andy holaday   schedule 05.05.2012