Benzersiz Adetleri ve Benzersizlerin Listelenmesi
15 Temmuz 2020
Önemli Not :
1 - Özellikle benzersizlerin listelenmesinde farklı farklı formüllere yer verilmeye çalışıldı. Verilen formüller DİZİ formülleri olduğundan hesaplamalarda / veri girişlerinde YAVAŞ çalışmaya neden olmaktadır.
2 - Dosyanın daha da YAVAŞ çalışmaması açısından, Koşula bağlı Benzersizlerin Listelenmesi konusuna dosyada yer verilmedi.
Hazırlanan dosyada 4 sayfa mevcuttur.
1 - Veri Sayfası : Malzeme Kod Numaralarına göre malzemelerin günlük bazda Ambara geliş adetlerinin tutulduğu bir liste vardır. Liste normalde, satırlarda BOŞ hücre içermeksizin tutulmaktadır. Fakat benzersizlerin hesaplanmasında BOŞ hücreler önemli bir faktör olduğundan aynı listenin bazı hücreleri özellikle silinerek BOŞ hücre yapılmış ve Veri Sayfasında ikinci bir liste şeklinde verilmiştir. Listelerde ayrıca hangi malzemelerin hangi Depoya yerleştirildikleri bilgileri de verilmektedir.
Bu iki liste, takip kolaylığı açısından, diğer sayfalara AYNEN aktarılmış ve hesaplamalar aktarılan listeler baz alınarak yapılmıştır.
(Veri sayfasındaki listeler DİNAMİK alan olarak adlandırılıp diğer sayfalardaki hesaplamalarda kullanılabilir)
Veri Sayfasında, gerekli tüm açıklamalar yapılmaya çalışıldı.
2 - BenzAdet Sayfası : Benzersiz adetlerinin hesaplatılmasına yönelik sayfa olup, sayfada
-- Koşullu Biçimlendirme ile Benzersizlerin farklı dolgu rengiyle gösterimleri
-- Yardımcı kolon kullanılarak benzersiz adetlerinin hesaplatılması
-- Formüllerle direkt olarak benzersiz adetlerinin hesaplatılması
-- Dinamik alan için Ad Tanımlamaları ve tanımlanan bu adların formüllerde kullanılarak benzersiz adetlerinin hesaplatılması
-- Kullanıcı Tanımlı Fonksiyon ile benzersiz adetlerinin hesaplatılması
işlemleri mevcuttur.
Benzersiz adetlerinin hesaplatılması
-- BOŞ Hücre bulunmaması
-- BOŞ hücre bulunması ve BOŞ hücrenin de Benzersiz olarak sayılması / sayılmaması
durumlarına göre yapılmıştır.
Ayrıca, Depo No bir KOŞUL olmak üzere, "Seçilen depoda kaç farklı malzeme bulunmaktadır?" şeklinde Koşula bağlı Benzersizlerin adedinin hesaplanmasına da yer verilmiştir.
3 - BenzListeFormul Sayfası :
Sayfada, Benzersizlerin Listelenmesi işlemine yönelik farklı farklı formüller bulunmaktadır.
Ayrıca, TEKRAR edenlerin de listelenmesine yönelik bir formül bu sayfaya ilave edilmiştir.
Kullanılan formüller genellikle DİZİ formüldür. Satır adedi çoğaldıkça hesaplamalarda YAVAŞlamalar, kasılmalar artacaktır.
Bu sayfa ile ilgili açıklamaları yapmak gerekirse
1 - Malzeme Kod Numaraları Sayı-Harf kombinasyonlarından oluşan METİN ifadelerdir.
--- Özellikle Benzersiz Kod Numaralarının Alfabetik Sıralamalarının yapılmasında kullanılan formüller, METİN ifadelerin sıralanmasına yöneliktir. SAYI ifadelerin sıralanmaları için formüllerde değişiklik yapılmalıdır. Hele hem SAYI ve hem de METİN ifadelerden oluşan benzersizlerin listelenmesi işlemi için formüller çok daha karmaşık olacağından (Buna bir de BOŞ hücre içerip içermediği kriterini de eklersek iyice karmaşık olacaktır) sadece METİN ifadelerin kullanılacağı Kod Numaralarına yer verildi.
--- Alfabetik sıralamalar Makro kullanılarak yapıldığında ise SAYI, METİN ayırımı olmaksızın sıralama yapılmaktadır. Gerek bu nedenle ve gerekse de DİZİ formüllerin işleyişi çok yavaşlatacağı nedeniyle Makro kullanılarak benzersizlerin listelenmesi yöntemi Tercih edilmelidir.
--- Alfabetik Listelemeler HARİÇ olmak üzere, diğer hesaplamalar / listelemelerde SAYI-METİN olayı problem teşkil etmeyecektir.
2 - Benzersizlerin listelenmesi için 2 Genel Formül kullanılmaktadır.
--- Dizi Formül olarak =EĞERHATA(İNDİS(Kod;KAÇINCI(0;EĞERSAY(ÜstRef;Kod);));"")
--- Normal formül olarak da (Normalformül olmakla birlikte Dizi formül gibi çalışır) =EĞERHATA(ARA(2; 1/(EĞERSAY(ÜstRef; Kod)=0); Kod);"")
Her iki formül de, listede BOŞ hücre bulunmaması içindir. BOŞ hücre için formüllere gerekli ilavelerin yapılması gereklidir. Ayrıca, her iki formül de, alfabetik sıra olmaksızın benzersizlerin listelenmesi işlemi içindir.
3 - Benzersizlerin listelenmesi için kullanılan formüllerdeki en önemli kısım EĞERSAY(ÜstRef;Kod) kısmıdır. Burada,
ÜstRef : Listelenmeye başlanacak satırın birÜST satırından başlar ve göreceli olarak aşağıya doğru devam eder. Örnek olarak, Benzersiz listesi C2 hücresinden itibaren yapılacaksa, C2 hücresindeki ÜstRef $C$1:C1 şeklinde olacaktır. C3 hücresindeki ise $C$1:C2 olacaktır.
Kod : Malzeme KOD numaralarının listesini içeren alan.
EĞERSAY(ÜstRef;Kod) : ÜstRef alanında, Kod değerini arar ve Sonuç olarak da varsa DOĞRU (1) ve yoksa YANLIŞ (0) değerini dizide üretir. Örnek verecek olursak, Kod listesinin ilk değerini $C$1:C1 de arar ve bulamaz. Sonuç olarak {0;0;0;....} şeklinde DİZİ üretir. Formülün tamamı ile de (KAÇINCI(0;....) kısmının kullanımı ile) 0 değerini arayacağımız için C2 hücresine Kod Listesinin ilk değeri yazılır. Benzersiz listesinin 2. satırına gelindiğinde ise $C$1:C2 ÜstRef aralığında Kod listesindeki değerleri arar. İlk değeri bulacağından 1 ve diğer değerler (tekrar etmeyenler) için 0 değeri üretir. Kod Listesinin 2. değeri ilk değer ile aynı ve 3. değeri bunlardan farklı olarak düşünürsek, üretilecek dizi {1;1;0;....) şeklinde olacaktır. 0 değerini arayacağımızdan dolayı da Kod Listesinin 3. değeri benzersiz olacak ve Benzersiz listesinin 2. satırına yazılacaktır.
4 - Formülün ikinci önemli kısmı ise KAÇINCI(0;EĞERSAY(ÜstRef;Kod); ) kısmıdır. EĞERSAY ile üretilen dizinin ilk 0 değerinin Kaçıncı sırada olduğunun bulunması işlemini yapar. Bulunan sıra değerinin Kod listesindeki karşılığı Benzersiz olmaktadır.
4 - BenzListeMakro Sayfası :
Bu sayfada, Makro ile Benzersizlerin alfabetik olarak listelenmesine örnekler verilmiştir.
Kodlar alıntıdan uyarlamadır.
Kullanılan yöntemler ise, Collection, Dictionnary ve Advanced Filter yöntemleridir. Dosyada kullanılan yöntemlerin haricinde Farklı yöntemler de mevcuttur (Örn. Remove Duplication)
Yararlı olması temennisiyle....
YARARLI KISAYOLLAR | |
---|---|
Kaydet / Alternatif | Shift F12 |
Son İşlemi Tekrar Etme | F4 |
Üstü Çizgili Yazdırma | Ctrl 5 |
Veri Doğrulama Penceresini Açma | Alt X VE V |
İşlemi Geri Alma | Ctrl Z |