Có thể bạn quan tâm: Nhập Liệu Excel Tại Nhà: Hướng Dẫn Toàn Diện Để Kiếm Tiền Và Nâng Cao Kỹ Năng
Mở Đầu
Trong thời đại số hoá, việc quản lý hàng tồn kho, bán hàng và logistics ngày càng phụ thuộc vào công nghệ. Một trong những công cụ quan trọng giúp tối ưu hoá quy trình này là mã vạch (barcode). Mã vạch không chỉ giúp nhận dạng nhanh chóng sản phẩm mà còn giảm thiểu sai sót, tăng tốc độ xử lý dữ liệu.
Microsoft Excel, với tính linh hoạt và khả năng mở rộng, là một trong những phần mềm phổ biến nhất để tạo và quản lý mã vạch. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ những kiến thức cơ bản nhất cho đến các kỹ thuật nâng cao, giúp bạn tự tạo mã vạch trong Excel một cách hiệu quả và chuyên nghiệp.
Có thể bạn quan tâm: Mẫu Timeline Công Việc Excel: Hướng Dẫn Tạo, Tùy Chỉnh Và Ứng Dụng Hiệu Quả Trong Quản Lý Dự Án
1. Hiểu Về Mã Vạch Và Các Loại Mã Vạch Phổ Biến
1.1 Mã vạch là gì?
Mã vạch là một dãy các thanh và khoảng trống (cũng có thể là các ký tự số hoặc chữ) được mã hoá để chứa thông tin về một đối tượng, thường là sản phẩm. Khi được quét bằng máy đọc mã vạch (barcode scanner), dữ liệu sẽ được truyền tới hệ thống quản lý để thực hiện các thao tác như nhập kho, xuất kho, thanh toán, v.v.
1.2 Các loại mã vạch thường gặp
| Loại mã vạch | Định dạng | Ứng dụng chính |
|---|---|---|
| EAN-13 | 13 chữ số | Siêu thị, bán lẻ |
| UPC-A | 12 chữ số | Thị trường Bắc Mỹ |
| Code 39 | Ký tự chữ và số | Quản lý kho, công nghiệp |
| Code 128 | Ký tự đa dạng, mật độ cao | Vận chuyển, logistics |
| QR Code | Hai chiều, chứa nhiều dữ liệu | Marketing, liên kết web |
Trong Excel, chúng ta thường tạo các mã vạch dạng Code 39, Code 128, hoặc EAN-13 vì chúng dễ tích hợp và hỗ trợ bởi các font chữ đặc biệt.
Có thể bạn quan tâm: Mẫu Thời Khóa Biểu Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Chuẩn Bị Môi Trường Làm Việc
2.1 Cài đặt font mã vạch
Để hiển thị mã vạch trong Excel, bạn cần cài đặt các font đặc biệt. Hai font phổ biến nhất:
- Free 3 of 9 (Code 39)
- Code 128 (hoặc IDAutomationHC39M)
Cách cài đặt:
1. Tải font từ trang web uy tín (ví dụ: https://www.barcodesinc.com/free-font/).
2. Giải nén file .ttf.
3 Windows: Click chuột phải → Install hoặc Install for all users.
Mac: Double-click file → Install Font trong Font Book.
4. Khởi động lại Excel để font xuất hiện trong danh sách.
2.2 Cài đặt add‑in (tùy chọn)
Nếu bạn muốn tạo mã vạch EAN-13 hoặc UPC mà không muốn tính toán checksum thủ công, có thể sử dụng add‑in như Barcode Add-in for Excel (có phí) hoặc TBarCode Office (phiên bản trial). Tuy nhiên, với hướng dẫn này chúng ta sẽ tập trung vào giải pháp không add‑in, dùng công thức và font.
3. Tạo Mã Vạch Code 39 Trong Excel
3.1 Nguyên tắc Code 39
- Mỗi ký tự được biểu diễn bằng 9 phần: 5 thanh, 4 khoảng trống.
- Đầu và cuối mã vạch đều có ký tự “” (asterisk) làm start/stop.
- Hỗ trợ ký tự:
0-9,A-Z,-,., space,$,/,+,%.
3.2 Bước thực hiện
Bước 1: Nhập dữ liệu
Giả sử cột A chứa Mã sản phẩm (ví dụ: ABC123).
| A (Mã SP) |
|---|
| ABC123 |
| 00123 |
| XYZ-99 |
Bước 2: Thêm ký tự start/stop
Trong cột B, sử dụng công thức:
= "" & A2 & ""
Kéo công thức xuống để áp dụng cho toàn bộ danh sách.
Bước 3: Định dạng font
- Chọn cột B.
- Thay đổi font thành Free 3 of 9 (hoặc tên font bạn đã cài).
- Tăng kích thước font (ví dụ: 48) để mã vạch rõ nét.
- Đặt Alignment → Center để căn giữa.
Bước 4: Kiểm tra
Sử dụng máy quét mã vạch để quét ô B2. Kết quả sẽ trả về giá trị ABC123. Nếu không, kiểm tra lại việc cài đặt font và công thức.
3.3 Tự động tạo mã vạch cho hàng loạt
Nếu dữ liệu được nhập liên tục, bạn có thể tạo Table trong Excel (Ctrl+T) để tự động mở rộng công thức. Khi thêm dòng mới, cột B sẽ tự động tính toán ký tự start/stop và hiển thị mã vạch.
4. Tạo Mã Vạch Code 128 (Mật Độ Cao)
4.1 Giới thiệu Code 128
Code 128 cho phép mã hoá toàn bộ ký tự ASCII (0‑127) và có mật độ cao hơn Code 39, phù hợp cho nhãn có không gian hạn chế.
4.2 Cài đặt font Code 128
- IDAutomationHC128 (phiên bản trial) hoặc Code128 (miễn phí).
- Khi cài đặt, font này thường đi kèm với một macro hoặc hàm VBA để tính checksum.
4.3 Sử dụng hàm VBA để tạo Code 128
Nếu không muốn mua add‑in, bạn có thể tự viết hàm VBA để chuyển chuỗi thành mã Code 128.
Bước 1: Mở cửa sổ VBA
- Nhấn
Alt + F11. - Chọn Insert → Module.
Bước 2: Dán mã VBA sau:
Function Code128(s As String) As String Dim i As Long, chk As Long, encoded As String Dim charset As Variant charset = Array( _ " ", "!", """", "#", "$", "%", "&", "'", "(", ")", "", "+", ",", "-", ".", "/", _ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", _ "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", _ "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "", "\", "", "^", "_" ) ' Start Code B = 104 encoded = Chr(204) ' Start B trong font Code128 (có thể khác tùy font) chk = 104 For i = 1 To Len(s) Dim ch As String, idx As Long ch = Mid(s, i, 1) idx = Application.Match(ch, charset, 0) - 1 ' 0‑94 encoded = encoded & Chr(32 + idx) chk = chk + idx i Next i chk = chk Mod 103 encoded = encoded & Chr(32 + chk) ' Checksum encoded = encoded & Chr(206) ' Stop Code128 = encoded
End Function
Lưu ý: Các ký tự
Chr(204),Chr(206)phụ thuộc vào font bạn dùng. Đối với font IDAutomationHC128, start B làChr(204)và stop làChr(206). Kiểm tra tài liệu font để chắc chắn.
Bước 3: Áp dụng hàm trong Excel
Giả sử cột A chứa dữ liệu, trong cột B nhập:
=Code128(A2)
Sau khi tính toán, chọn cột B → đổi font thành IDAutomationHC128 → tăng kích thước để hiển thị.
Bước 4: Kiểm tra
Quét mã vạch ở cột B, kết quả trả về phải đúng với nội dung trong A2. Nếu không, kiểm tra lại hàm VBA và font.

Có thể bạn quan tâm: Cách Lấy Lại File Excel Chưa Lưu: Hướng Dẫn Chi Tiết Từng Bước Để Khôi Phục Dữ Liệu Quan Trọng
4.4 Tạo mã vạch EAN‑13 (Thực tế hơn cho bán lẻ)
4.4.1 Công thức tính chữ số kiểm tra (checksum)
EAN‑13 gồm 12 chữ số dữ liệu + 1 chữ số kiểm tra. Công thức:
1. Lấy tổng các chữ số ở vị trí chẵn (2,4,6,8,10,12) → nhân 3.
2. Cộng tổng các chữ số ở vị trí lẻ (1,3,5,7,9,11).
3. Lấy số dư 10 của tổng trên.
4. Checksum = (10 – remainder) mod 10.
4.4.2 Thực hiện trong Excel
Giả sử cột A chứa 12 chữ số (chuỗi).
Bước 1: Đảm bảo dữ liệu là chuỗi, không phải số dạng khoa học:
=TEXT(A2,"000000000000")
Lưu vào cột B.
Bước 2: Tính checksum với công thức:
=MOD(10 - MOD( SUMPRODUCT(MID(B2, {2,4,6,8,10,12}, 1) 3) + SUMPRODUCT(MID(B2, {1,3,5,7,9,11}, 1) 1)
,10),10)
Kết quả đặt vào cột C.
Bước 3: Ghép lại thành 13 chữ số:
= B2 & C2
Đặt vào cột D.
Bước 4: Định dạng font
– Chọn cột D.
– Đổi font thành EAN-13 (có thể tải font “Libre Barcode 128 Text” hoặc “Free 3 of 9” nếu không có font EAN‑13 riêng). Một số font EAN‑13 dùng ký tự làm start/stop, do đó công thức sẽ là:
= "" & D2 & ""
Sau đó đổi font và tăng kích thước.
Bước 5: Kiểm tra
Quét mã vạch trong cột D, hệ thống sẽ trả về 13 chữ số đầy đủ.
5. Tự Động Hóa Quá Trình Với Macro
Khi số lượng sản phẩm lên tới hàng nghìn, việc nhập công thức từng cột sẽ tốn thời gian. Dưới đây là một macro đơn giản để tạo mã vạch Code 39 cho toàn bộ cột A và ghi kết quả vào cột B.
Sub TaoMaVachCode39() Dim ws As Worksheet Set ws = ActiveSheet Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row Dim i As Long For i = 2 To lastRow ' Giả sử dòng 1 là tiêu đề ws.Cells(i, "B").Value = "" & ws.Cells(i, "A").Value & "" Next i ws.Columns("B").Font.Name = "Free 3 of 9" ws.Columns("B").Font.Size = 48 ws.Columns("B").HorizontalAlignment = xlCenter
End Sub
Hướng dẫn chạy macro
- Nhấn
Alt + F11→ Insert → Module → dán code. - Đóng VBA, quay lại Excel.
- Nhấn
Alt + F8, chọnTaoMaVachCode39, nhấn Run. - Kết quả sẽ hiện ngay trong cột B.
Bạn có thể tùy biến macro cho Code 128 hoặc EAN‑13 bằng cách gọi hàm Code128 đã tạo ở trên.
6. In Mã Vạch – Những Điều Cần Lưu Ý
6.1 Độ phân giải và kích thước
- Kích thước tối thiểu: Đối với Code 39, chiều cao 0.5 inch (~12.7mm) là đủ để máy quét đọc. Đối với Code 128, chiều cao 0.25 inch (~6.35mm) cũng chấp nhận được.
- Độ phân giải: Khi in qua máy in laser hoặc nhiệt, đặt độ phân giải ≥ 300 DPI để tránh mờ.
6.2 Khoảng cách an toàn (quiet zone)
Mã vạch cần có khoảng trống trắng ít nhất 10% chiều rộng tổng mã vạch ở hai đầu. Khi in trong Excel, bạn có thể thêm cột trắng hoặc đặt lề ô.
6.3 Kiểm tra trước khi in
- Print Preview: Kiểm tra bố cục.
- Test Scan: In mẫu 5-10 mã, sau đó quét để chắc chắn mọi mã đều đọc được.
7. Ứng Dụng Thực Tế
7.1 Quản lý kho
- Ghi mã vạch vào danh sách Excel.
- Khi nhập xuất, quét mã để tự động cập nhật số lượng.
7.2 Nhãn giá bán lẻ
- Tạo file Excel chứa tên sản phẩm, giá, mã vạch.
- Dùng mail merge (Word) hoặc add‑in in nhãn để in hàng loạt.
7.3 Theo dõi công việc
- Mã vạch cho tài liệu, hồ sơ, thiết bị.
- Quét để kiểm tra vị trí, trạng thái.
8. Những Lỗi Thường Gặp Và Cách Khắc Phục
| Lỗi | Nguyên nhân | Giải pháp |
|---|---|---|
| Mã vạch không đọc được | Font chưa được áp dụng | Đảm bảo ô đang dùng font mã vạch, không phải Arial |
| Quét trả về ký tự “ABC123” | Quên thêm ký tự start/stop | Đối với Code 39, luôn bao quanh bằng |
| Kiểm tra checksum sai (EAN‑13) | Công thức không tính đúng vị trí chẵn/lẻ | Kiểm tra lại dãy vị trí trong SUMPRODUCT |
| Macro không chạy | Bảo mật macro bị tắt | Vào File → Options → Trust Center → Trust Center Settings → Macro Settings → Chọn “Enable all macros” (cẩn thận) |
| Font hiển thị lỗi trên máy khác | Font chưa được cài đặt trên máy | Cài đặt font trên tất cả máy dùng chung file |
9. Tối Ưu Hoá và Mở Rộng
9.1 Sử dụng Power Query
Nếu dữ liệu mã vạch được lấy từ hệ thống ERP, bạn có thể dùng Power Query để tự động import, tạo cột mã vạch và cập nhật.
9.2 Kết nối với Power BI
Sau khi tạo mã vạch trong Excel, có thể import file vào Power BI để trực quan hoá kho hàng, bán hàng, và sử dụng QR Code để liên kết tới trang web sản phẩm.
9.3 Tự động gửi email kèm mã vạch
Với VBA, bạn có thể tạo macro gửi email (Outlook) kèm file PDF chứa mã vạch cho từng khách hàng.
Sub GuiMailMaVach() Dim OutApp As Object, OutMail As Object Dim rng As Range, bodyText As String Set OutApp = CreateObject("Outlook.Application") For Each rng In Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row) Set OutMail = OutApp.CreateItem(0) bodyText = "Kính gửi " & rng.Offset(0, 1).Value & vbCrLf & _ "Mã vạch sản phẩm: " & rng.Offset(0, 2).Value With OutMail .To = rng.Offset(0, 3).Value ' email ở cột D .Subject = "Mã vạch sản phẩm " & rng.Value .Body = bodyText .Display ' hoặc .Send để gửi trực tiếp End With Next rng
End Sub
10. Kết Luận
Việc tạo mã vạch trong Excel không còn là công việc phức tạp hay đòi hỏi phần mềm đắt tiền. Với một vài bước cài đặt font, công thức đơn giản, hoặc một đoạn VBA ngắn, bạn đã có thể:
- Tự động sinh mã vạch Code 39, Code 128, hoặc EAN‑13.
- Kiểm tra và tính toán checksum một cách chính xác.
- In và sử dụng mã vạch trong các quy trình quản lý kho, bán lẻ, và logistics.
- Mở rộng chức năng bằng macro, Power Query, và Power BI để tạo ra một hệ thống quản lý dữ liệu hoàn chỉnh.
Hãy bắt đầu ngay hôm nay: tải font, áp dụng công thức, và biến Excel thành công cụ mạnh mẽ để tạo và quản lý mã vạch cho doanh nghiệp của bạn. Chỉ cần một chút kiên nhẫn và thực hành, bạn sẽ nhanh chóng nắm vững kỹ năng này và nâng cao hiệu suất công việc. Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
