Bỏ qua, tới nội dung chính

Cách tạo mã QR trong Excel và Google Sheets

Cả Excel lẫn Google Sheets đều không có sẵn chức năng tạo mã QR. Muốn có mã trong bảng tính, bạn phải mượn một dịch vụ bên ngoài qua hàm IMAGE, cài một add-in, hoặc xuất dữ liệu ra rồi tạo hàng loạt bằng công cụ khác.

Cách phổ biến nhất từng được chép trong hàng trăm bài hướng dẫn — công thức gọi tới chart.googleapis.com — nay trả về ô trống, vì Google đã ngừng dịch vụ đó từ khoảng đầu năm 2024. Nếu bạn đang tìm lại công thức cũ mà không hiểu vì sao nó hỏng, đây là lý do.

Phần dưới đi qua ba cách còn dùng được, kèm ba giới hạn mà cách dùng công thức không vượt qua nổi: không xuất được file vector, không chèn được logo, và mã sẽ chết theo dịch vụ mà công thức gọi tới. Với danh sách từ vài chục dòng trở lên, tạo mã QR hàng loạt từ file CSV nhanh hơn và không phụ thuộc bên nào.

Vì sao công thức cũ không còn chạy

Google đã tắt dịch vụ chart.googleapis.com, vốn là nơi công thức cũ gửi dữ liệu tới để nhận về ảnh mã QR. Công thức dạng =IMAGE(“https://chart.googleapis.com/chart?cht=qr&chl=”&A2) giờ không trả về gì.

Điều đáng rút ra không phải là tìm một địa chỉ thay thế, mà là nhận ra bản chất của cách làm này: bảng tính của bạn không tạo mã QR, nó chỉ nhúng một ảnh do máy chủ người khác vẽ hộ. Máy chủ đó ngừng hoạt động thì toàn bộ cột mã trong file trống rỗng, kể cả file đã lưu từ nhiều năm trước.

Chuyện này đã xảy ra một lần, và không có gì đảm bảo nó không xảy ra lần nữa với dịch vụ thay thế.

Công thức IMAGE trong Google Sheets

Cách này vẫn dùng được nếu bạn trỏ hàm IMAGE tới một dịch vụ sinh ảnh mã QR còn hoạt động. Bốn bước:

  1. Đặt dữ liệu cần mã hóa vào một cột, ví dụ cột A bắt đầu từ ô A2 — có thể là đường link, số điện thoại hay mã sản phẩm.
  2. Ở ô B2, nhập công thức dạng =IMAGE(“địa-chỉ-dịch-vụ?data=”&ENCODEURL(A2)), thay phần địa chỉ bằng dịch vụ bạn chọn.
  3. Bọc dữ liệu trong hàm ENCODEURL để các ký tự đặc biệt và tiếng Việt có dấu không làm hỏng đường dẫn.
  4. Kéo công thức xuống hết cột, rồi tăng chiều cao hàng cho ảnh hiện đủ.

Lưu ý về hiệu năng: mỗi ô là một lần tải ảnh từ máy chủ, nên bảng vài trăm dòng sẽ tải chậm và một số ô hiện lỗi tạm thời. Google Sheets cũng giới hạn số lần gọi ra ngoài trong một khoảng thời gian.

Trong Excel: hàm IMAGE và add-in

Excel bản Microsoft 365 có hàm IMAGE hoạt động tương tự Google Sheets, nhận một đường dẫn ảnh và hiển thị ảnh ngay trong ô. Cú pháp gần giống, nhưng Excel không có hàm ENCODEURL nên với dữ liệu chứa dấu cách hay ký tự đặc biệt bạn phải xử lý bằng hàm SUBSTITUTE trước.

Excel bản cài đặt cũ không có hàm IMAGE. Với các bản đó, hai đường còn lại là cài add-in tạo mã QR từ kho Office, hoặc viết một macro VBA. Add-in dễ hơn nhiều, nhưng nhiều bản miễn phí có giới hạn số mã mỗi tháng hoặc gắn watermark — đọc kỹ trước khi dùng cho việc thật.

Một chi tiết hay bị quên: ảnh do hàm IMAGE hiển thị không được lưu vào file. Gửi file cho người khác mà họ không có mạng, hoặc dịch vụ ngừng hoạt động, thì cột mã của họ trống trơn.

Ba giới hạn của cách dùng công thức

Giới hạn thứ nhất là định dạng. Dịch vụ sinh ảnh qua đường dẫn thường chỉ trả về PNG ở kích thước cố định, nên bạn không có file vector để in khổ lớn. Muốn in tem hay standee thì cần mã QR ở dạng SVG, và công thức trong bảng tính không cho bạn thứ đó.

Thứ hai là tùy chỉnh. Chèn logo, đổi màu, chọn mức sửa lỗi — những việc này hoặc không làm được, hoặc phải nhồi thêm tham số vào đường dẫn và mỗi dịch vụ một kiểu.

Thứ ba, và đáng lo nhất, là sự phụ thuộc. Bạn không sở hữu những mã đó; bạn đang thuê một máy chủ vẽ hộ mỗi lần mở file. Với danh sách nhân viên, tem kho hay thẻ sự kiện phải dùng nhiều năm, đây là rủi ro thật chứ không phải lo xa.

Xuất dữ liệu ra rồi tạo hàng loạt

Cách này giải quyết cả ba giới hạn trên: bạn nhận về file ảnh thật, nằm trong máy, không phụ thuộc dịch vụ nào sau khi đã tải xong.

  1. Trong bảng tính, giữ lại cột dữ liệu cần mã hóa và một cột tên file để dễ nhận diện.
  2. Lưu hoặc xuất trang tính đó ra định dạng CSV.
  3. Nạp file CSV vào công cụ tạo mã QR hàng loạt, chọn kích thước và mức sửa lỗi, rồi tải về cả bộ dưới dạng ZIP.
  4. Chèn ảnh vào lại bảng tính nếu cần, hoặc dùng thẳng bộ ảnh để dàn trang in tem.

Với danh sách dưới mười dòng thì công thức nhanh hơn. Từ vài chục dòng trở lên, cách xuất CSV thắng rõ rệt, và nó là cách duy nhất cho ra file bạn thật sự sở hữu.

Cách tôi sẽ làm

Nếu là bạn, tôi làm ba việc theo thứ tự này. Trước tiên hỏi xem những mã này sẽ sống bao lâu — nếu chỉ dùng một lần trong tuần này thì công thức IMAGE là đủ, khỏi nghĩ thêm. Nếu chúng sẽ được in ra và dùng nhiều năm, tôi xuất CSV và tạo hàng loạt để có file ảnh nằm trong máy. Và trong cả hai trường hợp, tôi in thử một mã rồi quét bằng điện thoại cũ trước khi nhân bản cho cả danh sách.

Cả bài này thực ra chỉ là lý do cho ba việc đó. Bài học từ chuyện chart.googleapis.com ngừng hoạt động khá rõ: mã QR trong bảng tính trông giống dữ liệu của bạn, nhưng phần lớn thời gian nó là dữ liệu của người khác đang được mượn tạm. Khi cần thứ dùng lâu dài, hãy nạp file CSV rồi tải cả bộ mã về máy — mất thêm hai phút và không phải nhớ tới nó nữa.

Hỏi đáp khi tạo mã QR trong bảng tính

Excel có chức năng tạo mã QR sẵn không

Không có chức năng tích hợp nào. Mọi cách tạo mã QR trong Excel đều dựa vào add-in, macro, hoặc hàm IMAGE gọi tới một dịch vụ bên ngoài.

Vì sao công thức tạo mã QR trong Google Sheets của tôi bị lỗi

Khả năng cao nhất là công thức đang trỏ tới chart.googleapis.com, dịch vụ đã ngừng hoạt động từ khoảng đầu năm 2024. Đổi sang một địa chỉ dịch vụ còn chạy, hoặc chuyển hẳn sang cách xuất CSV rồi tạo hàng loạt.

Mã QR tạo bằng công thức có in được khổ lớn không

Thường là không đủ đẹp, vì dịch vụ trả về ảnh PNG ở kích thước cố định và phóng to sẽ vỡ. Muốn in tem, standee hay bao bì, hãy dùng file vector và tính kích thước theo khoảng cách quét.

Có cách nào tạo mã QR trong Excel mà không cần mạng không

Chỉ với add-in tự sinh mã ngay trên máy hoặc macro VBA dùng thư viện cài sẵn. Hàm IMAGE luôn cần mạng vì nó tải ảnh từ máy chủ về.

Tạo mã QR chuyển khoản cho từng đơn hàng trong bảng tính được không

Được về mặt kỹ thuật, nhưng chuỗi VietQR theo chuẩn EMVCo có cấu trúc riêng với mã kiểm tra ở cuối, nên ghép bằng công thức rất dễ sai. Cách chắc hơn là tạo mã QR chuyển khoản có sẵn số tiền và nội dung cho từng đơn, hoặc để trống số tiền và dùng chung một mã.

Bài viết liên quan

Mã QR tạo ở đây không hết hạn

Toàn bộ mã trên taomaqrcode.com là mã QR tĩnh: nội dung nằm ngay trong hình, không đi qua máy chủ trung gian nên dùng được mãi và không giới hạn lượt quét.

Đọc thêm mã QR tĩnh và mã QR động khác nhau thế nàomã QR có hết hạn không.