Tạo tên tuần tự, duy nhất (Microsoft Excel)
Steven đang thử nghiệm một số phần mềm và anh ta cần đưa vào chương trình một loạt các tên “giả”. Anh ấy muốn những cái tên này được mô phỏng như Nameaaa, Nameaab, Nameaac, v.v. thông qua Namezzz. Điều này sẽ yêu cầu tạo 17.576 tên (26 x 26 x 26). Anh ấy tự hỏi liệu có cách nào dễ dàng để tạo tất cả những tên này trong Excel không.
Loại nhiệm vụ lặp đi lặp lại này chỉ đòi hỏi một macro. (Chúng rất phù hợp để thực hiện các công việc nhàm chán, buồn tẻ, lặp đi lặp lại mà bạn không muốn làm theo cách thủ công.) Đây là một macro đơn giản có thể thực hiện công việc khó khăn cần thiết:
Sub CreateNames() Dim i As Integer Dim x As Integer Dim y As Integer Dim z As Integer i = 1 For x = 97 To 122 For y = 97 To 122 For z = 97 To 122 Cells(i, 1) = "Name" & Chr(x) _ & Chr(y) & Chr(z) i = i + 1 Next Next Next End Sub
Macro sử dụng ba biến đếm (x, y và z) để làm “biến đếm” kiểm soát chữ cái nào trong bảng chữ cái được nối với “tên” được nhồi vào ô. Lưu ý rằng các vòng lặp For … Next nằm trong khoảng từ 97 đến 122, là mã ASCII cho chữ thường từ a đến z.
Nếu bạn không muốn sử dụng macro vì lý do nào đó, hãy nhập công thức sau vào ô A1 của trang tính trống:
="Name" & CHAR((ROW()-1)/676+97)&CHAR(MOD( (ROW()-1)/26,26)+97)&CHAR(MOD(ROW()-1,26)+97)
Đây là một công thức duy nhất và nó dẫn đến “Nameaaa” được hiển thị.
Sao chép công thức xuống hàng 17,576 và bạn sẽ có tên giả của mình.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (12128) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.
Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: