Soru Toplamı Oluşturan Sayıları Bulma

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
3,973
Excel Vers. ve Dili
2013 Türkçe
Muhammed hocam eline sağlık ama yaptığınız çalışmada mesala verdiğim örneği bile bulmamış. ( sarı renkte)
Hocam cevabınızı daha somutlaştırmak gerekirse 1'den 100'e kadar sayıların olduğu bir liste düşünün. Siz 2 sayının toplamı 101 olsun diyorsunuz. Bu şartı sağlayan ihtimaller toplamı 100 olur.
100+1=101
99+2=101
98+3 =101
....
şeklinde.

Sizin sarı dolgu toplamı olan 15115,05 sayısına da belki 1000'lerce farklı şekilde gidilebilir. Ama eğer ki ben sadece 2 sayıyı toplayarak çözüme gitmek istiyorum derseniz kodda düzenleme yapmak gerekir. Siz en fazla 4 sayı toplamı olabilir derseniz olasılık oldukça artar.

Excel sizin hangi sayıların toplamı olması istediğini bilmez. O tüm sonuçları bulur. Ben sayıya ulaşmak için 5 çözüm önerisi vermesini istedim. Sizin ulaşmak istediğiniz sonucu da bulur. Ama bu sonuç 10. deneme de mi olur yoksa 100. deneme de mi olur onu bilemem. Çünkü sayı ( Ücret ) verileriniz oldukça fazla.
 
Katılım
1 Aralık 2008
Mesajlar
233
Excel Vers. ve Dili
Microsoft Excel 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
23/07/2020
Hocam cevabınızı daha somutlaştırmak gerekirse 1'den 100'e kadar sayıların olduğu bir liste düşünün. Siz 2 sayının toplamı 101 olsun diyorsunuz. Bu şartı sağlayan ihtimaller toplamı 100 olur.
100+1=101
99+2=101
98+3 =101
....
şeklinde.

Sizin sarı dolgu toplamı olan 15115,05 sayısına da belki 1000'lerce farklı şekilde gidilebilir. Ama eğer ki ben sadece 2 sayıyı toplayarak çözüme gitmek istiyorum derseniz kodda düzenleme yapmak gerekir. Siz en fazla 4 sayı toplamı olabilir derseniz olasılık oldukça artar.

Excel sizin hangi sayıların toplamı olması istediğini bilmez. O tüm sonuçları bulur. Ben sayıya ulaşmak için 5 çözüm önerisi vermesini istedim. Sizin ulaşmak istediğiniz sonucu da bulur. Ama bu sonuç 10. deneme de mi olur yoksa 100. deneme de mi olur onu bilemem. Çünkü sayı ( Ücret ) verileriniz oldukça fazla.
Muhammed hocam bilgi için teşekkür ederim. Summatch diye bir video izledim aslında tam istediğim birşey ama eklentisini bulamadım. Nasıl ulaşabilirim biliyormusunuz.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
3,973
Excel Vers. ve Dili
2013 Türkçe
Hocam hangi uygulamayı kullanırsanız kullanın. Eğer toplam sayı adeti ( 2, 3 ,4 ) ne kadar farklı ise olasılık ihtimali de fazla olur. Siz summatch uygulamasını kullansanız da sonuç değişmeyecek. Yani summatch uygulaması size belki 1000lerce çözüm sunacak. Ve siz bu çözümlerde sarı dolguyu nasıl bulacaksınız? Kodda mantık hatası var mı? Bulduğu sonuçlar yanlış mı? Hayır.



Linkini izledim 30 sayı için bile 50 olasılık bulmuş.

Seçenek olarak kodlar 2 sayının toplamını bulsun, 3 sayının toplamını bulsun, 4 sayının toplamını bulsun şeklinde ayarlanabilir. Hedef sayı 2 sayının toplamını bulsun derseniz bu kolay olur. Ama hedef sayıya 3 derseniz olasılıklar artar, 4 derseniz daha da artar.
 
Katılım
1 Aralık 2008
Mesajlar
233
Excel Vers. ve Dili
Microsoft Excel 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
23/07/2020
Hocam hangi uygulamayı kullanırsanız kullanın. Eğer toplam sayı adeti ( 2, 3 ,4 ) ne kadar farklı ise olasılık ihtimali de fazla olur. Siz summatch uygulamasını kullansanız da sonuç değişmeyecek. Yani summatch uygulaması size belki 1000lerce çözüm sunacak. Ve siz bu çözümlerde sarı dolguyu nasıl bulacaksınız? Kodda mantık hatası var mı? Bulduğu sonuçlar yanlış mı? Hayır.



Linkini izledim 30 sayı için bile 50 olasılık bulmuş.

Seçenek olarak kodlar 2 sayının toplamını bulsun, 3 sayının toplamını bulsun, 4 sayının toplamını bulsun şeklinde ayarlanabilir. Hedef sayı 2 sayının toplamını bulsun derseniz bu kolay olur. Ama hedef sayıya 3 derseniz olasılıklar artar, 4 derseniz daha da artar.
Peki 2 sayının toplamını bulsun en azından nasil bir uygulama yapabiliriz.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
3,973
Excel Vers. ve Dili
2013 Türkçe
Sub İkili_Çözüm()

