• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Random Sayı Üretme

Katılım
13 Aralık 2010
Mesajlar
16
Excel Vers. ve Dili
2013 Türkçe
İstenilen Ortalamada Random Sayı Türetme

Merhaba Arkadaşlar,

Benim sorum belirli alt ve üst limit arasında belirli bir ortalama değerini sağlayacak rastgele sayı üretilmesine dair. Daha önce de böyle bir konu açılmış fakat cevap alınamamış. Yardımcı olabilecek olursanız çok sevinirim..
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Bir örnek dosya ekleyerek basit olarak nasıl bir işlem yapmak istediğinizi açıklar mısınız?
 
Merhaba;
Ekteki dosyada ben 48 ve 50 arasında virgülden sonra iki basamak olacak şekilde sayı türettirdim. Ama ortalamalrının da 49 olmasını istiyorum örneğin.
 
Merhaba,
A28 hücresine,
=49*28-TOPLA(A1:A27) formülünü uygulayınız.
 
Ama bulunan sayı 48-50 arasında olmayabilir. Onun için makro yazmak gerekir.
 
48-50 arası için
Sub Rastgele()
Application.ScreenUpdating = False
Range("A28:AC28") = "=49*28-SUM(A1:A27)"
For i = 1 To 29
10
Range(Cells(1, i), Cells(27, i)) = "=ROUND(RAND()*2+48,2)"
If Cells(28, i) < 48 Or Cells(28, i) > 50 Then GoTo 10
Range(Cells(1, i), Cells(28, i)) = Range(Cells(1, i), Cells(28, i)).Value
Next
End Sub

Kodu kullanınız.
 
Üretilen sayıların ortalamasının 49 olması şartıda vardı. Bunun için makrolu çözüm gereklidir. Aşağıdaki kod ile bu işlemi yapabilirsiniz.

Kod:
Sub Rastgele_Sayi_Uret()
    Dim X As Integer
    
    Range("A1:AC28").ClearContents
    
    For X = 1 To 29
10      Range(Cells(1, X), Cells(28, X)).Formula = "=ROUND(RAND()*(50-48)+48,2)"
        Range(Cells(1, X), Cells(28, X)).Value = Range(Cells(1, X), Cells(28, X)).Value
        If WorksheetFunction.Average(Range(Cells(1, X), Cells(28, X))) <> 49 Then GoTo 10
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Sn Korhan Bey,
Yazmış olduğunuz kod uzun sürebilir. Onun yerine bir tane sayısı gelebilecek sayı olarak çözmek daha kullanışlı olacaktır.
 
Her ikinize de çok teşekkür ederim, elinize sağlık..
 
Muhammet Bey,

Elbetteki kodun hızlı çalışması için tek hücreye yönelmek avantajlıdır. Fakat işin içine koşullar girince durum değişiyor. Üyemiz mesajında ayrıca "virgülden sonra iki basamak olacak şekilde" ifadesinide kullanmış. Benim önerdiğim kodda bu koşul yok. Eğer bunu da eklersek çözüme ulaşmak için excel epey uğraşacaktır. Ben alternatif çözüm sundum. Üyelerimiz hangisini isterse onu kullanabilirler.
 
Geri
Üst