• DİKKAT

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

Macro ile olasılıklı tablo oluşturma

  • Konbuyu başlatan Konbuyu başlatan semmis
  • Başlangıç tarihi Başlangıç tarihi
Katılım
23 Ocak 2017
Mesajlar
14
Excel Vers. ve Dili
excel macro
satır*sütun A B C D E
satır1 5 8 6 2 10
satır2 3 7 8 1 5
satır3 10 4 1 7 9
satır4 1 2 10 3 8
satır5 8 3 2 6 7
satır6 7 9 3 10 6
satır7 9 10 5 4 3
satır8 4 6 7 9 2
satır9 2 5 4 8 1
satır10 6 1 9 5 4

Yukarıda verdiğim örnek tablodan kendi girdiğim datalar olacak şekilde yeni bir tablo oluşturmak istiyorum ve bu istediğim tablonun mantığı sıralı olacak.ve hepsi şekilde ki gibi 9 adet sayı olacak
1 5 8 4 1 5 8 4 1 5
1 5 3 10 6 7 9 2 3 10
mantık şu: 1 ile başladığım taktirde satır1*A kolonundan bulunan ilk 5 sayısı ile devam edecek ve bir sonra ki sayı satır5 te ki ilk sayı olacak olan 8 olacak hemen ardında ki satır8 de ki ilk sayı olan 8 olacak..kısacası bunun gibi tüm alternatifleri tek tek yazacak bir kod lazım bana..
Not: çıkaracağımız tüm sayılar satır numarasıyla başlayacaktır. yani satır5 in ihtimallerini yazarken hep 5 ile başlaması gerekmektedir.
olasılık hesabım pek iyi değil ama bahsettiğim tablo 5^10 kadar büyük bir tablo olacak.o yüzden bunu tek tek elle yazmak istemiyorum çünkü elimde ki data tablosunda 100'ün üzerinde satır mevcut. Allahtan sütun sayısı sabit 5:biggrin:
Konuyu umarım anlatabilmişimdir. Şimdiden yardımlarınız için teşekkür ederim
 
Doğru anlamışmıyım;

C,D,E leri ben doldurum. Doğru mudur?

DBbYJ6.jpg
 
Tam istediğiniz şekilde mi emin olmamak ile beraber,

Kontrol ediniz.

http://www.dosyaupload.com/190g

Kod:
Sub kombi()
'Asri Akdeniz - www.asriakdeniz.com  asriakdeniz@gmail.com
   Range("J:Z").ClearContents
   
   sonsutun = Cells(1, Columns.Count).End(xlToLeft).Column
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   sut = 1
   saysatir = 1
   saysutun = 10
   For sira = 1 To sonsatir
   
     For sirakay = 1 To 5
        atlasayi = Cells(sira, sirakay)
        For sut = 1 To 5
            sutunilksayi = Cells(atlasayi, sut)
            satsayi = sutunilksayi
            Cells(saysatir, saysutun).Value = sira
            saysutun = saysutun + 1
            Cells(saysatir, saysutun).Value = atlasayi
            saysutun = saysutun + 1
            Cells(saysatir, saysutun).Value = sutunilksayi
            
            For sirala = 1 To 7
              satsayi = Cells(satsayi, sirakay)
              saysutun = saysutun + 1
              Cells(saysatir, saysutun).Value = satsayi
            Next sirala
            saysutun = 10
            saysatir = saysatir + 1
         Next sut
      Next sirakay
  Next sira
End Sub
 
asri bey harikasınız çok teşekkür ederim fakat sizin yaptığınız tablo sadece ilk 3 satırı kontrol ederek tablo çıkarıyor ve 10*5*5*1*1*1*1*1*1*1=250 kolon çıkarıyor. Fakat benim istediğim olasılıkta 10*5*5*5*5*5*5*5*5*5=19.531.250 adet sonuç çıkarması. Ve tabi ki bu olasılıkları sadece 10 adet sayı varmış gibi düşünmeyelim 100 adet sayı var diyelim yani 195.312.500 adet sonuç çıkaracak. tabi sonuç çok fazla olduğu için excelde nasıl görünecek bilmiyorum fakat ben bunları daha sonra macroda filtreleyerek düşüreceğim için sayı hiç önemli değil
 