Set b = Sheets("Bankaya Gelen Tutar")
b.Range("G2:Q1000,T2:AC1000,AG2:AP1000,AT2:BC1000,BG2:BP1000") = ""
son = Cells(Rows.Count, 2).End(3).Row
son1 = b.Cells(Rows.Count, 3).End(3).Row
eftt = b.Range("C2:C" & son1).Value
ttr = Range("B2:B" & son).Value
mstr = Range("A2:A" & son).Value
Dim tablo(0, 1)
Dim tablo1(0, 1)

czm = 2
For a = 2 To son1
f = 0
eft = eftt(a - 1, 1)
x = 7



For i = 1 To son - 2
tablo(0, 0) = ""
tablo(0, 1) = ""


tablo1(0, 0) = ""
tablo1(0, 1) = ""





For j = i + 1 To son - 1
If f = czm Then GoTo 60

If ttr(i, 1) + ttr(j, 1) = eft Then
tablo(0, 0) = ttr(i, 1)
tablo(0, 1) = ttr(j, 1)

tablo1(0, 0) = mstr(i, 1)
tablo1(0, 1) = mstr(j, 1)

b.Cells(a, x).Resize(1, 2) = tablo
b.Cells(a, x + 6).Resize(1, 2) = tablo1
x = x + 13
f = f + 1
GoTo 100
End If
Next j
100

Next i

60

Next a
b.Select
End Sub
Kodu deneyim czm=2

2 sonuç bulduğunda kod çalışması sona erer. O kısmı 3, 4 , 5 yaparsanız. Farklı çözüm yolları bulur. Ama kodun çalışma süresi artar.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
3,973
Excel Vers. ve Dili
2013 Türkçe
Sub İkili_Çözüm()

Set b = Sheets("Bankaya Gelen Tutar")
b.Range("G2:Q1000,T2:AC1000,AG2:AP1000,AT2:BC1000,BG2:BP1000") = ""
son = Cells(Rows.Count, 2).End(3).Row
son1 = b.Cells(Rows.Count, 3).End(3).Row
eftt = b.Range("C2:C" & son1).Value
ttr = Range("B2:B" & son).Value
mstr = Range("A2:A" & son).Value
Dim tablo(0, 1)
Dim tablo1(0, 1)

czm = 2
For a = 2 To son1
f = 0
eft = eftt(a - 1, 1)
x = 7

For i = 1 To son - 2
tablo(0, 0) = ""
tablo(0, 1) = ""


tablo1(0, 0) = ""
tablo1(0, 1) = ""



If ttr(i, 1) > eft Then GoTo 100

For j = i + 1 To son - 1
If f = czm Then GoTo 60

If ttr(i, 1) + ttr(j, 1) = eft Then
tablo(0, 0) = ttr(i, 1)
tablo(0, 1) = ttr(j, 1)

tablo1(0, 0) = mstr(i, 1)
tablo1(0, 1) = mstr(j, 1)

b.Cells(a, x).Resize(1, 2) = tablo
b.Cells(a, x + 6).Resize(1, 2) = tablo1
x = x + 13
f = f + 1
GoTo 100
End If
Next j
100

Next i

60

Next a
b.Select
End Sub

Koda 1 satır eklemeyi unutmuşum. Ama dediğim gibi iki sayı toplamı da olsa farklı kombinasyonlar mevcut. Bu yüzden dikkatli olmalısınız.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,598
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

İstediğiniz işlemin excel ile olmasına imkan yok. Bunu İdris bey'de size söylemişti.
Bu işlemler için büyük şirketler özel yazılımlar ve süper bilgisayarlar kullanıyorlar.
Excel'in bu işlemler için bir kapasitesi var, bunu aşamazsınız.
Bulduğunuz çözümlerde hiçbir zaman %100 doğru olmayacaktır.
 
Son düzenleme:
Katılım
1 Aralık 2008
Mesajlar
233
Excel Vers. ve Dili
Microsoft Excel 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
23/07/2020
Koda 1 satır eklemeyi unutmuşum. Ama dediğim gibi iki sayı toplamı da olsa farklı kombinasyonlar mevcut. Bu yüzden dikkatli olmalısınız.
Muhammet hocam gayet güzel çalışıyor ancak bankaya yatan tutları değiştirdiğimde makro çalışmıyo neden olabilir. bunlar örnek verilerdi ben sözleşme ile borçları ve bankaya gelen tutarları değiştireceğim.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
3,973
Excel Vers. ve Dili
2013 Türkçe
Muhammet hocam gayet güzel çalışıyor ancak bankaya yatan tutları değiştirdiğimde makro çalışmıyo neden olabilir. bunlar örnek verilerdi ben sözleşme ile borçları ve bankaya gelen tutarları değiştireceğim.
Makro çalışır ama sonuç bulmaz. Bulunacak hedef sayı verilerdeki 2 sayinin toplami olmalı.
 
