Tạo dãy số ngẫu nhiên bị giới hạn

  • Thread starter Thread starter bactu
  • Ngày gửi Ngày gửi
Liên hệ QC

bactu

Thành viên thường trực
Tham gia
19/10/07
Bài viết
304
Được thích
277
Donate (Momo)
Donate
Nhờ các bác giúp dzùm em cách tạo dãy số ngẫu nhiên bị giới hạn trên và dưới. Có file đính kèm! Mình làm thử hàm rand mà không được.

Cảm ơn nhiều!

Chúc cả gia đình GPE cuối tuần vui vẻ!
 

File đính kèm

Bạn dùng công thức này để lấy số ngẫu nhiên nằm trong 1 vùng đk bất kỳ. Nếu vùng đk thay đổi thì bạn chỉ cần thay đổi 3 số đuôi của công thức là được.
=INT(MOD(RAND()*10000000,2350-1950))+1950
Thân.
 
Dùng hàm có sẵn của Excel:
= RandBetween(Bottom, Top)
 
Nhờ các bác giúp dzùm em cách tạo dãy số ngẫu nhiên bị giới hạn trên và dưới. Có file đính kèm! Mình làm thử hàm rand mà không được.

Cảm ơn nhiều!

Chúc cả gia đình GPE cuối tuần vui vẻ!


Bạn có thể dùng macro sau:
Mã:
Sub CreateRndNums()
Dim Rng As Range, loB As Long, upB As Long
Dim arr()
    Application.ScreenUpdating = False
    loB = [A1]
    upB = [A2]
    Randomize
    ActiveSheet.Range("A6").Resize(65000, 2).ClearContents
    Set Rng = ActiveSheet.Range("A6").Resize(upB - loB + 1, 2)
    With Rng
        .Columns(1).Formula = "=round(1  + rand()*65000,0)"
        .Columns(1) = .Columns(1).Value
        .Columns(2) = Evaluate("row(" & loB & ":" & upB & ")")
        .Sort key1:=Rng(1, 1), Header:=xlNo
        .Columns(1).Delete shift:=xlShiftToLeft
    End With
    Application.ScreenUpdating = True
End Sub
 
Hình như là : RAND()*(b-a)+a thì phải
(Theo Help của Ex)

Cụ thể theo bài của bạn là : RAND()*(2350-1950)+1950
Nếu muốn lấy số nguyên thì thêm hàm INT phía trước nữa
Thân
 
Lần chỉnh sửa cuối:
Hình như hàm Randbetween là hàm thuộc add-ins Analysis Toolpak thì phải.
 
Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom