Bakiye toplami hangi sayilardan olusuyor

Katılım
26 Mayıs 2005
Mesajlar
35
Sevgili ustadlar,
Asagida bahsedecegim konuyla bir suredir ugrasiyorum ama isin icinden bir turlu cikamadim. Konu soyle;

Elimizde 10 farkli sayi var. Ve bunlardan rastgele 4'unun (bu sayi degisebilir) toplamindan olusan bir de bakiye var. Bu bakiyeyi olusturan sayilarin hangileri oldugunu tespit eden bir makro pesinde kosturuyorum. Ne demek istedigimi bir ornekle aciklamaya calisayim:

SAYILAR
11
32
24
55
34
49
61
22
73
81

BAKIYE: 156

Yazilan makro calistiginda, 156 sayisinin 24+49+61+22 sayilarinin toplamindan olustugunu gosterebilsin.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
sayıları a1:a10 aralığına yerleştirin.
[vb:1:43ce7447e6]Sub dene()
Dim d(1 To 10) As Integer
For x = 1 To 10
d(x) = Cells(x, 1)
Next x

For i = 1 To 7
For ii = i + 1 To 8
For iii = ii + 1 To 9
For iv = iii + 1 To 10
If d(i) + d(ii) + d(iii) + d(iv) = 156 Then
MsgBox d(i) & " + " & d(ii) & " + " & d(iii) & " + " & d(iv) & " = 156"
GoTo git
End If

Next iv, iii, ii, i
MsgBox " Toplamı 156 olan sayılar bulunamadı"
git:
End Sub[/vb:1:43ce7447e6]
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
korfez, bunun daha öncede birkaç defa konusu açılmıştı yanlış hatırlamıyorsam. o zamanda çok net bi sonuç çıkmamıştı sanırım ama bir arayın isterseniz forumda.. Soruyu basitleştirerek sormuşsunuz ama gerçek hayatta 10 tanede olmuyor bu sayılar yüzlerce, binlerce olabiliyor + her zaman 4 sayının toplamı değilde farklı sayıda sayının toplamı gerekebiliyor+sayılar küsüratlı oluyor ve son olarak çok sayıda sayı kümesi aranan bakiyeyi verebiliyor. bu durumdada excel için bile çok fazla olasılık söz konusu oluyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
156 sayisinin 24+49+61+22 sayilarinin toplamindan olustugunu gosterebilsin.
Peki aynı sayının bulunması için bir çok ihtimal olursa ne olacak örneğin; 11+32+24+55+34=156 da oluyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,247
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Veysel bey,

Msgboxta bu hücrelerin adresleride verilse ve ayrıca ikinci sayfayada bu hücrelerin adreslerini listelese takip açısından çok şık olur kanatindeyim.
 
Katılım
26 Mayıs 2005
Mesajlar
35
Arkadaslar,

ilginize tesekkurler.

ilk etapta "danersin" kesinlikle hakli. Tabiki degisik versiyonlar soz konusu. Ben gelecek cevaplardaki mantigi anlayarak daha da gelistiririm diye dusundum. Bu asamada "veyselemre"nin cevabi belli bir yaklasim sergiliyor. Bu arada "leventm" de dusuncesinde hakli. Verilen bakiye sayisi farkli sayilarin toplamindan olusuyor olma ihtimali de var ki bu zaten isin icinden cikilmasini imkansizlastirir. Neyse ki konunun cikis kaynaginda bu fazla bir sorun teskil etmiyor. Isin asli, gelen 10-15 arasindaki faturaya istinaden yapilan bir kisim odemenin hangi faturalara istinaden yapildigini tespit etmek. Tabiki burada en kestirme yol odemeyi yapana sormak. Ama konu gundeme geldiginde dikkatimi cekti. Bunu excel'de nasil yapabilirim diye.

Aklima "veyselemre"ninkinden farkli baska bir cozum geliyor. Ama henuz uzerinde calisiyorum. O da su;

Sayi kumesi yukaridaki gibi 10 olursa ihtimallerin toplami 2^10= 1024 oluyor.

Digital Elektronigin temelinde Binary sayi kavrami vardir. Eger ben 0'dan 1024'e kadar ki Decimal sayiyi Binary'e cevirirsem ve bunlari da her bir sayi ile tek tek carptirirsam ve elde edilen sonucu da Bakiye toplami ile kiyaslarsam mutlaka bir veya bir kac secenek eslesecektir. Bunu bir ornekle aciklayayim;

Sayi grubundan ilk ucunu alalim

11 32 24
_______
0 0 0
0 0 1
0 1 0
0 1 1
:
:
Burada kullanilacak formul;
1. ihtimal=(0x11)+(0x32)+(0x24)=0 esit mi Bakiye toplamina?
2. ihtimal=(0x11)+(0x32)+(1x24)=24 esit mi Bakiye toplamina?
3. ihtimal=(0x11)+(1x32)+(0x24)=32 esit mi Bakiye toplamina?
:
:
Excel fonksiyonlarinda Decimal sayiyi Binary'e cevirmek icin Dec2Bin komutu kullanilabiliyor ama bunun makro karsiligi yok sanirim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Excel fonksiyonlarinda Decimal sayiyi Binary'e cevirmek icin Dec2Bin komutu kullanilabiliyor ama bunun makro karsiligi yok sanirim.
Aşağıdaki gibi kullanabilirsiniz. Örneğin sayılarınız A sütununda olsun B sütununada binary karşılıklarını yazacaktır. Tabii doğru çalışması için toolpak eklentisi yüklü olmalıdır.

[vb:1:5639a1ebc9]Sub binary()
For a = 1 To [a65536].End(3).Row
Cells(a, "b") = Evaluate("=Dec2Bin(" & Cells(a, "a").Address & ")")
Next
End Sub
[/vb:1:5639a1ebc9]
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Sayın körfez yazdıklarınızdan anladığım kadarıyla 1 den 1024 kadar sayıları binary çevirip yaptığım denemelerde örneğin 200 rakamını aradığımız zaman 2 değişik sonuç bulurken, benim yaptığım döngü yöntemiyle 7 değişik sonuç buluyor aslında döngülerde tüm alternatifleri aramaktan başka bir şey değil 10 sayı sabit olduğu sürece sorun çıkmayacaktır. Sizin yönteminiz başarılı olduğu zaman giren sayı adedini serbestçe belirlemek mümkün.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Sayın Körfez, sizi tebrik etmek istiyorum,
Yönteminiz gayet güzel çalıştı, yukarıdaki örnekte eksiklik, bulunan binary sayıların uzunluğunu 10 tamamlamamakmış, şimdi gayet güzel sonuç veriyor.
 
Katılım
26 Mayıs 2005
Mesajlar
35
Sayin veyselemre,
Son calismanizi henuz indirdim fakat icergini henuz incelemedim. Bu arada ben de biraz daha ugrastim ve simdilik 9 fatura icin sorun cikarmadan calisan bir dosya olusturdum. Fakat bu dosyada bazi kandirmacalar var. Yani tamamen makro kodu ile calismiyor. Sizin de goreceginiz uzere bazi formuller hucrelerde manuel olarak hesaplanip daha sonra makroya tasiniyor. Konuyla ilgili yasanan sikintilar ornek calismanin icinde yer aliyor. Belki sizin calismaniz icinde ilgili kodlara ulasirim. Bahsettigim ornek calismayi Hizli Cevap ekraninda eklemem sanirim soz konusu degil. Onun icin bu calismanin da icinde yer alacacagi yeni bir baslik olusturacagim.
 
Katılım
27 Mayıs 2006
Mesajlar
89
Excel Vers. ve Dili
Excel 2000 - Tr
Sayın Veysel,

Çalışmanızı çok güzel olmuş, fakat bende mi olmadı, 400 sayısının toplamını oluşturan rakamları listelemedi. İlk gördüğüm kadarıyla 270 ve 130 var ki toplamları 400 oluyor
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
even' Alıntı:
İlk gördüğüm kadarıyla 270 ve 130 var ki toplamları 400 oluyor
Örnekte 270 ve 130 sayıları yok ki 400 versin, siz yazın deneyin, bulması gerekir. Kastınız 270 ve 130 sayılarını ayrı ayrı buluyor, 400 ü bulmuyor ise ortak sayılar kullanılıyordur, bir sayı bir sefer kullanılacağından 400 ü bulamaz.
 
Üst