Excel'de atanan olasılıklara göre rastgele değer nasıl oluşturulur?
Excel ile çalışırken, belirli temel olasılıkları yansıtan rastgele değerler oluşturmanız gerekebilir. Örneğin, aşağıdaki ekran görüntüsünde gösterildiği gibi, çeşitli olası sonuçları ve bunlara karşılık gelen olasılıkları içeren bir tablonuz olduğunu varsayalım.
Bu senaryo, iş simülasyonları, proje modellemesi ve eğitim amaçları için yaygındır; burada rastgele seçimin, verileriniz tarafından belirlenen olasılığı veya sıklığı doğru şekilde yansıtmak istenir.
Tipik ihtiyaçlar ve kullanım örnekleri şunlardır:
- Anket yanıtlarını veya müşteri seçimlerini, belirli yanıtların daha olası olacak şekilde simüle etme.
- Olasılık kavramlarını öğretmek amacıyla test veri kümeleri oluşturun veya rastgele çekilişler yapın.
- Her seçeneğin bilinen bir şansa sahip olduğu seçim süreçlerini otomatikleştirin.
- Oyun tasarımı ve risk analizinde sonuçların belirli olasılık dağılımlarına dayanması gerekir.
Aşağıda, Excel’de atanan olasılıklara göre rastgele değerler oluşturmanın birkaç yöntemi yer almaktadır: standart formüllere dayalı teknikler, gelişmiş VBA otomasyonu ve Excel’in yerleşik Veri Analizi Araçları eklentisi.
➤ VBA: Atanan olasılıklarla rastgele değerler oluştur
Olasılığa göre rastgele değer oluştur
Excel, belirtilen olasılıklara göre rastgele değerler oluşturmak için erişilebilir bir formül tabanlı çözüm sunar. Bu yöntem hızlı görevler için idealdir, çalışma sayfaları içinde tamamen çalışır ve ek kurulum gerektirmez.
Başlamadan önce, değerlerinizin tek bir sütunda (A2:A8) ve karşılık gelen olasılıklarının (0 ile 1 arasında ondalık olarak ifade edilir) hemen yanındaki sütunda (B2:B8) listelendiğinden emin olun. Doğruluk açısından bu olasılıkların toplamı 1’e eşit olmalıdır. Bu çözüm, yönetilebilir sayıda değere sahip tablolar için idealdir.
1.In an adjacent column (beginning at C2), kümülatif olasılıkları hesaplamak için aşağıdaki formülü girin:
=SUM($B$2:B2) Ardından, bu formülü tüm değerlerinizi kapsayacak şekilde aşağı doğru sürükleyin. Böylece her değer için kümülatif aralıklar oluşturmuş olursunuz ve bir rastgele sayıyı belirli bir sonuca eşlemeniz kolaylaşır.
2.Herhangi bir boş hücreye (örneğin D2), olasılık dağılımınıza göre rastgele bir değer döndürmek için aşağıdaki formülü girin:
=INDEX(A$2:A$8,COUNTIF(C$2:C$8,"<="&,RAND())+1) Rastgele bir değer görüntülemek için Enter tuşuna basın. Her F9 tuşuna bastığınızda (yeniden hesaplama) veya çalışma sayfasındaki veriler değiştiğinde yeni bir sonuç görünür.
İpuçları ve Önlemler:
- B sütunundaki olasılıkların adil dağılımını sağlamak için toplamları tam olarak 1’e (veya yüzdeler kullanıyorsanız %100’e) eşit olmalıdır; ancak formüllerde bunları ondalık sayıya dönüştürün.
- Bu teknik, kısa listeler için en uygundur; onlarca hatta yüzlerce değere sahipseniz performans düşebilir ve bakım zorlaşabilir.
- Birden çok çekiliş için rastgele seçimi tekrarlamanız gerekiyorsa (örneğin, simüle edilmiş sonuçlardan oluşan bir toplu işlem oluşturmak gibi), son formülü aşağıya veya yanındaki bir aralığa kopyalayın.
- Boş satırlara ve eşleşmeyen aralıklara dikkat edin; bunlar hatalara veya beklenmedik sonuçlara yol açabilir.
Hata hatırlatıcısı: #REF! veya #VALUE! hatası alırsanız, kümülatif olasılık sütununuzun veri uzunluğunuzla eşleştiğinden ve tüm olasılıkların geçerli sayısal değerlerden oluştuğundan emin olun.

