Soru Belli bir şarta bağlı rastgele sayı üretimi hakkında

Katılım
5 Temmuz 2018
Mesajlar
3
Excel Vers. ve Dili
Excel 2016, Türkçe
Bir hücreye sayı girilecek, ve ortalaması girilen sayı olacak 5 farklı sayı oluşturmam lazım. Aynı zamanda üretilen bu sayılar belli bir aralıkta olsun istiyorum, örneğin 85 ile 100 arasında değerler alsın.
Örnek olarak girilen sayı 96 olsun, üretilecek sayılar da 99,97,94,92,98 gibi ortalaması 96 olacak sayılar olacak. Ama örnekte görüldüğü gibi üretilen sayılar 90 ile 100 arasında olacak. Bunu nasıl bir formül ile sağlayabilirim.
 
Son düzenleme:
Katılım
12 Ağustos 2012
Mesajlar
1
Excel Vers. ve Dili
Excel 2016
Türkçe
Altın Üyelik Bitiş Tarihi
14.05.2019
Boş bir hücreye "+rastgelearada(90;100)" yazıp aşağıya doğru çekersen, tüm değerlerin ortalaması yazdığımız bu 2 değerin ortalaması olan "95" ile aşağı yukarı aynı olur. Ortalamanın illa 96 olması gerek dersen formüldeki ilk değeri 92 yapabilirsin.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Makrolu çözüm aşağıda
Kod:
Sub a()
ilk = 85
son = 100
ort = 96
Range("A1:A5").ClearContents
Do While (Application.Sum(Range("A1:A5")) / 5) <> ort
say = 1
Do While say < 6
aa = Int((son - ilk + 1) * Rnd + ilk)
Randomize
If Application.CountIf(Range("A1:A" & say), aa) = 0 Then
Range("A" & say).Value = aa
say = say + 1
End If
Loop
Loop
End Sub
 
Katılım
5 Temmuz 2018
Mesajlar
3
Excel Vers. ve Dili
Excel 2016, Türkçe
Makrolu çözüm aşağıda
Kod:
Sub a()
ilk = 85
son = 100
ort = 96
Range("A1:A5").ClearContents
Do While (Application.Sum(Range("A1:A5")) / 5) <> ort
say = 1
Do While say < 6
aa = Int((son - ilk + 1) * Rnd + ilk)
Randomize
If Application.CountIf(Range("A1:A" & say), aa) = 0 Then
Range("A" & say).Value = aa
say = say + 1
End If
Loop
Loop
End Sub
Cevabınız için çok teşekkür ederim, burada ortalamanın sabit olmaması lazım, ben bu ortalama değerini değiştirdikçe 5 farklı sayıyı üretmesi lazım.. Ayrıca söz konusu bu ortalama değerinden yaklaşık 1000 küsür sayı var. Bunların her biri için farklı 5 sayı ürettirmem lazım..Bunu nasıl yapabiliriz?
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
O zaman 85 ila 100 arasında 1000 küsur ortalama sayısı olmayacağına göre 85 ve 100 sayıları da değişken
 
Katılım
5 Temmuz 2018
Mesajlar
3
Excel Vers. ve Dili
Excel 2016, Türkçe
O zaman 85 ila 100 arasında 1000 küsur ortalama sayısı olmayacağına göre 85 ve 100 sayıları da değişken
Hayır 85 ile 100 arasında ortalama değerlerinin hepsi tam sayı değil, 98 den başlıyor 97,99 - 97,97 - 97,95 bunun gibi ondalık olarak düşüyor. Fakat elde edilen 5 adet rastgele sayının tam sayı olması gerekiyor. Bunun için ondalık azalmaları program kendi ayarlayabilir mi?
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
ortalamalar 98>97.99>97.97............ şeklinde oluşmaz. 98>97.8>97.6 şeklinde oluşur, Çünkü herhangi bir sayının 5 e bölümünün ondalık hanesi birdir ve bu sayı çift sayıdır.
bu ortalamaların en büyüğü 98 ve en küçüğü 87 olmak üzere 56 adet oluşur.
Bu duruma göre konuyu teyit ederseniz, makroyu revize edeyim.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,017
Excel Vers. ve Dili
2013 Türkçe
Merhaba,
Alternatif olarak deneyebilirsiniz.

Sub Ortalama()
Application.ScreenUpdating = False
a = 96
Range("A1:A5") = a
Randomize
For i = 1 To 50
5
n = WorksheetFunction.Round(Rnd(), 2)

x = WorksheetFunction.RandBetween(1, 5)
If Cells(x, 1) + n > 100 Then GoTo 5
10
y = WorksheetFunction.RandBetween(1, 5)
If x = y Then GoTo 10
If Cells(y, 1) - n < 85 Then GoTo 10
Cells(x, 1) = Cells(x, 1) + n
Cells(y, 1) = Cells(y, 1) - n
Next
End Sub
 
Üst