Страницы: 1
RSS
Поячеечное сравнение двух таблиц
 
Доброго времени суток!
Есть 2 разные таблицы с синонимами.
Задача: эти две таблицы сравнить поячеечно и если 2 ячейки совпали, то  строки с этими ячейками объединить в одну строку и положить в 3 таблицу,  а если нет совпадений, то просто добавить новую строку.
Пример:
Таблица1
гарячий~горячий~горячии
легкий~лехкий~лехкии
мешать~мишать
крутить

Таблица2
лёхкий~лёгкий~легкий
убирать
горячий~горячие

Таблица 3
гарячий~горячий~горячии~горячие
легкий~лехкий~лехкии~лёхкий~лёгкий
мешать~мишать
крутить


Нюансы:
- всего строк на две таблицы около 10к
- сравнивать ячейки нужно целиком ("легкий" и "легкий шар" не синонимы)
- сначала идут синонимы из таблицы 1 (они основные), потом из таблицы 2 (они второстепенные)
- возможны такие случаи, когда из второй таблицы в одной строке могут  встречаться ячейки из первой таблице в разных строках. вариант, который  вижу я - это продублировать синонимы и туда, и туда, а я потом сам удалю  дубли. если будут решения, предлагайте

Может это можно сделать при помощи PLEX?
Жду ваших предложений по реализации и желаемую цену
Изменено: Андрей Ка - 02.07.2020 14:17:54
 
Андрей Ка, неплохо бы показать файл с исходными данными и желаемым результатом.

Цитата
Андрей Ка написал:
Жду ваших предложений по реализации и желаемую цену
Это мы ждём бюджет )
 
Андрей Ка, если Юрий М не возьмёт, то я готов
Изменено: Jack Famous - 02.07.2020 14:38:30
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Вот пример файла.
Не знаю, тонкость или нет, но ячейки бывают в разных регистрах. Ексель делает их дублями, но желательно, чтобы это были разные синонимы.
Например
Albumin AggregateAlbumin fusion proteinAlbumin aggregate
По поводу бюджета не знаю, т.к. не представляю насколько это сложная задача и сколько она может стоить. Может там два дня надо провозиться, а может пару тройку кнопок в ПЛЕКС нажать.
Мне это нужно для разовой задачи, поэтому и бюджетом большим не располагаю. Вы предложите хоть что-то, а я вообще соображу потяну я оплатить эту задачу или нет... Сейчас у меня много небольших разовых  задач по объединению файлов, выделению, обработке... С большинством я справляюсь сам, но возможно еще будут заказы.
Изменено: Андрей Ка - 02.07.2020 14:42:50
 
Цитата
Андрей Ка: Вот пример файла
логика действий не обнаружена - результат очень похож на таблицу 1 и не понятно, почему так и какую роль сыграли дубликаты…
Изменено: Jack Famous - 02.07.2020 14:54:42
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 

Логика действий приблизительно следующая:

берем таблицу 1, первую строку,

AcetaminophenParacetamolParacetmolParactamol ParacetamolePracetamolParacetamo Paracetamo
в ней первую ячейку Acetaminophen ищем совпадения в Таблице 2, находим ячейку. берем всю строку, в которой эта ячейка,

AcetaminophenParacetamolParacétamolParacetamoloNAPAPp-AcetamidophenolTermidorParacetamolum
и из второй таблицы добавляем все уникальные значения к первой,кладем в третью новой строкой.

AcetaminophenParacetamolParacetmolParactamol ParacetamolePracetamolParacetamo ParacetamoParacétamolParacetamoloNAPAPp-AcetamidophenolTermidorParacetamolum

Потом берем вторую ячейку Paracetamol, ищем во второй таблице, все уникальные значения в первую строку. При этом ту строку, которую уже добавили нужно исключить из последующего поиска ячеек этой же строки. а новой строки уже учитывать. Если не находим значений из всей строки во второй таблице, то кладем строку как есть. А все уникальные значения из второй таблицу тогда в таблицу 4 (вначале я думал их положить новыми строками в таблицу 3, но на данном этапе думаю, что лучше в таблицу 4)
Изменено: Андрей Ка - 02.07.2020 15:30:46
 
Надеюсь весь сумбур более-менее понятно объяснил?  :)
Если надо скрины или другой вид пояснений - пишите.
Изменено: Андрей Ка - 02.07.2020 15:24:58
 
Цитата
почему так и какую роль сыграли дубликаты
Дубликаты по сути играют роль объединяющих факторов. Т.е. по совпадающим ячейкам мы объединяем строки, в которые входят эти ячейки.
 
Я пас
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Я пас
Жаль  :cry:  
 
Юрий М тоже пас ? ))
 
А я и не заявлялся ))
 
Андрей Ка,  за исключением одного момента  логика понятна.

во второй таблице ищем везде или только в первом столбце? про поиск всех из таблицы 1 понятно.

Как я понял :
1. строка из таб1 сразу переносится в Таб3
2. первое значение строки сравнивается ищется в первом столбце таб2,
2.1 если находится, то добавляется в конец строки таб3 но исключая дубликаты. Строка в таб2 или удаляется или исключается из поиска любыми средствами
2.2 если не найдено то переходим к следующей ячейке таб1. и повторяем п2.1
3. повторяем для всех строк таб1.

Ну и про бюджет - даже для разовой операции, сравнивайте затраченное время на все и трудозатраты на это с тем что скрипт это сделает за вас и чтоб было обоюдовыгодно делится пополам - вот вам бюджет. Ну понятно что и тут можно уменьшить, ибо скрипт будет работать и на 10к и на 100к и на 1000к строк. при этом будет работать однозначно внимательнее чем человек.
Изменено: БМВ - 02.07.2020 20:31:46
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
1. строка из таб1 сразу переносится в Таб3
нет, наверно, можно понять по-другому, т.к. ▼
Цитата
Андрей Ка написал:
если 2 ячейки совпали, то  строки с этими ячейками объединить в одну строку и положить в 3 таблицу,
или то же самое, но другими словами ▼ (добавляем в таб.3 только после добавления новых уникальных)
Цитата
Андрей Ка написал:
из второй таблицы добавляем все уникальные значения к первой, кладем в третью новой строкой.
Цитата

БМВ написал:
2. первое значение строки сравнивается ищется в первом столбце таб2

тоже можно понять по-другому, ведь ▼
Цитата
Андрей Ка написал:
в ней первую ячейку Acetaminophen ищем совпадения в Таблице 2, находим ячейку. берем всю строку
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
В принципе, алгоритм понятен. Если БМВ не возьмется, я бы попробовал. Только 2 вопроса. Бюджет и сроки.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Михаил Лебедев,  Тезка, мне нельзя, я еще недостаточно помог форуму, и 100 сообщений не написал :-)
По вопросам из тем форума, личку не читаю.
 
99?!?!?! Как такое возможно?! ☺
Это отмазка, да? Просто не знаешь, как сделать?
(Мишки шутят)
Кстати, у меня - как раз 100 (24+76=100)

PS
Я больше поверю в 14'643, чем в 99 ☺

PPS
ТС всё равно что-то молчит, видать - не судьба...
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев: ТС всё равно что-то молчит, видать - не судьба...
у нас тут на форуме крысы перехватчики есть - за копейки делают херню. Может и этот ТС попался на удочку "быстро/дёшево/отлично"  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ну, крысы - они оч. умные твари, всегда найдут (или прогрызут) лазейку, если есть такая возможность. Очевидно, что функционал форума такую возможность дает. Обидно, но что поделаешь. Выживание, выживание... :( Мамонты - вымерли, крысы - нет.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев: Мамонты - вымерли, крысы - нет
лучше умереть мамонтом, чем жить крысой  8)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Крысы так не считают. А мамонты - ... мы уже не узнаем :)

PS
Пора тему из "Работы" переносить в "Курилку" ☺
Изменено: Михаил Лебедев - 03.07.2020 10:06:26
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Страницы: 1
Наверх