Всем привет!
Прошу помощи, не могу решить кейс.
Есть 2 таблицы:
1) столбец 1: большой список данных, столбец 2: цифры (они относятся друг к другу построчно, перепутать нельзя)
2) столбец 1: список данных (все данные в этом таблице есть в таблице 1, столбце 1), столбец 2 символы (относятся друг к другу построчно, перепутать нельзя)
Пример на скриншоте:
https://prnt.sc/qqpowa
Необходимо сравнить столбец 1 таблицы 1 с столбец 1 таблицы 2, вывести все НЕ УНИКАЛЬНЫЕ значения сопоставив их с столбцами 2 обеих таблиц для значений в столбце 1
Возможно такое силами calc?
Или баз данных не избежать?
Calc может всё. Но если строк в таблицах >100000 - стоит задуматься об инструменте.
В С1 пишете формулу
=ВПР(A1;$D$1:$E$20;2;0)
и протягиваете её вниз за правый нижний угол. Полученный столбец фильтруете Автофильтром от #Н/Д и получаете свою табличку
Цитата: economist от 21 января 2020, 14:57получаете свою табличку
Супер, спасибо!
Но есть одно НО. Необходимо чтобы была отдельная уникальная таблица только не уникальных элементов. т.к. в таблице 1 300тыс строк, и копировать строки с соответствием вручную займет несколько дней. (во второй таблице 7тыс всего)
Если уж calc может все...
Цитата: Евгений5244 от 21 января 2020, 15:06Необходимо чтобы была отдельная уникальная таблица только не уникальных элементов
Расшифруйте это, что-то до меня не доходит
1,3 млн. строк - это уже не Calc. Лучше Базы данных или Python/Pandas. Сами таблицы в каком формате?
Цитата: Bigor от 21 января 2020, 15:10
Цитата: Евгений5244 от 21 января 2020, 15:06Необходимо чтобы была отдельная уникальная таблица только не уникальных элементов
Расшифруйте это, что-то до меня не доходит
Нужно сравнить т1с1 и т2с1 и в отдельную таблицу вынести только повторяющиеся элементы (те, которые есть и в т1 и в т2), плюс сохранить сопоставление D и E.
Цитата: economist от 21 января 2020, 15:15
1,3 млн. строк - это уже не Calc. Лучше Базы данных или Python/Pandas. Сами таблицы в каком формате?
Таблицу сократил до 60тыс в т1 и 7тыс в т2.
*т - таблица, с - столбец
Еще бы пример таблиц, что бы самому не придумывать :)
Цитата: Bigor от 21 января 2020, 15:42
Еще бы пример таблиц, что бы самому не придумывать :)
Вот!
Очень благодарен
Придумал сам. Смотрите
Цитата: Bigor от 21 января 2020, 15:57
Придумал сам. Смотрите
В переносе на бой не визуализируются значения. При условии переноса Ctrl+C Ctrl+V, столбцы соответствуют. В чем может быть проблема?
Без файла трудно сказать. У меня в формуле прописан диапазон a1:b38. Не исключено, что в этом диапазоне совпадений нет
Цитата: Bigor от 21 января 2020, 16:27
Без файла трудно сказать. У меня в формуле прописан диапазон a1:b38. Не исключено, что в этом диапазоне совпадений нет
Диапазон изменял. Окей, вот боевой:
Нужно диапазон изменить и в match + у вас разные данные в А и D в D в конце пробелы. Поэтому пробуйте такую формулу
=IFERROR(INDEX($A$1:$B$400000;MATCH(TRIM(D1);$A$1:$A$400000;0);1);"")
Цитата: Bigor от 21 января 2020, 16:41
Нужно диапазон изменить и в match + у вас разные данные в А и D в D в конце пробелы. Поэтому пробуйте такую формулу
=IFERROR(INDEX($A$1:$B$400000;MATCH(TRIM(D1);$A$1:$A$400000;0);1);"")
получаем #ИМЯ?
https://prnt.sc/qqs8t2
У вас скорее всего используются русские имена функций. Или переведите на английские (https://forumooo.ru/index.php/topic,7960.msg53325.html#msg53325) или переводите функции вручную.
Цитата: Bigor от 21 января 2020, 15:57
Придумал сам. Смотрите
Спасибо большое, все завелось. Очень помогли!
Цитата: Bigor от 21 января 2020, 17:00
К сожалению, нашлась ошибка. Неверно сопоставляет данные из т2 с1 и т1 с2.
На скриншотах примеры
(http://screenshot_3.png)
(http://screenshot_4.png)
Использую формулы
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$B$400000,ПОИСКПОЗ(СЖПРОБЕЛЫ(D2),$A$1:$A$400000,0),1),"")
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$B$400000,ПОИСКПОЗ(СЖПРОБЕЛЫ(D3),$A$1:$A$400000,0),2),"")
Сервис - Параметры - Calc - Вычисления -
ВКЛ Условия на всю ячейку
ВКЛ Без подстан знаков и рег выражений
Цитата: economist от 22 января 2020, 11:22
Сервис - Параметры - Calc - Вычисления -
ВКЛ Условия на всю ячейку
ВКЛ Без подстан знаков и рег выражений
Проблема не ушла.
Значение после vpbx должно совпадать с циферным. Однако, все равно проверил:
Т.е. в с1 т1 у вас множество одинаковых данных? Формула ищет первое совпадение с1 т1 с с1 Т2. Если нужно выбирать другое, опишите условия отбора
Цитата: Bigor от 22 января 2020, 12:18
Т.е. в с1 т1 у вас множество одинаковых данных? Формула ищет первое совпадение с1 т1 с с1 Т2. Если нужно выбирать другое, опишите условия отбора
Данные одинаковы, т.е данные из т1 с1 привязаны к т1 с2, и условие поиска по первому будет работать корректно. По какой то причине в итоговой таблице т3 с2 выводится неверный результат.
В т3 (с1 и с2) должно быть такое же значение как и в т1, только добавлена фильтрация соответствий (поиск НЕ уникальных значений) к т2, фактически
то есть:
Т1
vpbx400034510.mangosip.ru 400034510
Т3
vpbx400034510.mangosip.ru 400034510
Я с телефона, но мне кажется, что у вас ошибка в #16, во 2 ой формуле поиск тоже должен идти по d2
Цитата: Bigor от 22 января 2020, 12:53
Я с телефона, но мне кажется, что у вас ошибка в #16, во 2 ой формуле поиск тоже должен идти по d2
Спасибо за наводку! Нашел проблему. Формула ведется из 1ой стройки, поэтому значения просто уехали на 1 строку.