Pull to refresh

Comments 16

TortoiseSvn умеет сравнивать excel файлы по-ячейкам, кроме того, если используется только эксель и все-таки нужно написать скрипт, то уместнее написать скрипт на VBA чем на питоне.

UFO landed and left these words here

По моему проще допилить эксельку, чем городить такой огород.

Там же есть много прекрасных функций перевода текста в диапазоны.

Ну или просто использовать сводные таблицы

Самое смешное, что в excel есть встроенный механизм сравнения 2х версий документа.

Но, в последнее время, людям проще написать скрипт на питон, чем выучить инструмент в котором они работают.

Эта функция доступна только в Office для бизнеса

Spreadsheet Compare is only available with Office Professional Plus 2013, Office Professional Plus 2016, Office Professional Plus 2019

>Решим достаточно тривиальную задачу
А потом выясняется, что и порядок столбцов, и порядок строк разные, и на самом деле задача вообще не такая, какую решает стандартное средство сравнения таблиц в Excel.

В общем, мне кажется автор просто ввел всех в заблуждение, недостаточно четко описав задачу. И стандартное средство тут похоже не применимо совсем.

Какие предложения от excel ?

с 2013 версии там это делается в power query в пяток кликов.

Оба варианта работают и в принципе лучше ковыряния в excell мышкой . Есть и третий вариант ещё более простой - выгнать данные в csv файлы, их прочитать в структуру словаря, собрать ключи в 2 множества и собрать результирующий csv. Над множествами python умеет выполнять арифметические операции.

Отвечу фразой одного героя из к/ф «Тени исчезают в полдень»: «Сомневаюсь я».
Операции чтения-записи не прибавят скорости,
— прогон в csv сам по себе может поселить ошибки, например, если имеются столбцы с пробелами в содержимом,
— при сборе в словари надо учесть, что меняться могут не только ключи, но и значения.
А при вычитании множеств надо иметь в виду, что вычитать придется так же(как и в задаче) дважды, т.к. множества могут оказаться неоднородными (количество ключей-значений может быть разным).
Да и на выходе из csv собирать затем excel таблицу?

Строки с пробелами выгоняются как раз нормально. Проверено на довольно больших таблицах.

При сборе с в словари, нужно представлять характер данных. Если существует главный ключ, то вообще задача заметно упрощается. При загрузке в словарь как раз можно и проверить на повторение ключей. Можно и типы полей при этом проверить. На всё - про всё примерно строк 20-40 кода.

Вычитание действительно придётся выполнять как минимум дважды, для того чтобы проверить расхождение по ключам.

Сравнение содержимого полей придётся выполнять в любом случае, независимо от способа обработки.

Результирующую таблицу ( или несколько, если необходимы отчёты по плохим записям) можно тоже) в csv вывести. Ну или сразу в Excel.

Вообще, подобные задачи(анализ корректности данных) считаются довольно сложными и, конечно, Excel для подобных задач подходит плохо.

Sign up to leave a comment.

Articles