2015-06-12 3 views
0

Привет, я надеюсь, что кто-то здесь может мне помочь.Соответствие Excel слов

У меня есть некоторые довольно неопрятные данные, и я ищу, чтобы выполнить функцию VLOOKUP/INDEX MATCH, но не повезло, поскольку данные довольно неопрятные.

Итак, в основном у меня есть список имен и сайты на одном листе.

Затем второй лист с просто списком имен, который я хочу заполнить сайтами с другого листа, чтобы сократить рабочую нагрузку.

Проблема: названия компаний не указаны в правильном формате (например, для сокращенных пространств компании используются вместо .s). Другим примером является наличие нескольких филиалов компании.

Так таблица 1 будет

Название компании:
Сайт: www.company.com

Рабочий лист 2 будет: Название компании: (UK) Название компании: (США)

Если у обоих должен быть тот же веб-сайт, что и на листе 1, существует ли какой-либо возможный способ сделать это. Я попробовал VLOOKUP и INDEX/MATCH и установил условие TRUE, но он не вернул хорошие результаты.

Заранее благодарим за любые советы.

ответ

1

Нечеткое соответствие - это далеко не точная наука, особенно когда речь идет о встроенных функциях Excel.

Если бы я рекомендовал самую безопасную ставку - я бы сказал, создайте обнуленный список значений в листе 2 и создайте сопоставимое значение для первого. Это, безусловно, было бы самым точным (но требующим много времени и в зависимости от того, сколько раз вы будете использовать эти значения)

В качестве альтернативы, есть «нечеткие совпадения» из различных источников, которые можно использовать. Одним из известных является «Jaro Winkler Distance»: версию которого можно найти по этой ссылке: http://garonfolo.dk/herbert/2013/07/excel-vba-jaro-winkler-distance-fuzzy-matching/

1

Не видя данных, нельзя сказать наверняка, но вот несколько вариантов.
1. Вы можете использовать MATCH("*Company*",Sheets1!A:A,0).
2. Если всегда есть один и тот же шаблон, вы можете создать вспомогательную колонку, используя LEFT, RIGHT и MID для извлечения названия компании.
3. VBA предлагает некоторую поддержку регулярных выражений, используя Set reg = CreateObject("VBScript.RegExp") Если вы знаете, как использовать регулярные выражения, вы можете написать макрос, чтобы соответствовать на его основе.

Смежные вопросы