@beduin01

Почему поиск уникальных значений в двух таблицах Excel работает медленно и как сделать чтобы было быстрее?

Есть два файла CSV в каждом по 100 тыс записей. Задача найти строки которые которые есть в первом файле, но нет во втором. Сама процедура поиска предполагается по ключу записей т.е.
Файл 1:
1
2
4
5

Файл 2:
1
2
3
4
5

Итого вывод должен быть 3 т.к. в первом файле этого ID нет, но он есть во втором.

Сейчас все делается средствами Excel. Люди жалуются на то, что подобная сверка происходит долго. На сколько долго сказать не могу. Думаю десятки минут.

Отсюда вопросы.
Почему в Excel все так медленно.
Будет ли разница в скорости если если решение сделать на C# или к примеру Python.
Будет ли профит если все выгружать в какой нить SQLite и делать его средствами?
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ответы на вопрос 3
@igorsmi
Full stack web developer
Скажу коротко, если перенести всё в SQL, разница в скорости будет огромная.
Ответ написан
Комментировать
@forspamonly2
у ёкселя есть excel power query ("редактор запросов" по-русски), как раз для таких вещей.

а если сейчас вы проверяете строки в одной таблице поиском по второй, можно сильно ускорить процесс отсортировав вторую таблицу по этой колонке, и используя поиск значения с третьим параметром (интервальный поиск) и дополнительной проверкой на совпадение потом.

в русском ёкселе это наверное что-то вроде

=ВПР(<искомое>;<таблица>;1;ИСТИНА)=<искомое>
Ответ написан
Комментировать
LaRN
@LaRN
Senior Developer
А ключи отсортированы?
Десятки минут даже для Excel как-то медленно.
Это как будто для каждого ключа одного файла пробегать все ключи другого.
Если взять два отсортированных списка и пройтись по ним, то недостающие ключи можно за один проход найти - это секунды для 100000 записей.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы