@maximka12

Как сравнить два xlsx файла?

Задача:
Даны две таблицы. Обе по разному оформлены. Но в обоих есть столбец "НОМЕР". Необходимо чтобы два файла сравнивались если значения ячейки в столбце НОМЕР в первом и втором файле одинаковые, строки в которых эти значения находятся записывались в другой лист или книгу эксель. Как это реализовать?
  • Вопрос задан
  • 1481 просмотр
Решения вопроса 1
Dr_Elvis
@Dr_Elvis Куратор тега Python
В гугле забанен
Написал такое на час наверно(потому что вообще хз какие библиотеки нужно было использовать). Решение в лоб, может где то не верно, но вроде выполняет то что нужно(если я правильно понял что нужно).
import pandas as pd
import xlrd as xr
excelreed = xr.open_workbook('1.xlsx')
oneexcel = excelreed.sheet_by_index(0)
excelreed = xr.open_workbook('2.xlsx')
twoexcel = excelreed.sheet_by_index(0)

list_j = []
for i in range(1,oneexcel.nrows):
    for j in range(1,twoexcel.nrows):
        if twoexcel.row_values(j)[0] == oneexcel.row_values(i)[0]:
            list_j.append(oneexcel.row_values(i) + twoexcel.row_values(j)[1:])
df = pd.DataFrame(list_j)
df.to_excel('out.xlsx', header=False, index=False)


Скрины:
https://s.mail.ru/4GV2/xZo3GG6uR
https://s.mail.ru/3HT1/Sxs4MUztB
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@shushpanio
shushpanio
предлагаю вариант через "Жо$у" но он сработает:
1. делаете так что в обоих таблицах столбец НОМЕР стоит крайним левым.
2. копируете на отдельный лист значения из столбца номер с обоих таблиц (1 сразу под 2-й)
3. через условное форматирование выделяете повторяющиеся значения
4. по фильтру выбираете Фильтр по цвету -получите список повторяющихся значений
5. получившийся список переносите на другой лист и удаляете дубликаты
6. с помощью ВПР тянете инфу с исходных таблиц
Profit!

Но повторюсь - решение через одно место. Для разового действия прокатит.
Для частого использования макросы и скрипты Вам в помощь (тут не смогу помочь)
Ответ написан
@nektopme
Попробуй надстройку для Excel https://www.youtube.com/watch?v=J4ligSxRFxs
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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