hitava

Mẹo Google Sheets · 8 phút đọc

Cách tạo mã QR chuyển khoản trong Google Sheets bằng hàm IMAGE và VietQR

Một hàm IMAGE ghép với link ảnh của img.vietqr.io là đủ để mỗi dòng trong Google Sheets có một mã QR chuyển khoản điền sẵn số tiền và nội dung — khách quét bằng app ngân hàng là chuyển đúng. Bài này đi qua cấu trúc link, bảng mã BIN, cách dùng ENCODEURL cho nội dung, các lỗi hay gặp, và một điều cần biết trước: số tài khoản, số tiền, nội dung sẽ đi qua máy chủ của bên thứ ba.

Đăng HiTaVaGoogle SheetsMã QRVietQRCông thức
Công thức IMAGE tạo mã QR VietQR tô màu 6 phần: mã BIN ngân hàng, số tài khoản, kiểu ảnh compact, số tiền amount, nội dung addInfo, tên tài khoản accountName
  1. Tạo mã QR chuyển khoản ngay trong Google Sheets — 1 hàm

    Xem trên YouTube ↗

Công thức tạo mã QR chuyển khoản trong một ô

Giả sử cột B là số tiền, cột C là nội dung chuyển khoản. Gõ vào D2 (thay 970436 và số tài khoản bằng của bạn):

Mã QR VietQR trong ô — đổi B2 hay C2 là mã đổi theo:
=IMAGE("https://img.vietqr.io/image/970436-0011001234567-compact.png?amount="&ROUND(B2;0)&"&addInfo="&ENCODEURL(C2)&"&accountName="&ENCODEURL("NGUYEN VAN AN"))
Hàm dùng
IMAGE + ENCODEURL
Ảnh do
img.vietqr.io vẽ
Nội dung tối đa
50 ký tự, không ký tự đặc biệt
Chạy trên
Google Sheets (cần mạng)

Kéo công thức xuống là mỗi dòng một mã. Tăng chiều cao hàng lên khoảng 150 px để ảnh đủ to cho camera điện thoại quét.

Mã BIN của các ngân hàng phổ biến

Ngân hàngMã BINNgân hàngMã BIN
Vietcombank970436MBBank970422
VietinBank970415ACB970416
BIDV970418VPBank970432
Agribank970405TPBank970423
Techcombank970407Sacombank970403
Lấy từ danh sách ngân hàng của api.vietqr.io (tháng 09/2026). Ngân hàng khác: tra trong danh sách đó.

Thử với chính tài khoản của bạn trước

Trước khi gửi cho ai, quét mã bằng app ngân hàng của bạn: app phải hiện đúng tên chủ tài khoản, đúng số tiền, đúng nội dung. Không cần bấm chuyển. Sai một chữ số BIN hay số tài khoản là tiền đi nhầm chỗ.

ENCODEURL là gì và vì sao nội dung nên viết không dấu

Link không được chứa khoảng trắng, dấu &, dấu ? hay chữ tiếng Việt có dấu ở dạng nguyên. Hàm ENCODEURL đổi các ký tự đó thành mã %XX: khoảng trắng thành %20, "ò" thành %C3%B2 (hai byte UTF-8), "&" thành %26. Thiếu ENCODEURL, nội dung "A101 & A102" sẽ cắt link làm đôi ở dấu &, phần sau bị hiểu thành một tham số khác.

Bảng ví dụ ENCODEURL: A101 202610 thành A101%20202610, Phòng A101 thành Ph%C3%B2ng%20A101, A101 & A102 thành A101%20%26%20A102, và cảnh báo không đưa tên, số điện thoại vào nội dung

ENCODEURL làm link hợp lệ, nhưng không làm nội dung có dấu dùng được ở mọi ngân hàng: tài liệu VietQR ghi nội dung không có ký tự đặc biệt, và nhiều app tự bỏ dấu khi hiện. Cách chắc nhất là ghép nội dung từ mã không dấu, ví dụ mã phòng + kỳ:

Nội dung chuyển khoản dạng "A101 202610" từ mã phòng (A2) và ngày đầu kỳ (D2):
=A2&" "&TEXT(D2;"yyyymm")

Nội dung ngắn, không dấu, theo một mẫu cố định còn có lợi khi đối chiếu: nhìn sao kê thấy "A101 202610" là biết tiền phòng nào, tháng nào.

Lưu ý: dữ liệu đi qua máy chủ img.vietqr.io

Hàm IMAGE không tự vẽ mã QR. Mỗi lần trang tính mở hoặc tính lại, Google tải ảnh từ img.vietqr.io theo đúng link bạn ghép — nghĩa là số tài khoản, số tiền và nội dung nằm nguyên trong link và được gửi tới một dịch vụ bên ngoài, không phải của Google hay ngân hàng.

  • Không đưa tên khách, số điện thoại, CCCD vào nội dung chuyển khoản. Mã phòng, mã học sinh, mã chuyến đi là đủ.
  • Ai có quyền xem file đều thấy link (bấm vào ô là thấy công thức) và thấy số tài khoản, số tiền của từng dòng.
  • Ảnh cần có mạng mới hiện. Dịch vụ bên ngoài đổi cách hoạt động hoặc ngừng thì ô sẽ trống — vẫn nên ghi số tài khoản bằng chữ cạnh mã QR để chuyển tay.
  • Excel 2016–2021 không có hàm IMAGE; Excel 365 bản mới có hàm IMAGE nhưng cú pháp khác. Công thức trong bài viết cho Google Sheets.

