Hướng dẫn

Cách Tạo Mã Vạch Trong Excel Bằng Công Thức (2026)

Tuân HoangTuân Hoang
14 tháng 9, 2026
Cập nhật: 9 tháng 10, 2026
10 phút đọc
Ảnh minh họa bài viết: Cách Tạo Mã Vạch Trong Excel Bằng Công Thức (2026)

Nhập kho 300 sản phẩm mới, không mã vạch nào để in

Tình huống quen thuộc với dân bán lẻ: lô hàng mới về, 300 mã SKU, nhà cung cấp không dán mã vạch hoặc mã vạch bị lỗi khi soi bằng máy quét ở quầy thu ngân. Đặt máy in mã vạch chuyên dụng qua bên thứ ba thì mất vài ngày và tốn thêm chi phí cho một việc lẽ ra làm ngay trong buổi chiều. Nhiều chủ shop lúc này mở Excel lên, gõ tay từng mã, rồi tự hỏi có cách nào tạo mã vạch ngay trong bảng tính đang dùng để quản lý tồn kho hay không.

Câu trả lời là có, nhưng cách làm phụ thuộc vào việc bạn cần mã vạch để in dán lên sản phẩm thật (barcode chuẩn EAN/Code 128 quét được bằng máy) hay chỉ cần mã tham chiếu nội bộ hiển thị trên phiếu, hóa đơn. Hai nhu cầu này giải quyết bằng hai cách hoàn toàn khác nhau, và gộp chung là lý do nhiều người làm xong vẫn không quét được.

Dùng font mã vạch — cách nhanh nhất nhưng có giới hạn thật

Cách phổ biến nhất trong Excel là dùng font chữ mã vạch (barcode font) như Code 39 hoặc Code 128. Về bản chất, font này chuyển chuỗi ký tự bạn gõ thành các vạch đen trắng khi hiển thị — máy quét đọc được vì nó đọc hình ảnh vạch, không đọc chữ.

Các bước làm với font Code 39 (tải miễn phí, ví dụ font "IDAutomationHC39M" hoặc "LibreBarcode39"):

  • Tải và cài font vào hệ điều hành (không cài trong Excel, cài ở Control Panel/Fonts hoặc thư viện font macOS)
  • Trong Excel, tạo cột chứa mã sản phẩm gốc, ví dụ SP001
  • Với Code 39, mã cần được bao bởi dấu * ở đầu và cuối để máy quét nhận diện điểm bắt đầu/kết thúc — dùng công thức ="*"&A2&"*" ở cột kế bên
  • Bôi đen cột kết quả, đổi font chữ sang font mã vạch vừa cài — chuỗi *SP001* sẽ hiển thị thành các vạch đen trắng
  • In thử một tem, dùng máy quét ở quầy test trước khi in hàng loạt

Giới hạn thật của cách này: font mã vạch chỉ đúng chuẩn khi bạn dùng đúng font tương thích với loại mã (Code 39 khác Code 128 khác EAN-13), và nếu máy in hoặc máy tính khác không có font đó cài sẵn, file mở ra sẽ hiển thị sai — vạch bị lệch, máy quét đọc không ra. Đây là lỗi rất hay gặp khi gửi file cho người khác in hộ. Ngoài ra font mã vạch gõ tay không tự tính checksum, nên với mã EAN-13 (mã vạch chuẩn quốc tế in trên bao bì) cách này gần như không dùng được — phải qua bước tính toán riêng. Nếu shop bạn đã có quy trình bán hàng ổn định và chỉ cần in — quét mã sản phẩm hàng ngày chứ không phải tạo mã vạch chuẩn quốc tế, bài Hướng Dẫn Tạo Mã Vạch & Quét Mã Vạch Trong Phần Mềm Bán Hàng có quy trình đầy đủ hơn cho việc này, từ lúc nhập kho đến lúc quét ở quầy tính tiền.

Tính checksum cho mã EAN-13 bằng công thức — khi cần mã vạch chuẩn quốc tế

Nếu bạn bán hàng cần niêm yết mã vạch chuẩn trên bao bì (ví dụ hàng tự sản xuất, đóng gói lại để bán sỉ), mã vạch không thể gõ tùy ý — EAN-13 có 12 số dữ liệu cộng 1 số kiểm tra (checksum) được tính theo công thức cố định. Nếu số checksum sai, máy quét đọc ra mã khác hoặc không đọc được gì. Công thức tính checksum EAN-13 trong Excel, giả sử 12 số đầu nằm ở ô A2 (dạng text, ví dụ 489012345678):

  • Bước 1: Tách từng chữ số bằng MID(A2,n,1) cho n từ 1 đến 12
  • Bước 2: Cộng các số ở vị trí lẻ (1,3,5,7,9,11), nhân tổng với 1; cộng các số ở vị trí chẵn (2,4,6,8,10,12), nhân tổng với 3
  • Bước 3: Cộng hai kết quả lại, lấy phần dư chia 10 bằng MOD(), rồi lấy 10 trừ đi số dư đó — đó là số checksum

