Nancy đang cố gắng để Excel chọn 50 “số” mà mỗi “số” chứa tám ký tự ngẫu nhiên. Các ký tự có thể là chữ số hoặc chữ cái (chữ hoa hoặc chữ thường).

Nếu các số ngẫu nhiên của bạn thực sự là số (chỉ có chữ số), thì việc tạo chúng sẽ dễ dàng. Tất cả những gì bạn cần làm là sử dụng hàm RANDBETWEEN (trong Analysis ToolPak) theo cách sau:

=RANDBETWEEN(10000000,99999999)

Tuy nhiên, đây không phải là điều Nancy muốn. Các “số” ngẫu nhiên của cô ấy cũng có thể chứa các chữ cái viết hoa và viết thường. Điều này trở nên dính hơn một chút.

Tuy nhiên, có một số cách tiếp cận bạn có thể sử dụng.

Một cách tiếp cận là đặt tất cả các ký tự có thể có của bạn vào một ô riêng lẻ, chẳng hạn như B7:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

Đặt tên cho ô này là một cái gì đó hợp lý, chẳng hạn như MySource. Sau đó, bạn có thể sử dụng một công thức như sau để trả về chuỗi ký tự ngẫu nhiên:

=MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

& MID(MySource,RANDBETWEEN(1,LEN(MySource)),1)

Công thức dài; nó đã được chia thành từng dòng để rõ ràng, nhưng nó vẫn là một công thức duy nhất. Nó nối tám ký tự được lấy từ nguồn bạn đã nhập vào ô B7.

Một cách tiếp cận khác là tạo một bảng có chứa tất cả các ký tự bạn muốn trong chuỗi văn bản ngẫu nhiên của mình. Bắt đầu bằng cách đặt các số từ 1 đến 62 vào một cột, mỗi hàng một số. Ở bên trái của những con số này, hãy đặt các ký tự của bạn — A, B, C, D, v.v. (Đây phải là các ký tự giống như bạn đã đặt trong ô B7 trong kỹ thuật trước.) Chọn cả hai cột trong số 62 hàng và đặt tên cho nó , chẳng hạn như MyTable. Sau đó, bạn có thể sử dụng công thức sau để tạo các ký tự ngẫu nhiên:

=VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

& VLOOKUP(RANDBETWEEN(1,62),MyTable,2)

Một lần nữa, hãy nhớ rằng đây là một công thức duy nhất, mặc dù nó ngắn hơn một chút so với công thức trước đó.

Mỗi cách tiếp cận được trình bày cho đến nay đều có một nhược điểm: chúng được tạo lại mỗi khi trang tính của bạn được tính toán lại. Vì vậy, thật khó để có một chuỗi ngẫu nhiên được tạo duy nhất mà không thay đổi thường xuyên. Cách tốt nhất để giải quyết vấn đề này là sử dụng macro, nhưng bạn không nhất thiết phải muốn sử dụng một hàm do người dùng xác định. Tại sao? Bởi vì nó cũng sẽ thay đổi kết quả của nó mỗi khi trang tính được tính toán lại.

Thay vào đó, bạn cần một macro sẽ đặt các chuỗi ngẫu nhiên vào sổ làm việc của bạn bắt đầu từ một vị trí ô cụ thể. Sau đây là một ví dụ về macro như vậy:

Sub MakeRandom()

Dim J As Integer     Dim K As Integer     Dim iTemp As Integer     Dim sNumber As String     Dim bOK As Boolean

Range("D4").Activate     Randomize     For J = 1 To 50         sNumber = ""

For K = 1 To 8             Do                 iTemp = Int((122 - 48 + 1) * Rnd + 48)

Select Case iTemp                     Case 48 To 57, 65 To 90, 97 To 122                         bOK = True                     Case Else                         bOK = False                 End Select             Loop Until bOK             bOK = False             sNumber = sNumber & Chr(iTemp)

Next K         ActiveCell.Value = sNumber         ActiveCell.Offset(1, 0).Select     Next J End Sub

Chạy macro và bất cứ thứ gì trong ô D4: D53 đều bị ghi đè bởi các giá trị ngẫu nhiên. Nếu bạn muốn các giá trị được ghi vào một vị trí khác, hãy thay đổi câu lệnh Phạm vi gần đầu macro.

_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 (3872) á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: