Bu dosya, bir veri aralığında en çok yazılmış (tekrar eden) değerleri Kullanıcı Tanımlı Fonksiyon (KTF) ile bulmayı gösterir. Fonksiyon, değerleri tekrar sayısına göre sıralar ve istenen sıradaki değeri döndürür; böylece yalnızca en çok tekrar eden değil, 2., 3., 5. gibi sıralardaki değerler de alınabilir.
U5 hücresinde, aralıktaki en çok tekrar eden değer doğrudan alınır; U10 hücresinde sıra numarası 5 olarak verilir:
Fonksiyon adı iki dilde de EnCok olarak yazılır.
Dosyanın içeriği
- Sayfa1: B2:O25 aralığında metin ve sayı karışık örnek veri tablosu bulunur. Tabloda ay adları (Ocak, Kasım), gün adları (Cuma, Çarşamba), şehirler (Ankara, İzmir, Antalya), kodlar (AAA, BBB, CCC) ve sayılar (123, 147, 148, 212, 356) yer alır.
- R sütununda "EnÇok Olanlar" başlığı altında, tabloda en çok tekrar eden değerler sıralı olarak listelenir.
- U sütununda KTF'nin tek tek kullanımı gösterilir: "En Fazla Tekrar Eden" ve "5. olarak" etiketleri yanındaki hücrelerde ilgili sıradaki değer verilir.
Kullanılan formüller
R sütunundaki liste, sıra numarasını ROWS ile üretir ve hata durumunda hücreyi boş bırakmak için IFERROR kullanır:U5 hücresinde, aralıktaki en çok tekrar eden değer doğrudan alınır; U10 hücresinde sıra numarası 5 olarak verilir:
=EnCok(B2:O25;1)
=EnCok(B2:O25,1)
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Module1 içinde tek bir fonksiyon bulunur:- EnCok(Alan, SNo): Verilen aralıktaki boş olmayan ve gizli satırda bulunmayan hücreleri tarar. Her farklı değeri bir Scripting.Dictionary ile bir kez kaydeder, tekrar sayısını CountIf ile hesaplar. Değerleri tekrar sayısına göre çoktan aza sıralar ve SNo ile istenen sıradaki değeri döndürür.
- Fonksiyon Volatile olarak işaretlidir; sayfada her hesaplama yapıldığında yeniden çalışır.
- Kod, dosya silme veya dışarıya bağlantı gibi işlemler içermez.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- B2:O25 aralığındaki örnek verilerin yerine kendi verilerinizi yazın.
- R sütunundaki formüller, tekrar sayısına göre sıralı değerleri otomatik listeler.
- Tek bir sıradaki değer için herhangi bir hücreye EnCok fonksiyonunu aralık ve sıra numarasıyla yazın.
- Farklı bir aralık kullanacaksanız formüllerdeki aralık adresini değiştirin.
- Kendi çalışma dosyanızda kullanmak için Module1 kodunu o dosyaya kopyalayın ve dosyayı .xlsm olarak kaydedin.