Công thức gộp một dòng, với A2 chứa 12 số:

=MOD(10-MOD(SUMPRODUCT(MID(A2,{1,3,5,7,9,11},1)*1)+SUMPRODUCT(MID(A2,{2,4,6,8,10,12},1)*1)*3,10),10)

Ghép số checksum này vào cuối 12 số gốc bằng =A2&B2 là ra mã EAN-13 đầy đủ 13 số. Sau đó áp font mã vạch EAN-13 chuyên dụng (khác font Code 39/128 ở trên) để hiển thị thành vạch. Bước này nhiều người bỏ qua checksum, dán mã lên hàng, ra máy POS quét không nhận diện đúng sản phẩm — lúc đó mới lần ngược lại tìm nguyên nhân, mất cả buổi.

Với việc tính toán nhiều cột phụ trợ như thế này, một lỗi hay gặp là dò công thức từ ô này qua ô khác bị lệch tham chiếu, kéo dài dòng thì FALSE hoặc lỗi #VALUE! xuất hiện. Nếu gặp lỗi tương tự với VLOOKUP hay INDEX-MATCH khi ghép các bảng tra mã sản phẩm, bài Lỗi VLOOKUP & INDEX-MATCH Trong Google Sheets: Nguyên Nhân & Cách Xử Lý Dứt Điểm liệt kê nguyên nhân theo từng loại lỗi cụ thể.

Dùng QR code thay vì mã vạch tuyến tính — giải pháp không cần font đặc biệt

Với các shop chỉ cần mã để quét nội bộ (không bắt buộc chuẩn EAN quốc tế), QR code là lựa chọn dễ triển khai hơn nhiều vì không phụ thuộc font cài trên máy — nó là ảnh, không phải chữ được style thành vạch. Excel có công thức =ENCODEURL() kết hợp hàm ảnh để gọi API tạo QR code ngoài, ví dụ dùng Google Chart API hoặc QRServer:

="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data="&ENCODEURL(A2)

Dán URL này vào hàm =IMAGE() (nếu dùng Google Sheets) hoặc chèn thủ công bằng công thức tạo link rồi tải ảnh về. Ưu điểm: QR code chứa được nhiều thông tin hơn (mã SKU, giá, link chi tiết sản phẩm), không lo lỗi font khi mở file trên máy khác, và điện thoại thường quét QR ổn định hơn vạch một chiều bị mờ hoặc nhăn khi dán lên bao bì cong. Nhược điểm là máy quét mã vạch cầm tay đời cũ ở một số quầy tạp hóa chỉ đọc được mã vạch tuyến tính, không đọc QR — cần kiểm tra máy quét đang dùng trước khi chọn hướng này.

Ví dụ thực tế: shop văn phòng phẩm 450 SKU chuyển từ ghi tay sang mã vạch Excel

Một chủ shop văn phòng phẩm ở quận Bình Thạnh từng ghi mã sản phẩm tay lên tem giấy, nhân viên bán hàng gõ mã 6 số vào phần mềm bán hàng mỗi lần thanh toán — trung bình mất 8-10 giây mỗi lượt gõ, nhân với 200 lượt bán/ngày là hơn 25 phút chết chỉ để gõ mã. Sau khi dựng bảng mã sản phẩm trong Google Sheets với 450 dòng, dùng công thức checksum EAN-13 như trên rồi in hàng loạt qua mail merge sang Word, thời gian thanh toán mỗi đơn giảm còn 2-3 giây nhờ quét trực tiếp. Điểm quan trọng trong case này: bảng mã sản phẩm gốc đã tồn tại sẵn trong Google Sheets quản lý tồn kho, nên việc thêm cột checksum và cột mã vạch đầy đủ chỉ là kéo công thức xuống 450 dòng, không phải nhập lại từ đầu. Đây cũng là lý do quản lý mã vạch trực tiếp trong công cụ bán hàng dựa trên Sheets — như cách SheetStore triển khai cho các mẫu quản lý bán hàng — tiết kiệm hơn so với việc tạo mã vạch ở Excel rồi copy thủ công sang phần mềm POS khác, vì mã vạch và tồn kho nằm chung một nguồn dữ liệu, sửa một chỗ là đồng bộ toàn bộ.

Tự động hóa: in hàng loạt và cảnh báo khi mã vạch trùng

