• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

vba da koşullu sayma

Katılım
3 Haziran 2005
Mesajlar
371
Merhaba,
k sayfasındaki koşullu toplamı aşağıdaki gibi alıyorum sorun yok.
Ancak çok yavaşlatıyor acaba bunu vba da nasıl bir kod ile yazmalıyım?
=TOPLA.ÇARPIM((k!A2:A5994<>"")/EĞERSAY(k!A2:A5994;k!A2:A5994&""))
 

Ekli dosyalar

  • den.rar
    den.rar
    7.6 KB · Görüntüleme: 13
Son düzenleme:
Selamlar,

Sorunuzu örnek dosya ile desteklermisiniz.
 
Selamlar,

Aşağıdaki kod ile sütundaki benzersiz kayıtların sayısını bulabilirsiniz. TOPLA.ÇARPIM fonksiyonunu VBA da kullanmak size hız kazandırmaz.

Kod:
Sub BENZERSİZ_SAY()
    Dim DİZİ As New Collection, VERİ As Range
 
    On Error Resume Next
    For Each VERİ In Range("A2:A" & Range("A65536").End(3).Row)
        DİZİ.Add VERİ, CStr(VERİ)
    Next
    On Error GoTo 0
 
    MsgBox DİZİ.Count
End Sub
 
Selamlar,

Alternatif olarak aşağıdaki koduda kullanabilirsiniz. Her ikiside hızlı sonuçlar vermektedir.

Kod:
Option Explicit
 
Sub BENZERSİZ_SAY()
    Dim SD As Object, VERİ As Range
    Set SD = CreateObject("Scripting.Dictionary")
 
    For Each VERİ In Range("A2:A" & Range("A65536").End(3).Row)
    If VERİ.Value <> "" Then
        If Not SD.Exists(VERİ.Value) Then
            SD.Add (VERİ.Value), 1
        End If
    End If
    Next
 
    MsgBox SD.Count
End Sub
 
Geri
Üst