Tạo mã Test từ các chữ số

Liên hệ QC

tiencruise

Thành viên mới
Tham gia
20/5/08
Bài viết
37
Được thích
0
Điểm
0
Hi các anh chị!
Em muốn tạo ra 10,000 mã Item không trùng nhau trên excel với các mã này gồm 10 chữ số cấu thành từ các chữ cái.
Không biết có cách nào không mấy anh.
VD: AAAAAAAAAA
BBBBBBBBBBB
Sau đó hoán vị chúng thế nào thì em không biết cách làm.
Mong các anh chỉ giúp.
 
Lần chỉnh sửa cuối:
Mã gì mà kỳ vậy
Tôi nghĩ nó phải là: AA.... A rồi đến AA... B rồi đến AA... C ---> Đúng không?
Hay bạn thử liệt kê ra khoảng 10 đến 20 mã liên tiếp nhau xem
 
Mã gì mà kỳ vậy
Tôi nghĩ nó phải là: AA.... A rồi đến AA... B rồi đến AA... C ---> Đúng không?
Hay bạn thử liệt kê ra khoảng 10 đến 20 mã liên tiếp nhau xem

Đúng rồi anh àh. Tức là mình hoán vị các ký tự như thế nào đấy, để được 10,000 mã khác nhau.
VD: AAAAAAAAAA
AAAAAAAAAB
AAAAAAAAAC
................
ZZZAAAAAAA
.................
Hoán vị 24 chữ cái đó anh.
 
Lần chỉnh sửa cuối:
Đúng rồi anh àh. Tức là mình hoán vị các ký tự như thế nào đấy, để được 10,000 mã khác nhau.
VD: AAAAAAAAAA
AAAAAAAAAB
AAAAAAAAAC
................
ZZZAAAAAAA
.................
Hoán vị 24 chữ cái đó anh.
Paste công thức này vào A1 rồi Filldown thử xem:
Mã:
=CHAR(64+MOD(CEILING(ROW()/(26^9),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/(26^8),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/(26^7),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/(26^6),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/(26^5),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/(26^4),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/(26^3),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/(26^2),1)-1,26)+1)&CHAR(64+MOD(CEILING(ROW()/26,1)-1,26)+1)&CHAR(64+MOD(ROW()-1,26)+1)
Hoặc dùng UDF này:
PHP:
Function NextCode(Str As String) As String
Dim MyArray
Z = 0
For i = Len(Str) To 1 Step -1
    If Mid(Str, i, 1) = "Z" Then
    Z = Z + 1
    Else
    Exit For
    End If
Next
NextCode = Left(Str, Len(Str) - Z - 1) & ChrW(AscW(Mid(Str, Len(Str) - Z, 1)) + 1) & String(Z, "A")
End Function
 

File đính kèm

  • NextCode.xls
    33.5 KB · Đọc: 32
Lần chỉnh sửa cuối:
Để tạo 10.000 mã khác nhau dựa vào ký tự ABC thì đâu cần đến 10 ký tự ---> Chỉ 3 ký tự đã tạo ra được 17576 mã rồi
Code của bạn Huuthang có 1 nhược điểm là phải biết trước mã đầu tiên, từ đó mới tìm ra được NextCode
Tôi đề xuất phương án khác... 1 UDF theo dạng:
MakeCode(Vị trị của mã, độ dài của mã)
PHP:
Function MakeCode(StrPos As Long, StrLength As Byte)
  Dim i As Long, Code As Double
  MakeCode = String(StrLength, "A")
  For i = 0 To StrLength - 1
    Code = (Int((StrPos - 1) / 26 ^ i) Mod 26) + 65
    MakeCode = WorksheetFunction.Replace(MakeCode, StrLength - i, 1, Chr(Code))
  Next
End Function
Xem file
 

File đính kèm

  • MakeCode.xls
    26.5 KB · Đọc: 12
Web KT
Back
Top Bottom