algoritma

Katılım
15 Mayıs 2005
Mesajlar
135
Excel Vers. ve Dili
excel 2003 türkçe
ekli dosyadaki sarı renkli hücrelerden hangilerinin toplamı a1 hücresindeki değerden küçük en büyük sayıyı verir.bu sorunun makro kodlarını yada algoritmasında yardımcı olacak arkadaşlar var mı acaba.yada bunu excelle çözmek imkansızmı?odtü bilgisayar bölümü mezunu birine sordum yapamadı.çaresizim
 
Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
ekli dosyadaki sarı renkli hücrelerden hangilerinin toplamı a1 hücresindeki değerden küçük en büyük sayıyı verir.
diğer bir deyişle, örneğinize göre, ( hangi sayıların toplamı 1279'a eşit olur ? ) sorusunun mu yanıtını arıyorsunuz acaba ?
 
Katılım
15 Mayıs 2005
Mesajlar
135
Excel Vers. ve Dili
excel 2003 türkçe
1278 de olabilir 1275 de olacak alternatiflerin 1280 e en yakın olanın öyle rakamlar girilebilirki en iyi sonuç 1200 olur?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bunu VBA ile çözmek elbette imkansız değil, en basit algoritma, döngü kurarak tüm ihtimalleri denemek üzerine kurulabilir ancak sayı miktarının çok fazla olması işlemin çok uzun süre alması anlamına gelir, hatta günlercede sürebilir. Biraz üzerinde düşünelim belki matris mantığı ile daha kısa bir çözüm bulunabilir.
 
Katılım
15 Mayıs 2005
Mesajlar
135
Excel Vers. ve Dili
excel 2003 türkçe
diyelim 20 adet sayı var.bizim lstediğimiz 2 sayında toplamı olabilir 3 sayınında...20 sayınında 1 den 20 ye kadar kombinasyon yapabiliriz.20 nin 1 likombinasyonu 20 nin ikili kombinasyonu vs.... bayağı bi bekleriz heralde cevabı alıncaya kadar.belki daha kısa bi yolu vardır.ne de olsa excel bu her şey beklenir.?oracle da daha hızlı yapılabilir ama ben illa excelde olsun istiyom
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Peki; burda 1279'un en iyi değer olduğunu varsayalım.

1279 toplamını verecek birden fazla kombinasyon mevcut olabilir. Birini 9 rakamın toplamından diğerini 13 rakamın toplamında bir diğerini ise 18 rakamın toplamından elde edebiliriz.

Siz bu kombinasyonların tamamını mı? Yoksa bulduğu ilk en iyi kombinasyonu mu görmek istiyorsunuz.?

Eğer birinci seçenekse; Levent bey'in de dediği gibi; bilgisayarın gücü yetene kadar işlemler devam eder. Belki saatler belki günler ... Hafıza dolana kadar artık...

Ama bir diğer seçenekte; tüm liste büyükten küçüğe sıralanıp en büyükten başlayarak toplam alınabilir. Yaklaşım sağlandığı anda; küçükler üzerinde işlem yapılır. Mesela dizinin sıralamasında ilk 18 büyük rakamın toplamı 1270 ve 19 rakam eklendiğinde bu 1280'den büyük çıkıyorsa; geri kalan en küçükler ilk 18'in üstüne ilave edilerek, toplam sınanabilir. Ama dediğim gibi; bu sadece tek bir kombinasyonu bulmak için bir mantık olur.

NOT : Dizide tüm sayılar Tamsayı (integer) mı? Ondalık sayı olacak mı mesela.... Eğer dizi; Negatif sayılar da içeriyorsa zaten, vay halimize :)
 

Korhan Ayhan

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

Daha önce buna benzer bir soru için örnek bir dosya hazırlamıştım. Ekte örnek dosyanıza göre revize edilmiş halini bulabilirsiniz. Dosya şu haliyle 20 li kombinasyona kadar listeleme yapıyor ve arama yaptığınız değere ulaşan tüm kombinasyonları listeliyor. Umarım faydası olur.

Örnek dosya Sn. veyselemre beyin daha önce bir soruda yayınladığı kodlardan faydalanılarak hazırlanmıştır.

Not: Yaptığım denemede benim bilgisayarımda işlem süresi 12 dakika sürdü.
 
Katılım
15 Mayıs 2005
Mesajlar
135
Excel Vers. ve Dili
excel 2003 türkçe
cost controle

bu makroda 1280 e eşitifadeleri arıyo eğer yoksa hiç bi şey vermiyo benim istediğim 1280 çıkmazsa çıkan en iyi sonuç.örneğin 5 rakam girilsin 1300,1400,1500,3,2, cevap 5 olacak
1300,1400,1500,3,4,1278 cevap 1278 verecek.
bu şekilde düzenleyebilirmiyiz
 

Korhan Ayhan

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

Ekteki örnek dosyada gerekli düzenlemeleri yaptım. Dosya içinde gerekli açıklamaları bulabilirsiniz. Umarım faydası olur.

Dosya şu haliyle 20 li kombinasyona kadar listeleme yapmaktadır. Sarı renkli alana ne kadar veri girerseniz işlem süreside o derece artacaktır.
 
Son düzenleme:
Katılım
15 Mayıs 2005
Mesajlar
135
Excel Vers. ve Dili
excel 2003 türkçe
rapor sayfasındaki verilere bakıyorum a2+a3+a5=55 demiş ama a2+a3+a5 55 yapmıyor.2.makroda bi sorun var sanırım.teşekkür ederim
 

Korhan Ayhan

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

Uyarınız üzerine üstteki mesajımdaki dosyayı güncelledim. İncelermisiniz.
 
Son düzenleme:
Katılım
6 Mart 2007
Mesajlar
54
Excel Vers. ve Dili
2003 English
Merhaba,

Isminizi bilmiyorum ama bu siteye vermis oldugunuz faydalardan dolayi size ve sizin gibiler tesekkur ederim.

Algoritma baslikli konu, benim de cozmem gereken bir sorunun tam yaniti. yalnız ben excel ingilizce version kullanıyorum. makroları calistimaya calistigimda. HANG_KOMBYNASYONLAR_ARANAN_DEDERY_VERYYOR
bulunamadi diyor.

bunu nasil cozerim bilmiyorum.kodlari ingilizce yapmanizi da isteyemem. bu zahmetli olur.

Yardımcı olabilir misiniz.

Selam

Emin.
 

Korhan Ayhan

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

Sn. memin.yilmaz,

Makronun adını RAPOR şeklinde değiştirip ilgili butona atayıp denermisiniz.
 
Katılım
6 Mart 2007
Mesajlar
54
Excel Vers. ve Dili
2003 English
Korhan Bey,

Dediginiz gibi yaptım. Bu defa ise runtime"9" hatasi veriyor iki buton icin de. "KOMBİNASYONLARI LİSTELE" yerine "listele", "ARANAN DEĞERİ VEREN TAM VE EN YAKIN KOMBİNASYONLAR" yerine de "deger" yazdim. sanirim macro basliginin degismesi yeterli olmadi. kodlardaki degiskenlerin de bozuk karakterlerinin duzenlenmesi gerekiyor.

Bu calismanizda 20 kombinazyon var. benim buna ihtyacim yok aslinda. en fazla ikili olmasi da isim gorur. Biraz aciklamaya calisayim:

bir fatura programimiz var. buraya girilen bilgileri. excele de farkli bir amac icin girmisiz. merakımız su: bir fatura ya bakiyorum toplam 495,485,00 euro. 5 kalem var ve kalemlerin adlari belli. ama excel tablosunda bu kalemler ve degerleri girildiginde daha bir cok fatura deger girildigi icin. kalemleri bulamiyorum. bu bes kalemin toplami 495,485,00 euro. buna benzer baska bir fatura olmasi da imkansiz. algoritma konulu macroyu kullanarak 495,485,00 euro toplamına ulasan kalemleri isaretleyebilirim diye dusundum.

ekli bir dosya var bu yardımcı olur sanirim.
 
Son düzenleme:

Korhan Ayhan

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

Arkadaşlar 9. mesajımdaki dosyayı güncelledim. İncelermisiniz. Dosya en son haliyle rapor sayfasını biraz daha hızlı oluşturuyor.
 
Katılım
15 Mayıs 2005
Mesajlar
135
Excel Vers. ve Dili
excel 2003 türkçe
cost süpersin ellerine sağlık.acayipde hızlı çalışıyor.
 

Korhan Ayhan

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

Arkadaşlar foruma yapılan saldırıda dosya silindiği için tekrar başlığa eklenerek güncellenmiştir.
 

Ekli dosyalar

Üst