Katılım
1 Aralık 2008
Mesajlar
233
Excel Vers. ve Dili
Microsoft Excel 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
23/07/2020
Makro çalışır ama sonuç bulmaz. Bulunacak hedef sayı verilerdeki 2 sayinin toplami olmalı.
Muhammet hocam listeden iki paranın toplamını yazdım bankaya yine çalışmadı. Gerçek dosyayi gönderebilirmiyim? Siz uygularmısınız.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
3,973
Excel Vers. ve Dili
2013 Türkçe
Sayfa adını değiştirdiğiniz için kod çalışmamış. "Hesaba Yatan Tutar" sayfasındaki verilerin iki sayının toplamı olduğundan emin misiniz?
Ben sarı dolgulu hücreleri diğer sayfadaki 2 sayfanın toplamı olacak şekilde düzenledim ve sonuca ulaştım. Muhtemelen sizin yazdığınız veriler ikiden fazla sayının toplamı ile oluşan sayılar.

1. Sayfada C ve D, 2 Sayfada D sütunu yardımcı sütun olarak kullandım. O kısımları veri girmeyin.
 

Ekli dosyalar

Katılım
1 Aralık 2008
Mesajlar
233
Excel Vers. ve Dili
Microsoft Excel 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
23/07/2020
Sayfa adını değiştirdiğiniz için kod çalışmamış. "Hesaba Yatan Tutar" sayfasındaki verilerin iki sayının toplamı olduğundan emin misiniz?
Ben sarı dolgulu hücreleri diğer sayfadaki 2 sayfanın toplamı olacak şekilde düzenledim ve sonuca ulaştım. Muhtemelen sizin yazdığınız veriler ikiden fazla sayının toplamı ile oluşan sayılar.

1. Sayfada C ve D, 2 Sayfada D sütunu yardımcı sütun olarak kullandım. O kısımları veri girmeyin.
Muhammet hocam 10 numara olmuş 3 tutarıda bulmuşsun. son kez birşey soracağım. Verileri değiştirdiğimde herhangi bir çalışmama durumu olurmu ve toplamı oluşturan 3 veya 4 rakam ise nereyi değiştirmem gerekiyor.

Teşekkür ederim emeğin için.
 
Katılım
12 Aralık 2015
Mesajlar
1,200
Excel Vers. ve Dili
Türkçe Ofis 2007
http://s7.dosya.tc/server8/8cdb3l/ikili.zip.html
Yukardaki linkteki makro, Bankanın iki müşterinin yatırdığı tutarı bildirmiş olduğu duruma göre çalışıyor.
Sonuçları Müşteri sayısı 825 olduğu duruma göre =KOMBİNASYON(825;2) 339.900
olasılık arasında arıyor.
Bankanın üç müşterinin yatırdığı paranın toplamını bildirdiği durumda =KOMBİNASYON(825;3) 93.245.900 olasılık arasında arayacak,
Bankanın dört müşterinin yatırdığı paranın toplamını bildirdiği durumda ise =KOMBİNASYON(825;4) 19.162.032.450 olasılık arasında arayacaktı.
......olasılık sayısı excelin kapasitesini aşar.
Son Not: Müşteri yatırdığı parayı veya Banka yatırılan parayı ne şekilde yuvarlıyor.
 
Son düzenleme:
Katılım
1 Aralık 2008
Mesajlar
233
Excel Vers. ve Dili
Microsoft Excel 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
23/07/2020
http://s7.dosya.tc/server8/8cdb3l/ikili.zip.html
Yukardaki linkteki makro, Bankanın iki müşterinin yatırdığı tutarı bildirmiş olduğu duruma göre çalışıyor.
Sonuçları Müşteri sayısı 825 olduğu duruma göre =KOMBİNASYON(825;2) 339.900
olasılık arasında arıyor.
Bankanın üç müşterinin yatırdığı paranın toplamını bildirdiği durumda =KOMBİNASYON(825;3) 93.245.900 olasılık arasında arayacak,
Bankanın dört müşterinin yatırdığı paranın toplamını bildirdiği durumda ise =KOMBİNASYON(825;4) 19.162.032.450 olasılık arasında arayacaktı.
......olasılık sayısı excelin kapasitesini aşar.
Son Not: Müşteri yatırdığı parayı veya Banka yatırılan parayı ne şekilde yuvarlıyor.
Yuvarlama yok tutarlar birebir aynı
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
3,973
Excel Vers. ve Dili
2013 Türkçe
2li çözüm, 3lü çözüm, ve 4lü çözüm seçenekleri ayrı ayrı uygulanabilir.
 
Katılım
1 Aralık 2008
Mesajlar
233
Excel Vers. ve Dili
Microsoft Excel 2016 TR 32 Bit
Altın Üyelik Bitiş Tarihi
23/07/2020
2li çözüm, 3lü çözüm, ve 4lü çözüm seçenekleri ayrı ayrı uygulanabilir.
Muhammed hocam nereyi değiştirmem gerekiyo çözüm secenekleri için ayrıca verileri değiştirdiğimde hata alıyorum sanırım yardımcı sutünlardan dolayı dimi. bu konu hakkında napmam gerekiyor.
 
Üst