Aynı Müşteri Koduna Ait Birden Çok Tutarı Excelde Listeleme
Bu çalışma kitabı, bir müşteri kodu birden fazla sipariş satırında geçtiğinde tutarları sırayla bulmayı gösteren küçük bir Excel örneğidir. Normal bir DÜŞEYARA araması eşleşen ilk satırı döndürür. Buradaki yardımcı sütun, aynı koda ait birinci ve ikinci kayıtları ayrı anahtarlara dönüştürür. Sonuç bölümündeki iki DÜŞEYARA formülü de bu anahtarları kullanır. Örnek veri sekiz sipariş satırından oluşur. Dosya, kapsamlı bir müşteri yönetim sistemi yerine tekrar eden kayıtları formülle ayırma yöntemini incelemek isteyenler için hazırlanmış bir uygulama alanıdır.Çalışma Kitabının Düzeni
Dosyada görünür tek çalışma sayfası Sayfa1 adını taşır. Ana veri bölümü 4 ile 11. satırlar arasındadır. D sütununda sipariş numarası, E sütununda müşteri kodu, F sütununda miktar ve G sütununda isim bulunur. İlk veri satırındaki sipariş numarası 1001, müşteri kodu 151, miktar 1.505 ve isim Ahmet Aktan'dır. Dördüncü veri satırında yine 151 kodu vardır; bu satırın miktarı 1.255'tir. Aynı kodun tekrar etmesi, yalnız kod ile yapılan düz aramanın neden yeterli olmadığını somut biçimde gösterir.Ana verinin solundaki B sütunu Yardımcı başlığını taşır. Bu alanda kod ve tekrar sırası birleştirilir. Örneğin 151 kodunun ilk kaydı 151-1, ikinci kaydı 151-2 olarak görünür. Aynı yapı 234 ve 162 kodlarının ikişer kaydı için de kullanılır. 142 ve 178 kodları birer kez yer alır. Böylece sekiz sipariş satırında beş farklı müşteri kodu bulunur. Kodların yanında kullanılan sıra sayısı, sipariş numarasının yerine geçmez; yalnızca arama anahtarının bir parçasıdır.
Sağdaki sonuç alanında J3 hücresi aranacak müşteri kodunu içerir. Dosyada bu değer başlangıçta 151 olarak kaydedilmiştir. I6 ve I7 hücrelerinde sırasıyla 1 ve 2 yer alır; bunlar birinci ve ikinci eşleşmeyi istemek için kullanılır. J6 ve J7 hücreleri sonuç formülleridir. Başlangıç örneğinde ilk sonuç 1.505, ikinci sonuç 1.255 olarak hesaplanır. Bu iki miktarın aynı müşteriye ait olması, yöntemin asıl davranışını kontrol etmek için kullanışlıdır.
Yardımcı Sütun Nasıl Çalışır
B4 hücresindeki formül E4 hücresindeki müşteri kodunu, bir tireyi ve E4'e kadar aynı kodun kaç kez görüldüğünü birleştirir. SAY.EĞER işlevinin İngilizce dosya formülündeki adı COUNTIF'tir. Formül aşağıya doğru kopyalandığında başlangıç başvurusu E4'te sabit kalır; bitiş başvurusu bulunduğu satıra kadar genişler. Bu nedenle ilk 151 satırında sayaç 1, sonraki 151 satırında sayaç 2 olur. B4:B11 aralığında sekiz yardımcı anahtar oluşur. Aynı müşteri kodunun başka müşterilerin satırları arasında bulunması sıralamayı bozmaz; sayaç yalnız eşit kodları dikkate alır.Yardımcı anahtarın biçimi önemlidir. Sonuç formülü kod, tire ve sıra değerini aynı sırada birleştirir. Yardımcı sütunda farklı bir ayraç kullanılırsa sonuç alanındaki aranan metin de aynı biçime getirilmelidir. Kodu sayı yerine metin olarak saklamak da bir fark yaratabilir; özellikle başında sıfır bulunan kodlar için veri türleri tutarlı tutulmalıdır. Bu çalışma kitabındaki örnek kodlar üç basamaklı sayısal değerlerdir ve başında sıfır taşımaz. Kullanılan yöntem, bu örnekteki değerlerle Excel içinde doğrulanmıştır.
İkinci Değeri Bulan DÜŞEYARA Mantığı
J6 hücresindeki DÜŞEYARA formülü, J3'teki kodu I6'daki sıra ile birleştirir. Başlangıç durumunda aranan anahtar 151-1'dir. Arama alanı B4:G11 olarak sabitlenmiştir. Bu aralığın ilk sütunu yardımcı anahtarı, beşinci sütunu ise F sütunundaki miktarı temsil eder. Son bağımsız değişken 0 olduğu için yaklaşık eşleşme yerine tam eşleşme istenir. J7 hücresi aynı yöntemi I7'deki 2 değeriyle uygular ve 151-2 anahtarını arar. Böylece iki ayrı sonuç, ilk eşleşmeyi tekrar etmek yerine ilgili kayıtların tutarlarını verir.Burada formül müşteri adını ya da sipariş numarasını döndürmez. DÜŞEYARA aralığındaki beşinci sütun F olduğundan sonuç miktardır. Başka bir alanı almak için sütun indeksini düşünmeden değiştirmek doğru değildir; önce B:G aralığındaki sütunların sırası ve istenen alanın konumu yeniden değerlendirilmelidir. Örnek, çoklu eşleşme yaklaşımını öğretmek üzere iki sonuç hücresi içerir. Daha fazla kaydı otomatik olarak döken bir dinamik dizi formülü veya kendiliğinden büyüyen tablo bu dosyada bulunmaz.
Örneği Excelde Deneme
Dosya açıldığında önce D4:G11 aralığındaki sekiz sipariş satırı gözden geçirilebilir. E sütununda 151 kodunun iki kez bulunduğu, F sütununda bu iki satıra karşılık gelen miktarların 1.505 ve 1.255 olduğu görülür. Ardından B4:B11 içindeki yardımcı değerler kontrol edilerek ilk ve ikinci 151 kaydının farklı anahtarlar aldığı doğrulanabilir. J3 hücresinde 151 bırakıldığında J6 ve J7 sonuçları bu iki miktarı göstermelidir. Bu kontrol, hem sayaç formüllerinin hem de arama formüllerinin birlikte çalıştığını sınar.Başka bir örnek için J3 değeri 234 yapılabilir. Dosyanın geçici bir Excel kopyasında bu değişiklik uygulanıp yeniden hesaplandığında J6 için 1.757, J7 için 2.854 sonucu alınmıştır. Kaynak arşivdeki dosya bu test sırasında değiştirilmemiştir. 162 kodu da iki veri satırında bulunur; kod değiştirildiğinde sonuçlar ilgili iki miktara göre hesaplanır. Deneme sonunda başlangıç örneğine dönmek için J3 değeri yeniden 151 yapılabilir. Sipariş verilerini değiştirmek yerine yalnız sorgu hücresini değiştirmek, yöntemi anlamak için daha kontrollü bir ilk adımdır.
Veri Ekleme ve Sınırlar
Yeni sipariş satırları eklenecekse iki sınır birlikte ele alınmalıdır. Yardımcı sütundaki formül yeni satıra kopyalanmalı, J6 ve J7 formüllerindeki sabit B4:G11 aralığı da yeni son satırı kapsayacak şekilde güncellenmelidir. Yalnızca yeni veriyi alta yazmak yeterli değildir; arama alanı eski 11. satırda kalırsa eklenen satırlar sonuçta görünmez. Üçüncü bir eşleşme istenirse sıra alanına 3 eklenip arama formülü uygun satıra kopyalanabilir. Bununla birlikte mevcut dosyanın sunduğu hazır sonuç alanı iki eşleşmeyle sınırlıdır.Bir kodun yalnız bir kaydı varsa ikinci sıra için tam eşleşme bulunamaz ve DÜŞEYARA hata değeri döndürür. Bu, dosyanın çalışmadığı anlamına gelmez; istenen ikinci kaydın örnek veride bulunmadığını gösterir. Benzer biçimde, J3'e tabloda olmayan bir kod yazılırsa birinci sonuç da eşleşme bulamaz. Dosyada bu durumları kullanıcı dostu bir metne dönüştüren EĞERHATA katmanı bulunmaz. Hataların açıklaması ve olası geliştirme yönü, hazır dosyanın mevcut işlevinden ayrı tutulmalıdır.
Dosyanın Teknik Özellikleri
Çalışma kitabı xlsx biçimindedir; VBA makrosu, dış çalışma kitabı bağlantısı, veri bağlantısı veya grafik içermez. B4:B11 aralığı COUNTIF, J6:J7 aralığı VLOOKUP kullanır. Formüller Türkçe Excel arayüzünde yerelleştirilmiş işlev adlarıyla görüntülenebilir; dosyanın sakladığı formüller İngilizce işlev adlarıyla kaydedilmiştir. Özgün dosyada I3 başlığı yanlışlıkla Sipariş No yazmasına rağmen J3 değerinin aradığı alan müşteri kodudur. Düzeltilmiş 1.1 sürümünde bu başlık Müşteri Kodu olarak değiştirilmiş, metnin tamamı görünsün diye I sütunu genişletilmiş, belge yazarı ve şirket üst verisi ExcelDepo olarak düzenlenmiştir. Kaynak veriler, yardımcı anahtarlar ve formüller korunmuş; özgün dosya ve SHA-256 özeti arşivde saklanmıştır. Formüller ayrıca gerçek Microsoft Excel uygulamasında kod değiştirme ve yeniden hesaplama denemesiyle sınanmıştır.Bu örnek, tekrar eden müşteri kodlarına sahip küçük bir veri kümesini incelemek, yardımcı sütun kullanımını öğrenmek veya DÜŞEYARA'nın ilk eşleşme sınırını aşan bir düzen kurmak için uygundur. Hazır dosyanın amacı bir iş sürecinin tamamını yönetmek değildir. Kullanım sırasında kaynak satır aralığı, kod biçimi ve istenen eşleşme sayısı birlikte kontrol edildiğinde, örnekteki iki sonuç hücresinin neyi gösterdiği açık kalır. Böylece aynı kod altında birden fazla tutarın neden ve hangi sırayla döndüğü formüller üzerinden izlenebilir.