Tạo dữ liệu kiểm tra ngẫu nhiên (Microsoft Excel)
Khi bạn phát triển các trang tính sẽ được người khác sử dụng, bạn nên kiểm tra các trang tính đó để đảm bảo rằng chúng hoạt động như bạn mong đợi.
Điều này đặc biệt đúng với các trang tính có chứa công thức phức tạp hoặc sẽ được sử dụng cho các mục đích quan trọng. Khái niệm kiểm tra trang tính có nghĩa là bạn sẽ cần tạo một số loại dữ liệu để sử dụng trong việc kiểm tra trang tính.
Toàn bộ sách đã được viết về việc tập hợp các bộ kiểm thử cho phần mềm. Mức độ nghiêm ngặt của bạn trong việc biên dịch dữ liệu thử nghiệm, phần lớn phụ thuộc vào nhu cầu của khán giả và bản chất của trang tính của bạn.
Thật không may, không có cách chữa trị nhanh chóng nào sẽ tự động tìm ra thứ bạn cần và tạo dữ liệu cho bạn. Tuy nhiên, có những công cụ trong Excel mà bạn có thể sử dụng cho mục đích này.
Trước tiên, nếu bạn cần tạo các giá trị số ngẫu nhiên, bạn có thể sử dụng các hàm trang tính RAND hoặc RANDBETWEEN. Sự khác biệt là RAND tạo ra một giá trị từ 0 đến 1 và RANDBETWEEN tạo ra các giá trị nguyên giữa bất kỳ giới hạn nào bạn đặt.
Tuy nhiên, dữ liệu ngẫu nhiên có thể không phù hợp với nhu cầu thử nghiệm của bạn. Điều này đặc biệt đúng khi bạn đang kiểm tra ranh giới các công thức của mình.
Ví dụ: thử nghiệm với các giá trị lớn, giá trị nhỏ hoặc kết hợp các giá trị lớn và nhỏ. Tương tự như vậy, bạn có thể muốn kiểm tra các giá trị không phù hợp, chẳng hạn như sử dụng văn bản làm đầu vào thay vì số (hoặc ngược lại). Có rất nhiều điều kiện bạn cần phải suy nghĩ kỹ và sau đó chọn loại dữ liệu phù hợp với nhu cầu của bạn.
Nếu muốn, bạn có thể sử dụng macro để tạo dữ liệu thử nghiệm. Macro sau đây điền vào một phạm vi ô đã chọn với giá trị số ngẫu nhiên, giữa bất kỳ ranh giới nào (tối thiểu và tối đa) mà bạn đặt.
Sub RandNums() Dim MyRange As Range Dim lMin As Long, lMax As Long Dim dRand As Double ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value lMin = CLng(InputBox("Minimum?")) lMax = CLng(InputBox("Maximum?")) Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dRand = Rnd * (lMax - lMin) + lMin ' Use the following line only if the random ' value should be an integer ' dRand = Int(dRand) c.Value = dRand Next c Application.ScreenUpdating = True End Sub
Để sử dụng macro, chỉ cần chọn một dải ô mà bạn muốn chứa các giá trị số ngẫu nhiên, rồi chạy macro. Nếu bạn phải sử dụng các giá trị nguyên trong các ô, thì bạn có thể “bỏ ghi chú” dòng ghi chú trong macro.
Nếu bạn muốn điền vào một dải ô với ngày ngẫu nhiên, thì một sửa đổi nhỏ đối với macro RandNums sẽ dẫn đến kết quả sau.
Sub RandDates() Dim MyRange As Range Dim dtMin As Date, dtMax As Date Dim dtRand As Date ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value ' From: 1/1/1990 (put your start Date) dtMin = #1/1/1990# ' To: Today dtMax = Date Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dtRand = Rnd * (dtMax - dtMin) + dtMin dtRand = Int(dtRand) c.Value = dtRand ' Change format for cell, below, as desired c.NumberFormat = "m/d/yyyy" Next c Application.ScreenUpdating = True End Sub
Một lần nữa, chỉ cần chọn một phạm vi và sau đó chạy macro. Bạn có thể sửa đổi các giá trị ban đầu được đặt thành các biến dtMin và dtMax để chỉ định ranh giới cho các ngày mong muốn. Bạn cũng có thể, nếu muốn, thay đổi định dạng áp dụng cho các ô sau khi ngày ngẫu nhiên được lưu trữ trong các ô.
_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 (2077) á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: