Excel formülü: Rastgele sayı ağırlıklı olasılık -

İçindekiler

Genel formül

=MATCH(RAND(),cumulative_probability)

Özet

Belirli bir olasılıkla ağırlıklandırılmış rastgele bir sayı oluşturmak için RAND ve MATCH işlevlerine dayalı bir formülle birlikte bir yardımcı tablo kullanabilirsiniz.

Gösterilen örnekte, F5'teki formül şöyledir:

=MATCH(RAND(),D$5:D$10)

Açıklama

Bu formül, B4: D10 aralığında görünen yardımcı tabloya dayanır. Sütun B, nihai sonuç olarak istediğimiz altı sayıyı içerir. Sütun C, yüzde olarak girilen her sayıya atanan olasılık ağırlığını içerir. Sütun D, ​​D5'te bu formülle oluşturulan ve aşağıya kopyalanan kümülatif olasılığı içerir:

=SUM(D4,C4)

Dikkat edin, kümülatif olasılığı kasıtlı olarak bir satır aşağı kaydırıyoruz, böylece D5'teki değer sıfır olur. Bu, MATCH'ın aşağıda açıklandığı gibi sıfıra kadar tüm değerler için bir konum bulmasını sağlamak içindir.

Yardımcı tablodaki ağırlıklı olasılığı kullanarak rastgele bir değer oluşturmak için, F5 aşağıdaki formülü içerir, aşağı kopyalanır:

=MATCH(RAND(),D$5:D$10)

MATCH içinde, arama değeri RAND işlevi tarafından sağlanır. RAND, sıfır ile 1 arasında rastgele bir değer üretir. Arama dizisi D5: D10 aralığıdır ve kilitlidir, bu nedenle formül sütundan aşağıya kopyalanırken değişmez.

MATCH için üçüncü bağımsız değişken olan eşleme türü atlanmıştır. Eşleme türü atlandığında, KAÇINCI, arama değerinden küçük veya ona eşit en büyük değerin konumunu döndürür *. Pratik anlamda bu, MATCH işlevinin daha büyük bir değerle karşılaşılana kadar D5: D10'daki değerler boyunca hareket ettiği ve ardından önceki konuma "geri adım attığı" anlamına gelir. KAÇINCI, D5: D10'daki en büyük son değerden daha büyük bir değerle karşılaştığında (örnekte .7), son konumu (örnekte 6) döndürür. Yukarıda bahsedildiği gibi, .1'in altındaki değerlerin arama tablosu tarafından "yakalanmasını" ve 1 konumuna dönmesini sağlamak için D5: D10'daki ilk değer kasıtlı olarak sıfırdır.

* Arama aralığındaki değerler artan sırada sıralanmalıdır.

Rastgele ağırlıklı metin değeri

Rastgele ağırlıklı bir metin değeri (yani sayısal olmayan bir değer) döndürmek için, B5: B10 aralığında metin değerleri girebilir, ardından MATCH tarafından döndürülen konuma bağlı olarak bu aralıkta bir değer döndürmek için INDEX ekleyebilirsiniz:

=INDEX($B$5:$B$10,MATCH(RAND(),D$5:D$10))

Notlar

  1. Bu yaklaşıma mrexcel.com'daki bir forum gönderisinde rastladım.
  2. RAND geçici bir işlevdir ve her çalışma sayfası değişikliğinde yeniden hesaplanır
  3. Rastgele değer (ler) elde ettiğinizde, gerekirse formülü değiştirmek için özel> değerleri yapıştır'ı kullanın

Ilginç makaleler...