Bu şablon, Sayfa1'deki sayı listesi içinden toplamı belirlenen hedef değere eşit olan sayı kombinasyonlarını bulur. Arama bir makro ile yapılır; bulunan çözümler sayfada listelenir.
Dosya makro içerir (.xlsm), açarken makroları etkinleştirmeniz gerekir.
D3 hücresi ise =B2 formülüyle ilk değeri alır.
Dosya makro içerir (.xlsm), açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Sayfa1: A sütununda "Sayılar" başlığı altında 3, 5, 6, 7, 8, 10, 12, 14, 17, 18, 22, 23, 25, 26 gibi örnek sayılar yer alır. C sütunu "Makro için Gerekli Alan" olarak ayrılmıştır; C2 hücresinde "Çözüm Adet" etiketi bulunur.
- D sütununda sayılar büyükten küçüğe sıralanmış olarak görüntülenir. Makro, bulunan sonuçları bu sütundaki değerlerden alır.
- F sütunu bulunan çözümlerin konum bilgilerini, H sütunundan itibaren sağdaki sütunlar ise her çözümü oluşturan sayıları içerir.
Kullanılan formüller
D sütunundaki sıralı liste, A2:A27 aralığındaki sayıları büyükten küçüğe dizer. LARGE sırayı, ROWS sıra numarasını üretir, IFERROR ise boş kalan satırlarda hata yerine boş değer gösterir:D3 hücresi ise =B2 formülüyle ilk değeri alır.
Makrolar
- startSearch: Ana makrodur. Önce F2:F500 ve H1:ZZ500 aralıklarını temizler. Seçili sütunun ilk hücresini çözüm adedi, ikinci hücresini hedef toplam, kalan hücreleri aranacak sayılar olarak okur. Çözüm adedi 0 girilirse tüm çözümler aranır. Sonuçlar seçimin iki sütun sağına yazılır ve ardından bulunan sayılar H sütunundan itibaren listelenir.
- recursiveMatch: Özyinelemeli arama yapar; toplamı hedefe ulaşan kombinasyonları ve bulunma saatini kaydeder. Negatif sayı yoksa hedefi aşan dalları keser.
- checkRandomNegatives: Pozitif sayılar arasında negatif sayı varsa kullanıcıya uyarı gösterir; bu durumda arama daha uzun sürer.
- RealEqual, ExtendRslt ve ArrLen: Ondalıklı karşılaştırma, sonuç metnini birleştirme ve dizi uzunluğunu hesaplama işlevlerini görür.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Tek sütunda, kesintisiz bir aralık seçin: ilk hücreye çözüm adedini (tümü için 0), ikinci hücreye hedef toplamı, altındaki hücrelere aranacak sayıları yazın.
- Aralık seçiliyken startSearch makrosunu çalıştırın.
- Sonuçları seçimin yanındaki sütunlarda ve H sütunundan başlayan listede inceleyin.