• DİKKAT

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

Excel yuzdeye göre rasgele sayı atama?

Katılım
25 Haziran 2011
Mesajlar
42
Excel Vers. ve Dili
microsoft excel 2003
selam elimde a1 den a85 ekadar 85 hucrelik sayı var ve her sayının yanında da yuzdesi var.

d3 hucresine bu 85 sayıdan birini yanındaki yuzdeyi baz alarak rasgele sayı atayan bir formul istiyorum .(her defasında farklı sayılar gelebilecek) umarım anlata bilmişimdir.
 
"Yanındaki yüzdeyi baz alarak" ne demek?
 
Anlatılandan anladığım kadarı ile
A sütunda sayılar B sütunda yüzdeler C sütüna da yüzdeye göre sayı üretsin.
Aşağıdaki kodu bir butona atayınız.

Kod:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Range("C2:C85") = ""
Range("C2:C85") = "=INT(RAND()*1000*$B2)"
Range("C2:C85") = Range("C2:C85").Value
End Sub
 
https://yadi.sk/d/7SId1aaKgRJdRburaya örnek dosya attım oradaki "tamsayı" formülü rasgele sayı atarken yuzdeleri baz alsın yan yüzdesş yüksek olan sayının gelme olasılıgı daha fazla olsun.
 
Aşağıdaki kodları bir modüle yapıştırıp deneyiniz. Öncesinde sayfa1'deki en alt toplam hücresini silin, isterseniz yüzde bulmak için aşağıdaki formülü kullanabilirsiniz:

Kod:
=(A2*100/TOPLA($A$2:$A$8600))

Kod:
Sub sayı()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")

son1 = WorksheetFunction.Max(2, s1.Cells(Rows.Count, 1).End(3).Row)
son2 = WorksheetFunction.Max(2, s2.Cells(Rows.Count, 1).End(3).Row)

s2.Range("A2:A" & son2).ClearContents
toplam = WorksheetFunction.Sum(s1.Range("A2:A" & son1))

For i = 2 To son1
yeni = WorksheetFunction.Max(2, s2.Cells(Rows.Count, 1).End(3).Row + 1)
yüzde = Int(s1.Cells(i, 1) * 10000 / toplam)
    For j = yeni To yeni + yüzde - 1
        s2.Cells(j, 1) = Int(s1.Cells(i, 1) * 10000 / toplam)
    Next
Next
s1.[c2].Formula = "=INT((RAND()*Sayfa2!A2:A" & j -1& ")+1)"

End Sub
 
Son düzenleme:
verdiğiniz kodda " s1.[c2].Formula = "=INT((RAND()*Sayfa2!A2:A" & j -1& ")+1)" " bu bölüm kırmızı yandı ve hata verdi.

Ayrıca macro degil de formulle olursa sevinirim.
 
Dosyanızda Sayfa2 var mı?
 
Bir de bu forum sayesinde excelde bir şey yapılamaz dememeyi öğrendim. Bunun için her ne kadar ben yapamayacak olsam da formülle yapılamaz diyemiyorum.
 
düzeltilmiş mesaj alttadır.
 
Son düzenleme:
Merhaba,

A sütununda sayılarınız, B sütununda da yüzdeler varsa, ve A sütunundaki sayılar 1-85 arasında sırasıyla gidiyorsa,

Türkçe Excel için:

C1 hücresine : =RASTGELEARADA(A1:A85)
D1 hücresine : =DÜŞEYARA(C1;A1:B85;2;0)


İngilizce Excel için :

C1 hücresine : =RANDBETWEEN(A1;A85)
D1 hücresine : =VLOOKUP(C1;A1:B85;2;0)


Formüllerini yapıştırın. Verileriniz arasından rastgele seçilen değer D1 hücresindedir.

A sütunundaki sayılarınız sırayla gitmiyorsa, bu durumda A ve B sütunlarını 1' er sütun kaydırıp A sütununa 1-85 arası sayıları sırasıyla girin ve rastgele seçim formülünü D1 hücresine, B hücresindeki seçimi düşeyara ile D1' deki rakama göre E1 hücresine, ve yüzdeli seçimi de F1 hücresine E1' deki rakama göre uygulayın.

İyi çalışmalar,
 
Son düzenleme:
Merhaba,

A sütununda sayılarınız, B sütununda da yüzdeler varsa, ve A sütunundaki sayılar 1-85 arasında sırasıyla gidiyorsa,

Türkçe Excel için:

C1 hücresine : =RASTGELEARADA(A1:A85)
D1 hücresine : =DÜŞEYARA(C1;A1:B85;2;0)


İngilizce Excel için :

C1 hücresine : =RANDBETWEEN(A1;A85)
D1 hücresine : =VLOOKUP(C1;A1:B85;2;0)


Formüllerini yapıştırın. Verileriniz arasından rastgele seçilen değer D1 hücresindedir.

A sütunundaki sayılarınız sırayla gitmiyorsa, bu durumda A ve B sütunlarını 1' er sütun kaydırıp A sütununa 1-85 arası sayıları sırasıyla girin ve rastgele seçim formülünü D1 hücresine, B hücresindeki seçimi düşeyara ile D1' deki rakama göre E1 hücresine, ve yüzdeli seçimi de F1 hücresine E1' deki rakama göre uygulayın.

İyi çalışmalar,
sayın MFA2000 öncelikle soruma cevap yazdıgınız için tesekkurler.
fakat vermiş oldugunuz formulü galiba çalıştıramadım acaba örnek dosya yapabilirmisiniz?
 
Merhaba,

Örnek dosyayı aşağıdaki linkten indirebilirsiniz. 2 seçenekli cevap var: Yüzdelerin yanındaki rakamlar A sütunundaki gibi 1-85 arası sıralı ise C-D sütunlarındaki formülasyonu kullanın, seçim D1 hücresindedir; yüzdelerin yanındaki rakamlar I sütunundaki gibi karışık ise, o takdirde H sütunundaki gibi rakamları 1-85 arası sıralayın, daha sonra K1-L1-M1 hücrelerindeki formülasyonu kullanın, seçilen değer M1 hücresindedir.

İyi çalışmalar,

https://yadi.sk/i/RalCvS9-gYdvC
 
Geri
Üst