Nếu không muốn dữ liệu đi qua bên thứ ba, cách còn lại là tự sinh mã theo chuẩn VietQR (EMVCo + CRC) bằng Apps Script ngay trong file — dài hơn nhiều so với một công thức, nên phần lớn người dùng chọn hàm IMAGE.

Dùng mã QR ở đâu: hoá đơn phòng trọ, học phí, chia tiền đi chơi

Tab Chia tiền trong Google Sheets: mỗi thành viên một dòng có số dư, việc cần làm, mã QR VietQR của Techcombank, MBBank, ACB, Vietcombank và cột chuyển tay ghi ngân hàng, số tài khoản
Mẫu Quản lý đi chơi: mỗi người một mã QR do hàm IMAGE tải từ img.vietqr.io, kèm cột chuyển tay khi QR không hiện.
Hoá đơn phòng B105 tháng 06/2026 trong Quản lý phòng trọ PRO: mã QR chuyển khoản 1.901.000đ Vietcombank, nội dung B105 202606, nút chép tin Zalo, tải ảnh hoá đơn, tạo PDF

Mẫu Quản lý lớp học PRO cũng tạo mã QR học phí ngay trong file như vậy; mẫu Quản lý đi chơi không dùng Apps Script nên lấy ảnh QR từ img.vietqr.io bằng đúng hàm IMAGE trong bài này.

Mã QR không hiện hoặc quét ra sai: lỗi hay gặp

Triệu chứngNguyên nhânCách sửa
Ô trống, không có ảnhSố tiền rỗng hoặc bằng 0, BIN sai, mất mạngKiểm tra từng ô G1, G2, B2; mở link trong trình duyệt xem có ảnh không
App báo số tiền saiSố tiền có phần lẻ (1.161.290,32) hoặc là chữBọc ROUND(B2;0); số dạng chữ xem sửa lỗi SUM bằng 0
Nội dung bị cắtCó dấu & hoặc # chưa ENCODEURL, hoặc quá 50 ký tựDùng ENCODEURL, rút ngắn nội dung
Báo lỗi công thứcDấu phẩy thay vì chấm phẩy (hoặc ngược lại)Vùng Việt Nam dùng ;, vùng Hoa Kỳ dùng ,
Ảnh quá nhỏ, khó quétHàng thấpTăng chiều cao hàng, hoặc IMAGE(link; 4; 160; 160) để đặt cỡ 160×160 px

Câu hỏi thường gặp

Tạo mã QR bằng img.vietqr.io có cần đăng ký không?

Link tạo mã nhanh chỉ là một địa chỉ ảnh, dán vào trình duyệt là thấy, không cần đăng ký để thử. Tài liệu VietQR.io lưu ý dự án chính thức nên tạo template riêng — nếu dùng thường xuyên cho việc kinh doanh, đọc điều khoản trên vietqr.io.

Mã QR này có dùng được với mọi app ngân hàng không?

Mã theo chuẩn VietQR của Napas nên các app ngân hàng hỗ trợ VietQR quét được. Hãy tự quét thử bằng app của bạn và của một ngân hàng khác trước khi gửi hàng loạt.

Có nên để nội dung chuyển khoản có dấu tiếng Việt?

Không nên. ENCODEURL làm link hợp lệ, nhưng VietQR yêu cầu nội dung không có ký tự đặc biệt và nhiều app tự bỏ dấu. Dùng mã ngắn không dấu như "A101 202610".

Tại sao mở bằng Excel thì ô mã QR trống?

Excel 2016–2021 không có hàm IMAGE, còn Excel 365 có hàm IMAGE với cú pháp khác. Công thức trong bài viết cho Google Sheets; trên Excel hãy để cột ghi ngân hàng, số tài khoản, số tiền để chuyển tay.

Đổi tài khoản nhận tiền thì có phải sửa từng ô không?

Không nếu bạn để mã BIN, số tài khoản, tên ở ô thiết lập ($G$1, $G$2, $G$3) như công thức thứ hai trong bài. Sửa ba ô đó là mọi mã QR đổi theo.

  1. Đi chơi về chia tiền: mỗi người một mã QR chuyển đúng số (Short)

    Xem trên YouTube ↗

Nguồn tham khảo

Mẫu làm sẵn cho việc này

Mẫu khác liên quan: Quản lý lớp học PRO, Quản lý đi chơi.

Đọc tiếp

Xem thêm mẹo và video hướng dẫn trên kênh YouTube HiTaVa, hoặc đọc các bài khác trong chủ đề Mẹo Google Sheets.

Cần hỏi thêm?Zalo 0935077673 (Hải Vân)