Усі статті

PDF в Excel: рахунки в одну перевірену таблицю

Перенесення рахунків PDF в Excel звучить як невелика задача. У вас є папка з PDF-рахунками. Кожен постачальник використовує власну верстку, власні підписи полів і власний спосіб запису дат і сум. Вам потрібна одна таблиця: номер рахунка, дата, постачальник, сума без ПДВ, ПДВ, підсумок. І ви маєте їй довіряти.

Ручне копіювання працює для п’яти рахунків. На п’ятдесяти починаються помилки: кома, прочитана як розділювач тисяч, перевернута дата, підсумок, який ще спочатку не сходився.

Три способи це зробити

Спосіб Підходить для На що звернути увагу
Excel «Отримати дані → З PDF» (Excel for Microsoft 365 на Windows) кілька рахунків із чистими таблицями для кожної верстки потрібні окремі кроки; ніхто не перевіряє підсумки
Онлайн-конвертер разовий файл куди надсилаються і зберігаються ваші рахунки; результат усе одно треба перевіряти
Невеликий скрипт багато рахунків, різні постачальники, щомісяця його потрібно один раз налаштувати під ваші верстки

Якщо ви отримуєте кілька рахунків на місяць від одного постачальника, вистачить Excel. Коли постачальників кілька і це повторюється щомісяця, скрипт окупиться: правила задаються один раз і запускаються знову.

Як виглядає хороший результат

Один рядок на кожен PDF, однакові стовпці для всіх постачальників, дати в одному форматі (2026-09-03), суми як звичайні числа (1240.00) і ще один стовпець: потребує перевірки.

Останній стовпець — найважливіший. Хорошому процесу не властиво вгадувати. Якщо в рахунку немає номера або сума без ПДВ плюс ПДВ не дорівнює підсумку, рядок лишається таким, як надруковано, і позначається. Рішення ухвалює людина.

Як працює підхід зі скриптом

  1. Прочитати текст з кожного PDF. Рахунки, створені бухгалтерськими програмами, містять справжній текст, тож бібліотека на кшталт pypdf може його прочитати.
  2. Знайти кожне поле за підписами. Одне й те саме поле має багато назв: Invoice No:, Facture n°, Rechnungsnummer; Subtotal, Total HT, Nettobetrag. Ви ведете короткий список підписів для кожного поля.
  3. Нормалізувати числа й дати. 1,240.00, 1 240,00 € і 180,00 EUR — усе це суми; 14/09/2026 і 22.09.2026 — обидві дати. Узгодьте порядок день/місяць до початку.
  4. Перевірити арифметику. Сума без ПДВ плюс ПДВ має дорівнювати підсумку, до цента.
  5. Позначати, а не виправляти. Немає номера, нечитабельна дата, підсумок, що не сходиться, — рядок потрапляє до списку на перевірку.

Мінімальна версія кроків 1 і 4:

from pypdf import PdfReader

def pdf_text(path):
    return "\n".join(page.extract_text() or "" for page in PdfReader(path).pages)

def totals_ok(net, vat, total):
    return round(net + vat, 2) == round(total, 2)

Що ми побачили на тестовому наборі

Ми створили невеликий демо-приклад на шести вигаданих рахунках від трьох постачальників з англійськими, французькими та німецькими підписами. Два містили закладені проблеми: один підсумок не збігався з рядками, в одному рахунку не було номера. Скрипт створив одну таблицю з чотирма чистими рядками й позначив на перевірку саме ті два.

Це тест на вигаданих даних, а не обіцянка щодо ваших рахунків. Справжні папки готують власні сюрпризи — саме тому існує стовпець перевірки.

Типові пастки при переносі рахунків PDF в Excel

  • Десяткова кома чи десяткова крапка. 1.240,00 і 1,240.00 — та сама сума; 1,240 може бути будь-якою. Визначте правило для кожного постачальника.
  • День і місяць. 03/04/2026 — це 3 квітня у Франції та 4 березня у США. Узгодьте порядок, перш ніж щось запускати.
  • Кілька ставок ПДВ в одному рахунку. Одного стовпця без ПДВ і одного стовпця ПДВ недостатньо; ведіть рядок на кожну ставку або підсумок із приміткою.
  • Кредит-ноти. Вони мають виходити від’ємними сумами, а не другим рахунком, який подвоює ваші витрати.
  • Валюта. Якщо постачальник виставляє рахунок в іншій валюті, збережіть стовпець валюти і конвертуйте пізніше, ніколи непомітно.