KUTOOLS AI ile Excel'in Sihirli Gücünü Açığa Çıkarın
- Akıllı Yürütme: Hücre işlemlerini gerçekleştirin, verileri analiz edin ve hepsi basit komutlarla çalışan grafikler oluşturun.
- Özel formüller: İş akışlarınızı kolaylaştırmak için özelleştirilmiş formüller oluşturun.
- VBA Kodlama: VBA kodlarını zahmetsizce yazın ve uygulayın.
- Formül Yorumlama: Karmaşık formülleri kolayca çözmek artık çok daha basit!
- Metin Çevirisi: Elektronik tablolarınızda dil bariyerlerini aşın.
VBA: Atanan olasılıklarla rastgele değerler oluştur
Daha fazla otomasyon gerektiren ya da büyük miktarda rastgele değer (örneğin binlerce örnek) üretmek isteyen kullanıcılar için Excel VBA, çalışma sayfası formüllerine kıyasla daha hızlı ve esnek bir çözüm sunar. Bu yöntem, özellikle büyük veri kümeleri üzerinde çalışırken veya simülasyonlar için toplu rastgele sonuçlar oluştururken oldukça etkilidir.
1.Geliştirici Araçları>Visual Basicbölümüne gidin, ardından VBA penceresinde Ekle>Modülseçeneğine tıklayıp aşağıdaki kodu modüle yapıştırın:
Sub GenerateRandomWithProbability()
Dim rngValues As Range
Dim rngProbs As Range
Dim n As Long
Dim i As Long
Dim cumProbs() As Double
Dim valList() As Variant
Dim randNum As Double
Dim resultRange As Range
Dim idx As Long
' On Error, ignore
On Error Resume Next
xTitleId = "KutoolsforExcel"
' Select values
Set rngValues = Application.InputBox("Select values range", xTitleId, Type:=8)
' Select probabilities
Set rngProbs = Application.InputBox("Select probabilities range", xTitleId, Type:=8)
' Number of random values to generate
n = Application.InputBox("Number of random values to generate", xTitleId, "10", Type:=1)
' Where to output
Set resultRange = Application.InputBox("Select output start cell", xTitleId, Type:=8)
If rngValues.Rows.Count <> rngProbs.Rows.Count Then
MsgBox "Values and probabilities range must be the same size.", vbExclamation
Exit Sub
End If
ReDim cumProbs(1 To rngValues.Count)
ReDim valList(1 To rngValues.Count)
' Calculate cumulative probabilities
cumProbs(1) = rngProbs.Cells(1, 1).Value
valList(1) = rngValues.Cells(1, 1).Value
For i = 2 To rngValues.Count
cumProbs(i) = cumProbs(i - 1) + rngProbs.Cells(i, 1).Value
valList(i) = rngValues.Cells(i, 1).Value
Next i
' Generate random results
For i = 1 To n
randNum = Rnd
For idx = 1 To UBound(cumProbs)
If randNum <= cumProbs(idx) Then
resultRange.Cells(i, 1).Value = valList(idx)
Exit For
End If
Next idx
Next i
End Sub 2. VBA penceresinde, kodu çalıştırmak için
çalıştır düğmesine tıklayın. Sırayla değerlerinizin aralığını, olasılıkların aralığını, oluşturmak istediğiniz rastgele değer sayısını ve çıktı başlangıç hücresini seçmeniz istenecektir. Makro, hedef hücreleri atanan olasılıklarınıza göre rastgele değerlerle hızla dolduracaktır.
- Bu süreci daha büyük veri kümeleri için de tekrarlayabilir ve çıktı sütununu herhangi bir sayfada özelleştirebilirsiniz.
- Olasılık aralığınız 1’e çok yakın değilse, kod dağılımı çarpık olabilir; varsayımlarınızı her zaman doğrulayın.
- Bu çözüm, otomatik örnekleme, simülasyon ve yeniden üretilebilir toplu üretim için ilk tercihtir.
İpuçları: Değerlerinizi ve olasılıklarınızı bitişik ve açıkça hizalanmış şekilde tutun. VBA işlemleri Geri Al ile geri alınamadığı için, makroyu çalıştırmadan önce çalışmalarınızı mutlaka kaydedin.
İlgili Makaleler:
- Excel'de yinelenmeyen rastgele sayılar nasıl oluşturulur?
- Excel'de rastgele sayıların değişmesini nasıl önleyebilir veya durdurabilirsiniz?
- Excel'de rastgele olarak Evet veya Hayır değeri nasıl oluşturulur?
En İyi Office Üretkenlik Araçları
Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
- Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir kurulum dosyasında!
Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar