Chào mọi người,
Dạo gần đây mình có làm một dự án nhỏ cần quản lý đơn hàng và gặp một vấn đề khá hay: làm sao để tự động tạo mã đơn hàng duy nhất cho mỗi lần nhập liệu mới, mà không bị trùng lặp?
Ban đầu mình định dùng Apps Script, nhưng sau khi tìm hiểu thì thấy có một cách dùng công thức Google Sheets cũng rất hiệu quả và đơn giản hơn nhiều. Mình muốn chia sẻ lại cho anh em nào đang gặp tình huống tương tự.
Ý tưởng là mình sẽ kết hợp ngày tháng hiện tại với một số thứ tự tăng dần. Ví dụ, nếu hôm nay là ngày 25/10/2023, mã đơn hàng có thể có dạng 20231025-001, 20231025-002, v.v.
Công thức mình dùng như sau:
=TEXT(TODAY(), "yyyymmdd") & "-" & TEXT(COUNTIF(A:A, TEXT(TODAY(), "yyyymmdd") & "*") + 1, "000")Trong đó:
A:Alà cột chứa mã đơn hàng bạn muốn tạo.TEXT(TODAY(), "yyyymmdd")sẽ lấy ngày hiện tại và định dạng thành dạngYYYYMMDD.COUNTIF(A:A, TEXT(TODAY(), "yyyymmdd") & "*") + 1sẽ đếm xem trong cột A đã có bao nhiêu mã bắt đầu bằng ngày hôm nay, rồi cộng thêm 1 để ra số thứ tự tiếp theo.TEXT(..., "000")định dạng số thứ tự đó thành 3 chữ số (ví dụ: 001, 002, ..., 010, ...).
Các bạn chỉ cần dán công thức này vào ô đầu tiên của cột mã đơn hàng (ví dụ ô A2) và kéo xuống hoặc để trống ô bên cạnh, khi nhập liệu vào ô đó, công thức ở cột mã đơn sẽ tự động cập nhật.
Cách này khá tiện vì nó đảm bảo mã đơn hàng luôn duy nhất trong ngày, lại không cần can thiệp thủ công. Anh em nào có cách nào hay hơn hoặc gặp vấn đề gì thì cùng thảo luận nhé!