Belirli Bir Toplama Ulaşan Sayı Gruplarını Excel Üzerinde İnceleyin
Bir sayı listesinden, belirlenen toplamı veren grupları bulmak için yalnızca toplam almak yeterli değildir. Grubun kaç sayıdan oluşacağı da tanımlandığında, aynı hedefe ulaşan farklı seçimlerin ayrı ayrı değerlendirilmesi gerekir. Bu çalışma kitabı, on sayılık bir liste üzerinde bu işlemi formüllerle gerçekleştirir. Hedef toplam ve kullanılacak sayı adedi değiştirildiğinde uygun seçimlerin sayısı hesaplanır; bulunan grupların ilk onu yan yana sütunlarda gösterilir. Dosya, makro çalıştırmadan kullanılabilen tek sayfalık bir hesaplama örneğidir. Sayıların liste içindeki konumları korunarak gösterildiği için, hangi girdilerin seçildiği sonuç tablosundan takip edilebilir.Çalışma Kitabının Düzeni
Dosyada Sayfa1 adlı tek görünür çalışma sayfası bulunmaktadır. Giriş sayıları B3 ile B12 arasındaki on hücrede yer alır. B2 hücresinden başlayan başlık satırında Sayılar ifadesi ve sonuç sütunlarının sıra numaraları bulunur. C sütunundan L sütununa kadar olan alan, uygun sayı gruplarını göstermeye ayrılmıştır. Her sonuç sütununun üçüncü satırdan on ikinci satıra kadar uzanan kısmı, giriş listesindeki aynı satırlarla eşleşir. Seçime katılan sayı kendi satırında görünür; seçime katılmayan satırın sonuç hücresi boş bırakılır. Böylece sonuçlar yalnızca sıkıştırılmış bir sayı listesi şeklinde sunulmaz; kaynak konumları da görülebilir.Sayfanın sağındaki N ve O sütunlarında hesaplama ayarları bulunmaktadır. N2 hücresindeki Hedef Toplam başlığının karşısına, O2 hücresine istenen toplam girilir. N3 hücresindeki Çözüm Sütunu başlığının karşısındaki O3 hücresi bir sonuçtur: koşullara uyan toplam seçim sayısını hesaplar. N4 hücresindeki Kaç Sonuçta Aransın ifadesinin karşısındaki O4 hücresi ise seçimde kullanılacak sayı adedidir. Bu etiket, görüntülenecek sütun adediyle karıştırılmamalıdır. Örneğin O4 değerinin beş olması, her grubun beş giriş sayısından oluşmasını sağlar; sonuç tablosunun sütun sayısını beşe düşürmez.
Örnek Sayı Üretimi ve Sabit Girdiler
Çalışma kitabı başlangıçta örnek girdileri otomatik üretir. B3 hücresindeki RANDARRAY işlevi, on satır ve bir sütun boyunca 10 ile 99 arasında tam sayılar oluşturur. Bu formül taşan bir dizi olarak B3:B12 aralığını doldurur. Yeniden hesaplama yapıldığında örnek sayılar değişebilir; dolayısıyla aynı hedef için bulunan sonuçlar da değişebilir. Dosya açıldıktan sonra farklı bir örnek görülmesi, hesaplamanın kendi başına hatalı olduğu anlamına gelmez. Rastgele girdi üretimi, farklı sayı listelerinde arama mantığının incelenmesine yardımcı olan mevcut bir özelliktir ve güncellenmiş sürümde korunmuştur.Gerçek bir sabit listeyle işlem yapılacaksa, taşan dizinin üzerine tek tek hücre yazılması uygun değildir. B3:B12 aralığının tamamı seçilerek mevcut dizi kaldırılmalı, ardından on sayı aynı aralığa değer olarak girilmelidir. Mevcut rastgele sayıların sabitlenmesi istenirse, aralık kopyalanıp yalnız değerler olarak yapıştırılabilir. Bu işlemden sonra B3 hücresindeki rastgele üretim formülü bulunmayacağından, yeni rastgele örnekler için özgün çalışma kitabının bir kopyası saklanması yararlıdır. Girdi hücreleri hesaplama aralığının dışında genişletilmemelidir; bu dosyanın formülleri özellikle on giriş konumu için düzenlenmiştir.
Hedef ve Sayı Adedi Birlikte Değerlendirilir
Arama iki koşulu aynı anda uygular. Seçilen sayıların toplamı O2 hücresindeki hedefe eşit olmalıdır. Aynı seçimde bulunan sayı adedi de O4 hücresindeki değere eşit olmalıdır. Bu nedenle hedefe ulaşan daha kısa veya daha uzun gruplar, toplamları doğru olsa bile sonuç sayısına katılmaz. Olağan kullanımda O4 hücresine bir ile on arasında bir tam sayı girilmelidir. Hedef toplamın değiştirilmesi, sayı listesini değiştirmeden farklı bir tutarın aranmasını sağlar. Sabitlenmemiş rastgele girişlerde ise yeniden hesaplama sırasında girdi listesi de değişebileceği için karşılaştırmalar aynı veri kümesini temsil etmeyebilir.Somut bir örnekte giriş listesi 10, 20, 30, 40, 50, 60, 70, 80, 90 ve 100 olduğunda, hedef 100 ve sayı adedi iki seçilirse dört grup bulunur. Bu gruplar 10 ile 90, 20 ile 80, 30 ile 70 ve 40 ile 60 seçimleridir. O3 hücresindeki sayı dört olur. Sonuç sütunlarında her grubun iki sayısı, giriş listesindeki kendi satırlarında görünür. Benzer şekilde 45, 55, 60, 65 ve 75 değerleri beş sayılık bir grupta 300 toplamını verir. Bu örnek, hedef tutarla sayı adedinin birlikte uygulanmasını açıklamak için kullanılabilir; dosyada her hedef için mutlaka bir çözüm bulunacağı anlamına gelmez.
Sonuç Sayısı ve Görüntülenen İlk On Grup
Sonuç tablosunda on ayrı sütun bulunmaktadır. O3 hücresi ise yalnızca bu on sütunu saymaz; arama koşullarına uyan bütün seçimlerin adedini gösterir. Onun üzerinde eşleşme bulunduğunda tabloda ilk on seçim görünür, diğer eşleşmelerin varlığı O3 değerinden anlaşılır. Örneğin on girişin tamamı 10 olduğunda, hedef 20 ve sayı adedi iki seçilirse 45 farklı konumsal seçim vardır. Bu durumda O3 değeri 45 olur; tabloda bu seçimlerin ilk onu yer alır. Görüntülenen sütun sayısını artıran ayrı bir ayar veya ek sonuç sayfası mevcut değildir.Tekrarlanan sayılar, listedeki farklı satırlarda bulunuyorsa ayrı giriş konumları olarak değerlendirilir. Aynı değerin iki satırda bulunması, bu iki satırın tek bir kayıt gibi birleştirildiği anlamına gelmez. Bu nedenle farklı seçimler ekranda aynı sayı değerlerini içerebilir. Sonuçların kaynak satırlarına hizalı gösterilmesi bu ayrımı takip etmeyi kolaylaştırır. C13:L13 aralığındaki alt toplamlar, görünür her grubun seçilen değerlerini toplar. Geçerli bir grubun toplamı sıfırsa sıfır değeri gösterilir; kullanılmayan sonuç sütunlarının toplam alanı boş kalır. Eşleşme bulunmadığında O3 sıfır olur ve sonuç alanında geçerli bir grup gösterilmez.
Formüllerin Hesaplama Mantığı
On giriş için seçilme veya seçilmeme durumlarının tamamı 1024 farklı seçim maskesi oluşturur. Formüller ROW, INDIRECT, INT, MOD ve TRANSPOSE işlevlerinden yararlanarak bu seçimleri temsil eden bir matris kurar. Her maskenin kaç girdiyi seçtiği MMULT ile hesaplanır. Aynı matrisin giriş sayılarıyla çarpılması, her seçimin toplamını verir. Seçilen sayı adedi ile hedef toplam koşullarının birlikte sağlanması, geçerli maskeleri belirler. O3 hücresinde SUMPRODUCT bu geçerli seçimleri sayar. Böylece yanlış sayı adedine sahip bir maskenin sıfır toplam üzerinden uygunmuş gibi sayılması önlenir.Sonuç hücrelerinde SMALL ve INDEX işlevleri, geçerli seçimleri sıra ile alır. IF işlevi, ilgili satırdaki sayının bu seçime katılıp katılmadığını denetler. Katılan değer, B sütunundaki karşılık gelen giriş hücresinden okunur. COLUMNS ve ROWS işlevleri sonuç sütunu sırasını ve giriş satırı konumunu takip eder. Başlık satırındaki HSTACK ve SEQUENCE işlevleri ise Sayılar başlığını sonuç sıra numaralarıyla birleştirir. Bu yapıda VBA modülü, Power Query sorgusu, dış veri bağlantısı veya grafik bulunmaz. Dosyanın hesaplama özelliği hücre formüllerinden oluşur; Solver kullanımına veya ayrı bir makronun başlatılmasına dayanmaz.
Güncellenmiş Sürümde Düzeltilen Hesaplamalar
Güncel sürümde sonuç hücrelerinin yanlış sütundan değer okuması düzeltilmiştir. Önceki formüller boş A sütununa başvurduğu için uygun grup sayısı doğru görünse bile seçilen değerler sonuç alanında sıfır olarak gösterilebiliyordu. Başvurular gerçek girişlerin bulunduğu B sütununa yönlendirilmiştir. Ayrıca sıfır hedef aramalarında sayı adedi koşulunu sağlamayan seçimlerin yanlışlıkla sayılması giderilmiştir. Sayım ve sonuç seçimi aynı iki koşulu birlikte uygular. Alt toplam satırı da geçerli sıfır toplamlarını boş bırakmadan gösterir. Rastgele örnek üretimi, başlık dizisi, on girdilik düzen ve ilk on grubu gösteren sonuç alanı korunmuştur.Doğrulamada sabit girdiler kullanılarak dört eşleşmeli örnek, çözümsüz hedef, beş sayıyla 300 toplamı, yinelenen değerler, sıfır girdiler ve negatif sayılar incelenmiştir. Sonuç sayıları ve görünür gruplardaki seçili satırlar, 1024 seçimin ayrı ayrı değerlendirildiği bağımsız hesaplamayla karşılaştırılmıştır. Kaydetme ve yeniden açma sonrasında yeniden hesaplama da kontrol edilmiştir. Ondalıklı girdilerde eşitlik doğrudan sayısal toplam üzerinden sınanır; yuvarlama toleransı uygulanmaz. Bu nedenle hassas parasal hesaplamalarda dosyanın kendiliğinden kuruş yuvarlaması yaptığı varsayılmamalıdır. Açıklanan arama, on sayı üzerindeki kesin hedef ve belirli adet koşuluna dayanır.
Kullanım Adımları ve Excel Uyumluluğu
Çalışma kitabının bir kopyası açılarak önce örnek sayıların rastgele mi yoksa sabit mi kullanılacağı belirlenmelidir. Sabit kullanımda B3:B12 aralığı on sayıyla doldurulur. O2 hücresine hedef toplam, O4 hücresine seçilecek sayı adedi yazılır. Hesaplama sonrasında O3 hücresindeki eşleşme sayısı okunur; C:L alanındaki görünür gruplar ve alt toplamları incelenir. Formül hücrelerinin üzerine veri yazılması sonuçların çalışmasını engelleyebilir. Sonuç sayısı onun üzerindeyse tabloda bütün grupların gösterilmediği dikkate alınmalıdır. Rastgele örnek üretimi korunmuş bir kopyada yeniden hesaplama, yeni bir giriş listesi oluşturabilir.Dosyada HSTACK, SEQUENCE ve RANDARRAY gibi dinamik dizi işlevleri kullanıldığı için bu işlevleri destekleyen güncel bir Excel sürümü gerekir. Yalnızca dosyanın xlsx uzantılı olması, eski Excel sürümlerinde aynı işlevlerin bulunacağı anlamına gelmez. Masaüstü Excel üzerinde gerçekleştirilen testler, bu çalışma kitabının gerçek formüllerini değerlendirmiştir. Dosya, on girdilik toplam arama yöntemini öğrenmek, farklı seçimleri karşılaştırmak ve belirli adetli sayı gruplarını incelemek isteyen kullanıcılar için uygundur. Büyük veri kümelerinde otomatik genişleme, bütün eşleşmeleri sınırsız listeleme veya finansal yuvarlama sağlayan kapsamlı bir optimizasyon ürünü olarak değerlendirilmemelidir.