П’ятихвилинна перевірка, перш ніж довіритися таблиці

  1. Кількість рядків дорівнює кількості PDF.
  2. Сума стовпця підсумків збігається з тим, що показує ваша бухгалтерія або банк за той самий період.
  3. Жоден номер рахунка не зустрічається двічі.
  4. Відкрийте три випадкові рахунки та порівняйте їхніми рядками.
  5. Кожен рядок у списку перевірки має рішення: виправлений вручну або підтверджений як є.

Обмеження, про які варто знати

  • Скани — це зображення. Спершу потрібне розпізнавання тексту (OCR), а розпізнані цифри потребують перевірки.
  • Нові верстки потребують додавання їхніх підписів. Зазвичай це швидко, але хтось має це зробити.
  • Незвичні формати чисел (наприклад, три цифри після коми) потрібно узгодити, а не вгадувати.

Зробити самостійно чи доручити

Якщо вам комфортно з Python, описаних кроків достатньо для старту. Дивіться демо на вигаданих рахунках на сторінці наших робіт. Якщо ж вам простіше надіслати папку й отримати перевірену таблицю зі списком того, що потребує вашої уваги, — це наш сервіс Документи — в таблиці. Коли файли конфіденційні, обробка може залишатися на вашому комп’ютері або на нашому в ЄС — дивіться Свій ШІ без хмари.

Запитання

Чи можна так само обробляти відскановані рахунки?

Не безпосередньо. Скан — це зображення паперу, тому спершу текст потрібно розпізнати (OCR). Після цього застосовуються ті самі правила, але кожну розпізнану цифру варто перевірити.

Що робити, якщо в рахунку немає номера або суми не сходяться?

Таке не слід виправляти непомітно. Рядок лишається таким, як надруковано, і позначається для рішення людиною.

Чи виходять рахунки з мого комп'ютера?

Зі скриптом — ні: він працює там, де лежать ваші файли. З онлайн-конвертером перевірте, куди надсилаються файли та де зберігаються — рахунки містять дані клієнтів.

Контакти

Цю скриньку читає одна людина — та сама, що робить те, що ви замовляєте.

Опишіть завдання

Напишіть, що у вас є і який результат потрібен, — навіть якщо це одне невелике завдання. Техзавдання не потрібне: протягом 48 годин надішлемо план і ціну письмово, уточнювальне запитання або чесно скажемо, що завдання не наше.

Вкажіть ситуацію, файли або посилання, строк, мову, межі приватності і бюджет, якщо він є.

Файл (за бажанням)
Файл не вибрано

Бриф, фотографія, таблиця — те, що пояснить завдання швидше за слова. До 8 МБ, зберігається у нашого хостинг-провайдера. Будь ласка, не надсилайте через сайт чутливі особисті чи медичні документи.

Надсилання заявки не створює замовлення і не вимагає оплати. Відповідаємо протягом 48 годин. Зручніше email? contact@castel.studio

Поговорити з нами

Зручніше голосом чи в месенджері? Пишіть і дзвоніть — відповідає засновник студії.

Зв'язатися в LinkedIn

Телефон · WhatsApp · Telegram

Франція+33 7 49 57 41 69WhatsAppTelegram

Україна+38 063 95 77 111WhatsAppTelegram

Зручніше через платформу?

Ту саму роботу можна замовити там — з безпечною оплатою платформи.

Соло-студія ШІ-систем у Ніцці. Хто відповідає на ваше повідомлення, той і робить роботу — без менеджерів-посередників. Файли обробляються на нашій машині, а не в чужій хмарі.

Ніцца 06100, Франція · Відкрити на карті →

SIREN 103 115 705