Bu dosya, bir listedeki benzersiz değerlerin kaç tane olduğunu üç farklı yöntemle hesaplar: dizi formülü, SUMPRODUCT formülü ve VBA ile yazılmış kullanıcı tanımlı fonksiyon (KTF). Üç yöntemin sonucu aynı hücre düzeninde yan yana karşılaştırılabilir.
D3 hücresinde aynı hesap SUMPRODUCT ile yapılır; bu nedenle dizi formülü olarak girilmesi gerekmez:
D4 hücresi, aşağıda anlatılan KTF'yi çağırır:
Dosyanın içeriği
- Sheet1: A2:A17 aralığında tekrarlı adların bulunduğu Adlar listesi (Adem, Barış, Cengiz, Ceren, Fahrettin, Jülide, Merve, Pınar, Serkan gibi).
- Sonuç sütunu (D2:D4): her yöntemin ürettiği benzersiz değer sayısı.
- Açıklama sütunu (H): örneklerde metin ve sayı değerlerinin kullanıldığını belirten notlar.
Kullanılan formüller
D2 hücresinde dizi mantığıyla çalışan toplam formülü kullanılır. Her değerin listede kaç kez geçtiği COUNTIF ile bulunur, 1 bu sayıya bölünür ve sonuçlar SUM ile toplanır:D3 hücresinde aynı hesap SUMPRODUCT ile yapılır; bu nedenle dizi formülü olarak girilmesi gerekmez:
=TOPLA.ÇARPIM(1/EĞERSAY(A2:A17;A2:A17))
=SUMPRODUCT(1/COUNTIF(A2:A17,A2:A17))
=CountUnique(A2:A17)
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Module1 içinde tek bir fonksiyon bulunur:- CountUnique: verilen aralıktaki her hücreyi bir Collection nesnesine anahtar olarak ekler. Aynı anahtar ikinci kez eklenemediği için tekrarlar atlanır (hata On Error Resume Next ile yok sayılır) ve koleksiyonun eleman sayısı sonuç olarak döndürülür. Application.Volatile nedeniyle fonksiyon her hesaplamada yenilenir.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- A sütunundaki listeyi kendi verinizle değiştirin.
- Formüllerdeki A2:A17 aralığını verinizin sınırlarına göre güncelleyin.
- D2:D4 hücrelerindeki sonuçları karşılaştırın.