Всем привет, иногда приходится объединять эксель таблицы, не имея доступ к ПК с установленным офисным пакетом, например, вам в телефоне на почту или в мессенджере прислали два файла и нужно из них сделать один.
Гугл таблицы в этом случае будут слабым помощником, поэтому будем использовать Python, и создадим рабочий аналог функции ВПР.


Используем Pydroid 3 - IDE for Python 3, о нем я рассказывал ранее, создайте новый пайтон файл, импортируйте pandas и вставьте следующий код:
import pandas as pd
# Чтение данных из файлов
df1 = pd.read_excel('file1.xlsx', sheet_name='tab1')
df2 = pd.read_excel('file2.xlsx', sheet_name='tab2')
# Объединение таблиц по полю id
df3 = pd.merge(df1, df2, on='id', how='inner') # inner - только совпадающие id
# Если нужны все записи из первой таблицы: how='left'
# Если нужны все записи из второй таблицы: how='right'
# Если нужны все записи из обеих таблиц: how='outer'
# Сохранение результата в новый файл
with pd.ExcelWriter('file3.xlsx', engine='openpyxl') as writer:
df3.to_excel(writer, sheet_name='tab3', index=False)
print("Файл успешно создан!")
print(f"Количество записей в исходных таблицах: {len(df1)}, {len(df2)}")
print(f"Количество записей в объединенной таблице: {len(df3)}")

Запустите код и получите результат, как на этом рисунке:

В той же папке появится файл file3.xlsx, в котором будет результат объединения двух таблиц.

Немного другим способом, но такой же результат можно получить, изменив код на следующий:

import pandas as pd
try:
# Чтение данных
df1 = pd.read_excel('file1.xlsx', sheet_name='tab1')
df2 = pd.read_excel('file2.xlsx', sheet_name='tab2')
# Проверка структуры данных
print("Структура первой таблицы:")
print(f"Колонки: {list(df1.columns)}")
print(f"Размер: {df1.shape}")
print("\nСтруктура второй таблицы:")
print(f"Колонки: {list(df2.columns)}")
print(f"Размер: {df2.shape}")
# Объединение таблиц
df3 = pd.merge(
df1,
df2,
on='id',
how='inner', # тип объединения
suffixes=('_from_tab1', '_from_tab2') # суффиксы для одинаковых названий колонок
)
# Переименование колонок для более понятных названий
df3 = df3.rename(columns={
'name': 'name',
'text': 'text'
})
# Сохранение в новый файл
with pd.ExcelWriter('file3.xlsx', engine='openpyxl') as writer:
df3.to_excel(writer, sheet_name='tab3', index=False)
print("\n✅ Файл file3.xlsx успешно создан!")
print(f"📊 Количество записей: {len(df3)}")
# Показываем первые несколько строк результата
print("\nПервые 5 строк результата:")
print(df3.head())
except FileNotFoundError as e:
print(f"❌ Ошибка: файл не найден - {e}")
except Exception as e:
print(f"❌ Ошибка: {e}")
Не забудьте выполнить команду
pip install openpyxl
После запуска кода в терминале появится дополнительная информация о файлах, выведен результат объединения таблиц, и так же будет сформирован файл file3.xlsx.
