Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Сопоставление массивов. Обманываем формулы
 
Доброго времени суток.
И опять мега проблемы с сопоставлением массивов.

Имеем массивы

Удалять цифры и тд это не вариант) так как все на них и опирается

А вот из раздела фантастики наверное.
Возможно ли сразу делать виртуальную замену.
например имеем слово кокос
во втором массиве имеем слово кокṣ
ṣ = ос (вариаций тоже много)
то есть при сопоставлении
кокос = кокṣ

И конечно же все это должно работать с диакритикой.

Спасибо заранее, за терпение все это прочитать.
Изменено: Kreol2013 - 9 Май 2013 15:44:23
 
пристрелите меня, если я чего-нибудь понял  :(
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Для проблемы 2: Смотрите в сторону макросов, а из них в сторону регулярных выражений. Если я хоть что-то хоть как-то понял(основывался на "кокs")

По первой проблеме понял ровно столько же, сколько ikki. Хотя не сильно вдумывался.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Эх... распишу 1-ю часть.

Сложно расписывать не имея таблиц.
Но с другой стороны в файле было все прописано.
Постараюсь еще раз, чтобы сильно не запутывать

Имеем ячейку со словом 1add если мы будем сопостоявлять его с другим массивом через формулу, где он есть такой же с 1-кой, то получим
Код
КолонкаА КолонкаБ
   1add         1add 


Если же во втором массиве будет просто add то соответствия мы не получим
Код
КолонкаА КолонкаБ
   1add         сравниваем с add 


Вот и спрашиваю как обойти эту 1-ку программно:
Код
КолонкаА КолонкаБ
   1add         add 


Добавлять 1-ки самому не выход, слишком много и неправильно.

Тоесть другими словами алгоритм:
1) найти нармальное соответствие,
2) если его нет то проверить с 1-кой и другими числами.

Если опять непонятно укажите где именно. Или как написать.
 
Большую часть совпадений можно найти так:
=ИНДЕКС(Лист2!$A$1:$A$3465;ПОИСКПОЗ("*"&ПСТР(A2;2;9);Лист2!$A$1:$A$3465;0))
Хотя непонятно почему для "2aj" должно притянуться "aj". Я такого значения на листе 2 вообще не нашел.

а вот насчет "tarp"="tṛp" - это уже без регулярок и прочих танцев с бубном не получится.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist пишет:
Большую часть совпадений можно найти так:
Большое спасибо.
Действительно варьируя количеством замен можно найти больше чем прежде, однако при  этом мусора попадает больше чем надо.

В файле отметил зеленым - то что подходит 100%
желтым - что имеет схожий корень, но никак не подходит в данном контексте,
то есть для 1-к могут подходить слова с 1-й или без нее
1as = 1as = as ≠ kas ≠ vas ≠ kvas ≠ 2as
для 2-к двойки
2as = 2as = 2*as ≠ 1as ≠ as ≠ 3as
и тд
красным, то что совсем не попало.

Конечно если варианта лучше нет, то буду обрабатывать, но возможно найдется более подкрученная формулировка.
Индекс также сольно получается зависит от расстановки ячеек,
если например нужно найти 1as а первый на пути подстановки будет стоять 3 as то в сравнении мы так и получим 3as

В файле 2 полных списка для сравнения
Страницы: 1
Читают тему (гостей: 1)