Khi số lượng SKU lên tới hàng trăm, hai vấn đề thường phát sinh: in tem hàng loạt tốn công dán từng ô, và mã vạch bị trùng do gõ nhầm hoặc copy-paste lỗi khi nhân bản dòng.

Với việc in hàng loạt, cách nhanh nhất là xuất bảng mã vạch từ Excel/Sheets sang Word dùng tính năng Mail Merge, chọn layout tem theo khổ giấy in tem có sẵn (Avery hoặc tương đương), Word sẽ tự động lặp lại từng mã vào từng ô tem theo đúng thứ tự trong bảng — không cần copy-paste tay từng ô.

Với việc phát hiện mã trùng, nếu bạn đang làm trên Google Sheets, có thể tận dụng Conditional Formatting để tô đỏ ngay các dòng có mã vạch giống nhau trước khi in — tránh tình trạng in xong 500 tem rồi mới phát hiện 3 mã bị trùng, phải in bù. Cách thiết lập cụ thể có trong bài Cách Tô Màu Dữ Liệu Trùng Lặp Trong Google Sheets (2026). Ngoài phát hiện trùng, nếu muốn hệ thống tự báo khi tồn kho của một mã nào đó chạm ngưỡng cần nhập thêm — liên quan trực tiếp tới việc quản lý theo mã vạch — có thể tham khảo thêm cách dựng cảnh báo tự động trong bài Cách Tạo Cảnh Báo Tự Động Khi Giá Trị Vượt Ngưỡng Trong Google Sheets.

Khi nào nên bỏ font mã vạch, chuyển sang add-on hoặc công cụ chuyên dụng

Font mã vạch và công thức checksum phù hợp cho quy mô dưới vài trăm SKU, in không thường xuyên. Nhưng nếu shop nhập hàng mới mỗi tuần, cần tạo mã vạch tự động ngay khi thêm sản phẩm vào kho — không phải mở lại công thức mỗi lần — thì add-on chuyên tạo mã vạch (như Barcode Generator trên Google Workspace Marketplace) hoặc gắn liền quy trình quản lý bán hàng sẽ tiết kiệm thời gian hơn nhiều so với việc bảo trì một bảng công thức riêng lẻ. Một điểm hay bị bỏ qua: nếu bảng tính của bạn đã có nhiều công thức phụ trợ (checksum, tra cứu giá, tính tồn kho), việc quản lý menu và các nút bấm để chạy nhanh các thao tác này (ví dụ nút "Tạo mã vạch cho dòng mới") sẽ gọn hơn nhiều nếu gắn vào một menu tùy chỉnh thay vì bắt nhân viên tự kéo công thức. Cách dựng menu này bằng Apps Script có hướng dẫn ở bài Cách Tạo Menu Tùy Chỉnh Trong Google Sheets Bằng Apps Script — hữu ích khi bạn muốn biến các bước thủ công ở trên thành một nút bấm cho cả team dùng chung mà không cần hiểu công thức bên trong.

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

Excel có tự tạo mã vạch được không hay phải cài thêm gì?

Excel không có sẵn mã vạch, cần cài font mã vạch (ví dụ Code 39, Free 3 of 9) vào máy rồi áp dụng font đó cho ô chứa mã sản phẩm. Một số mã như Code 39 cần thêm dấu * ở đầu và cuối chuỗi bằng công thức nối chuỗi trước khi đổi font.

Tạo mã vạch trong Excel khác gì so với Google Sheets?

Excel dùng font cài trên máy tính nên chỉ hiển thị đúng trên máy đã cài font đó, dễ lỗi khi mở file ở máy khác. Google Sheets không hỗ trợ cài font ngoài nên phải dùng công thức IMAGE() gọi API tạo mã vạch hoặc add-on, ổn định hơn khi chia sẻ file.

Mã vạch tạo bằng font trong Excel có quét được bằng máy quét thật không?

Có, miễn dùng đúng chuẩn font (Code 39, Code 128...) và mã hóa đúng ký tự bắt buộc của chuẩn đó. Nếu thiếu dấu bao quanh hoặc sai ký tự đặc biệt, máy quét sẽ đọc sai hoặc không nhận diện được.

Làm sao để in hàng loạt mã vạch từ danh sách sản phẩm trong Excel?

Tạo cột công thức sinh mã vạch cho từng dòng sản phẩm, sau đó dùng chức năng in nhãn hoặc xuất PDF theo layout tem đã căn chỉnh sẵn. Với số lượng lớn, nên chuyển sang phần mềm quản lý bán hàng có module in tem để tránh lặp lại thao tác thủ công mỗi lần thêm sản phẩm mới.

Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?

Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

Google Workspace Certified, 5+ years experience

Bạn thấy bài viết hữu ích?

Đăng ký nhận thông báo khi có bài viết mới.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận