Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

28 Ноябрь 2020, 19:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1 2 »   Вниз
  Печать  
Автор Тема: Сравнение двух столбцов на совпадения и в третьем выводить значение  (Прочитано 1200 раз)
0 Пользователей и 1 Гость смотрят эту тему.
PV
Участник
**
Offline Offline

Сообщений: 17


« Стартовое сообщение: 18 Октябрь 2020, 22:59 »

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

* price.ods (2294.36 Кб - загружено 11 раз.)
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 017


« Ответ #1: 19 Октябрь 2020, 09:25 »

Доброго.
Не понял, что нужно. В столбце D найти дубликаты? или найти сколько раз значения из А повторяются в D?
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
PV
Участник
**
Offline Offline

Сообщений: 17


« Ответ #2: 19 Октябрь 2020, 10:17 »

В столбце D найти дубликаты
Описание:
Есть несколько прайс-листов, артикулы которые там есть имеют точное совпадение между друг другом, каждый прайс от 200 тыс позиций, планируется все прайсы объединить в один соответственно убрав совпадающие позиции. Пока что пришло в голову, это на примере выложенного файла (то что нашел тут на форуме):
В столбце А находятся артикулы прайса поставщика, в столбце D находятся артикулы нашего прайса, позиции построчно в столбце А сравниваем со всеми артикулами в столбце D и если попадаются совпадения, то в столбце В напротив каждого артикула столбца А проставляется значение допустим если совпало, то цифра 1, если нет, то 0, это мне нужно для того, что бы потом отфильтровать все строки со значением 0 скопировать и вставить в наш прайс.
Возможно есть решение проще. Я не профи в этом.
Если что то не так объяснил, пишите, мне это нужно сделать как воздух.
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 017


« Ответ #3: 19 Октябрь 2020, 10:26 »

Если имеется полное совпадение артикулов, то в B достаточно разместить формулу
Код:
=COUNTIF($D$2:$D$500000;A2)
, но даже с ней поиск по 500 тыс позиций будет не быстрым.
В настройках вычислений должна стоять галка без подстановки и регулярных выражений.


* Screenshot_20201019_132853.png (83.25 Кб, 1033x558 - просмотрено 9 раз.)
« Последнее редактирование: 19 Октябрь 2020, 14:06 от Bigor » Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
economist
Форумчанин
***
Offline Offline

Сообщений: 1 314


« Ответ #4: 19 Октябрь 2020, 10:49 »

Если такое надо делать каждый день, то можно упариться ждать Calc. Тут нужен Python+Pandas. В нем это 4 строки, которые отработают в 5-10 раз быстрее всех других существующих способов:

pr1=pd.read_excel('pr1.ods', index_col='арт.')
pr2=pd.read_excel('pr2.ods', index_col='арт.')
pr.merge(pr1, pr2, how='outer'))
pr.to_excel(pr.xls)

Тема Pandas глубока, с разбегу не получится. Но изучение того стоит, если такие объемы и задачи.
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
PV
Участник
**
Offline Offline

Сообщений: 17


« Ответ #5: 19 Октябрь 2020, 14:02 »

Тема Pandas глубока, с разбегу не получится. Но изучение того стоит, если такие объемы и задачи.
Спасибо за совет, на будущее попробую присмотреться к этой программе.
Записан
PV
Участник
**
Offline Offline

Сообщений: 17


« Ответ #6: 19 Октябрь 2020, 14:22 »

У меня это по другому


* Безымянный.jpg (81.36 Кб, 837x456 - просмотрено 12 раз.)
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 017


« Ответ #7: 19 Октябрь 2020, 14:29 »

Ну тогда просто снять галку "Разрешить регулярные выражения в формулах"
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
PV
Участник
**
Offline Offline

Сообщений: 17


« Ответ #8: 19 Октябрь 2020, 15:24 »

По какой причине могут появляться другие цифры 2, 3, 5?
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 017


« Ответ #9: 19 Октябрь 2020, 15:42 »

Формула считает количество вхождений строки из столбца А в столбце D.  Т.е. если 0, то в А уникальное значение, от 1 и выше - такие значения уже есть в  D
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 227


WWW
« Ответ #10: 19 Октябрь 2020, 16:22 »

Как и в Excel, для больших диапазонов ячеек поиск будет эффективен только, если массив ячеек, в котором производится поиск, будет упорядочен.
Поэтому, отсортируйте используемый массив ячеек столбца D по возрастанию, занесите в B2 формулу:
=ВПР(A2;$D$1:$D$212942;1;1)=A2
и протяните вниз. Должно работать быстро.
« Последнее редактирование: 19 Октябрь 2020, 16:39 от sokol92 » Записан

Владимир.
PV
Участник
**
Offline Offline

Сообщений: 17


« Ответ #11: 19 Октябрь 2020, 22:40 »

Формула считает количество вхождений строки из столбца А в столбце D.  Т.е. если 0, то в А уникальное значение, от 1 и выше - такие значения уже есть в  D
Понял, спасибо, завтра по раньше попробую.
Записан
PV
Участник
**
Offline Offline

Сообщений: 17


« Ответ #12: 20 Октябрь 2020, 12:36 »

Не тянет, висит. Я что то за сомневался, что он сможет обработать.
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 017


« Ответ #13: 20 Октябрь 2020, 13:26 »

А вариант sokol92 пробовали? Он должен быть шустрее намного
Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 3 030


iMac, LibreOffice и Apache OpenOffice


« Ответ #14: 20 Октябрь 2020, 13:57 »

...планируется все прайсы объединить в один соответственно убрав совпадающие позиции.
Самое простое и быстрое — это фильтр с параметром "без повторений".

Объедините все данные в один столбец (ваши и поставщиков) и примените фильтр как на картинке (вывод результата можно сделать на любой лист).


P.S. картинка с LibreOffice, но на Apache OpenOffice так же.


* Без повторений.png (81.22 Кб, 837x429 - просмотрено 11 раз.)
« Последнее редактирование: 20 Октябрь 2020, 13:58 от rami » Записан

Страниц: 1 2 »   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!