asri bey harikasınız çok teşekkür ederim fakat sizin yaptığınız tablo sadece ilk 3 satırı kontrol ederek tablo çıkarıyor ve 10*5*5*1*1*1*1*1*1*1=250 kolon çıkarıyor. Fakat benim istediğim olasılıkta 10*5*5*5*5*5*5*5*5*5=19.531.250 adet sonuç çıkarması. Ve tabi ki bu olasılıkları sadece 10 adet sayı varmış gibi düşünmeyelim 100 adet sayı var diyelim yani 195.312.500 adet sonuç çıkaracak. tabi sonuç çok fazla olduğu için excelde nasıl görünecek bilmiyorum fakat ben bunları daha sonra macroda filtreleyerek düşüreceğim için sayı hiç önemli değil

3x3 lük bir matris in sizin sonucunuza göre çıkan tablosunu ekleyebilir misiniz?
Bir de bu listeyi oluştururken uyguladığınız aşamaları.
 
tablomuz şu şekilde :
3 2 1
1 3 2
2 3 1


işlemler şu şekilde yapılıyor
A1 A3 A2 :ilk sayımız A1'de 3 bulunduğu için ikinci sayı A3 olacak ve A3 te 2 olduğu için A2

A1 A3 B2:ilk sayımız A1'de 3 bulunduğu için ikinci sayı A3 olacak ve A3 te 2 var ve bir önce ki denemeyi atlayıp bu sefer B2 de bulunan 3 sayısını alacak

A1 A3 C2:ilk sayımız A1'de 3 bulunduğu için ikinci sayı A3 olacak ve A3 te 2 var ve bir önce ki denemeyi 2 denemeyi de atlayıp atlayıp bu sefer c2 de bulunan 2 sayısını alacak..
tablonun devamı ve sayılar aşağıdaki gibidir.
A1 B3 A3....

A1 B3 B3....

A1 B3 C3....gibi devam eder..
sonuç aşağıdaki tablo
3 2 1
3 2 3
3 2 2
3 3 2
3 3 3
3 3 1
3 1 3
3 1 2
3 1 1
1 3 2
1 3 3
1 3 1
1 2 1
1 2 3
1 2 2
1 1 3
1 1 2
1 1 1
2 1 3
2 1 2
2 1 1
2 3 2
2 3 3
2 3 1
2 2 1
2 2 3
2 2 2
yani önce ilk sayıyı sabit tutup o sayının söylediği satırdaki ilk sayıyı sabit tutup onunda söylediği satıra giderek yazar ve sırayla tüm olasılıkları yazması lazım...bu da 3*3lük bi matriste
3*3*3=27 adet sonuç çıkarır... ama dediğim gibi benim satır sayım 100 sütun sayım 5 olacak...
 
Asri bey söylediğim şey anlaşılmadı mı herhangi bir cevap alamadım:(
 
sanırım iddaa olasılık hesabı gibi birşey,,,

5 maç 3 olaslık dersek,,
5! * 3! = 120 * 6 = 720 olaslık olması ve satırlara yazılması isteniyor sanırım,,,
 
iddaa olasılıklarını pek anlamam o yüzden ordan yola çıkarak cevap veremicem :(
 
sanırım iddaa olasılık hesabı gibi birşey,,,

5 maç 3 olaslık dersek,,
5! * 3! = 120 * 6 = 720 olaslık olması ve satırlara yazılması isteniyor sanırım,,,


şimdi baktım iddaa sistemine de tam olarak öyle değil bekir bey
aslında asri bey beni çok iyi anladı yani verdiği sonuç tablosu benim istediğim sonuçların bir kısmı...Aslında benim çıkarmak istediğim tablo olasılıktan ziyade kombinasyon tablosu...yani iddaa da dediğiniz gibi 5 adet maç var ve her birinin 3 olasığı var ise bu maçları 3*3*3*3*3=243 farklı şekilde yazabilirsin.. Aslında benim ki de bu hesap gibi ama şartlı ve sıralı olacak..Yani her maçta 3 olasılık yok ve hepsini olasılıkları farklı şekilde diyebiliriz sanırım
 
Geri
Üst