# Bank Match

> Tải lên sao kê ngân hàng và sổ Excel, để máy xếp bài đối chiếu từng giao dịch — bạn chỉ quyết những dòng máy không chắc.

Mỗi dòng giao dịch là một thẻ giấy trên bàn nỉ: máy chia bài theo bốn tầng — khớp tuyệt đối, trùng mã giao dịch, giống nội dung, một khoản nhiều dòng — rồi đóng dấu ĐÃ KHỚP lên những cặp chắc chắn. Những thẻ nghi ngờ còn lại được đưa cho bạn ký duyệt bằng một cú quẹt.

## Vấn đề giải quyết

Đối chiếu sao kê ngân hàng với sổ thu chi là công việc dò tay từng dòng: hàng chục đến hàng trăm giao dịch, tên người chuyển viết khác nhau giữa hai file, một khách thanh toán làm hai lần, một khoản bị trừ phí — mất cả buổi chiều mà vẫn sót vài trăm nghìn không tìm được chủ.

## Cách tính

- Đọc file ngay trong trình duyệt (ExcelJS, Web Worker): tự chọn sheet có nhiều dòng nhất, quét tối đa 10 dòng đầu tìm dòng header thật (≥3 ô có nội dung và ≥3 giá trị phân biệt — để không nhầm banner gộp ô của ngân hàng), rồi nhận diện 4 vai trò cột: từ khóa header trước (Ngày giao dịch, Số tiền, Diễn giải, Mã GD…), thiếu thì đo bằng thống kê nội dung (tỷ lệ parse được ngày ≥50%, tỷ lệ ô số ≥60% và không phải câu văn, độ dài trung bình ≥8 ký tự cho nội dung, token kiểu mã giao dịch ≥50%). Cột sai vẫn chỉnh tay được trước khi xếp bài.
- Số tiền đọc theo cả hai quy ước: 1.234.567 (ngàn dùng dấu chấm kiểu VN), 1,234,567 (kiểu Anh), dấu thập phân 12.345,67, số âm trong ngoặc kế toán (820.000), chữ đ/₫/VND và khoảng trắng bị bỏ qua. Ngày đọc dd/mm/yyyy, ISO và serial Excel; ngày trong ô bị lệch múi giờ được trả về đúng ngày lịch.
- Máy xếp bài theo 4 tầng, chạy lần lượt trên số dòng còn lại. Tầng 1 — Khớp tuyệt đối: |số tiền| đồng chính xác từng xu, cùng ngày, cùng chiều (tiền vào với tiền vào); cặp duy nhất cả hai bên chấm 0,98, cặp bị tranh chấp chỉ ghép khi một cặp thắng tuyệt đối theo (số token mã giao dịch trùng, độ giống nội dung). Tầng 2 — Trùng mã giao dịch: cùng một mã kiểu FT262312345 xuất hiện ở cả hai file là bằng chứng mạnh (0,90); nếu hai bên cùng có số tiền nhưng lệch nhau, cặp bị giữ lại chờ bạn xác nhận kèm ghi chú, không tự ghép im lặng.
- Tầng 3 — Giống nội dung: cùng số tiền trong vòng ±5 ngày chấm điểm 0,5·số tiền + 0,25·gần ngày + 0,25·độ giống nội dung (hệ số Sørensen–Dice trên bigram của diễn giải đã bỏ dấu, chuẩn hóa hoa thường) + 0,05 nếu trùng mã; từ 0,55 trở lên mới đưa ra đề xuất. Tầng 4 — Một khoản nhiều dòng: một dòng khớp với tổng 2–4 dòng cùng chiều, đồng xu chính xác, trong ±7 ngày; ưu tiên nhóm nhỏ nhất rồi nhóm gom ngày gần nhất, và ghi rõ phép cộng ra đề xuất (VD 5.000.000 = 2.000.000 + 3.000.000).
- Mọi đề xuất sinh ra chỉ ở hai trạng thái: tự động (điểm ≥ 0,9) hoặc chờ duyệt. Chấp nhận/từ chối chỉ đến từ bạn: từ chối thì các dòng được nhả về sổ Chưa khớp để tự dò. Engine có giới hạn an toàn — pool quá 60 dòng cùng chiều hoặc quá 150.000 bước dò thì bỏ qua gộm nhóm tự động cho dòng đó và báo rõ, vì vài chục triệu tổ hợp sẽ treo tab.
- Số điểm tin cậy hiển thị trên mỗi thẻ là kết quả thật của công thức trên, không phải nhãn cảm tính; kết quả luôn là DOM text kèm bảng số, và toàn bộ dữ liệu không rời trình duyệt.

## Ví dụ

- **Khớp tuyệt đối — cùng ngày, cùng số tiền, hai cách viết khác nhau**: Sao kê: 02/07/2026 · CHUYEN TIEN NGUYEN MINH KHOA THANH TOAN TIEN HANG QUI 2 HD 07001 · +12.500.000. Sổ: 02/07/2026 · Thu tiền hàng quý 2 - Nguyễn Minh Khoa (hóa đơn 07/001) · 12.500.000 → Nhóm M01, tầng 1, tin cậy 98% — tự động ĐÃ KHỚP. Bộ dữ liệu mẫu khớp 10 cặp tuyệt đối như vậy ngay lập tức.
- **Lệch tiền vì phí — máy giữ lại chờ bạn**: Sao kê: 11/07/2026 · CHUYEN TIEN TRAN QUOC TOAN DAT COC DON HANG BH2607 FT26219004551234 · +6.485.000. Sổ: 08/07/2026 · Cọc đơn hàng BH2607 - Trần Quốc Toàn chuyển qua VCB, mã GD ngân hàng FT26219004551234 · 6.500.000 → Nhóm M11, tầng 2 (trùng mã giao dịch FT26219004551234), tin cậy 90% — nhưng số tiền lệch nhau nên máy ĐỀ XUẤT kèm ghi chú «Số tiền hai bên không khớp — cần bạn xác nhận» thay vì tự ghép.
- **Một khoản thu được chia làm hai lần chuyển**: Sổ: 23/07/2026 · Hóa đơn 2026/0331 - Công ty TNHH Minh Đức · 5.000.000. Sao kê: 26/07/2026 · CONG TY TNHH MINH DUC THANH TOAN LAN 1 HD 20260331 · +2.000.000 và 28/07/2026 · MINH DUC CO LTD TRA TIEP THANH TOAN LAN 2 HD 20260331 · +3.000.000 → Nhóm M18, tầng 4 — 5.000.000 = 2.000.000 + 3.000.000, tin cậy 73%, chờ duyệt. Bộ mẫu chạy hết 23×22 dòng cho ra 19 nhóm: 10 khớp tự động, 9 chờ duyệt, tỉ lệ giá trị đã khớp 100% sau khi duyệt.

## Nguồn tham khảo

- Bộ dữ liệu mẫu đi kèm app
  - Nút «Thử ngay với bộ dữ liệu mẫu» nạp statement.xlsx + ledger.xlsx — toàn bộ ví dụ trên là kết quả thật của chính bộ này.

## Tool liên quan

- [Excel Import Doctor](https://xongngay.vn/excel-import-doctor) — Sửa file Excel lộn xộn trước khi nhập MISA/Sapo/KiotViet.
- [So Offer Thật](https://xongngay.vn/so-offer-that) — So 2–4 offer việc làm theo giá trị năm thật.

Source: https://xongngay.vn/bank-match
