• DİKKAT

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

Soru Aynı sütunda farklı olan verilerin sayısını bulma

Katılım
24 Temmuz 2019
Mesajlar
484
Excel Vers. ve Dili
EXCEL 2010 TÜRKÇE
Merhaba
VBA ile olmak üzere "A" sütununda yazılı olan farklı isimleri saydırmak istiyorum.
Yardımınız için şimdide teşekkür ederim.
 
Kod:
Sub Benzersizsay()
Dim LstRw As Long, Rng As Range, List As Object
LstRw = Cells(Rows.Count, "A").End(xlUp).Row
Set List = CreateObject("Scripting.Dictionary")

For Each Rng In Range("A2:A" & LstRw)
  If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
MsgBox List.Count & " adet benzersiz veri var"
End Sub
 
@Ali Hocam Selam,
Peki aşağıdaki görseldeki gibi toplama işlemi yaptırmak istesek; (toplamları B sütununa yazdırsın)
VBA Kodu için yardımcı olabilir misiniz?
Teşekkürler, iyi çalışmalar.

237203
 
@Ali Hocam Tekrar Selam,
Farklı bir örnek olarak ve bilgi edinmek maiyetinde vede formu zenginleştirmek açısından;

1>>>
237205

2>>>
237206

Yukarda gerek alfabetik gerekse numaratik tablolardan butona tıkladığımızda karşımıza bir kutu açılsa ve kutuya örneğin KASTAMONU yazsak ve son satıra KASTAMONU dan kaç tane var toplamanı yazsa ve aynı şekilde numaratik olarak plakaları örnek aldım yine karşımıza bir kutu açılsa ve kutuya 37 yazsak son satıra 37 rakamından kaç tane içeriyor onu yazsa gibi gibi mümkün müdür?

Son olarak numaratiki dikkate aldığımızda kaç tane değilde 37 den kaç tane var ise toplamanı yazdırmamız mümkün müdür?
Ama dediğim gibi butona tıkladığımızda bir kutu açılacak ve kutuya biz istediğimiz veriyi yazacağız ve yazdığımız verinin bilgisini verecek bize!

3 nolu ve 4 nolu mesajım ihtiyaçtan değil formda bulunması açısından örnek maiyetinde paylaşılmıştır. Olursa güzel bir örnek olur diye düşündüm.

İyi çalışmalar.
 
Ali Beyin örnek dosyasını baz alarak, alternatif kod;

C#:
Sub Test()
'   Haluk - 15/06/2022
'   sa4truss@gmail.com
    Dim DB As Object, RS As Object, strSQL As String
   
    Sheets("Sayfa1").Range("D2:E" & Rows.Count).ClearContents
   
    Set DB = CreateObject("DAO.DBEngine.120").OpenDatabase(ThisWorkbook.FullName, False, False, "Excel 8.0; HDR=Yes; IMEX=1;")
   
    strSQL = "Select [İLLER], Sum([TOPLA]) From [Sayfa1$] Where [İLLER] Is Not Null Group By [İLLER]"
   
    Set RS = DB.OpenRecordset(strSQL)
    Sheets("Sayfa1").Range("D2").CopyFromRecordset RS
End Sub


İlaveten;

Bu tür bir tablo için Pivot Tablo veya aşağıdaki animasyonda görüldüğü gibi yine Excel'in yerleşik fonksiyonu olan "Consolidate" kullanılabilir.


Test.gif


.
 
Haluk üstadım gözümüzün önünde duran ama şimdiye kadar ne olduğunu merak bile etmediğim güzel bir özelliği öğretmiş sağolsun.
 
Dönüş yapan bütün hocalarıma teşekkürler.
@Haluk hocam sayende bir bilinmeyeni daha öğrenmiş olduk. @YUSUF44 hocamın da dediği gibi gözümüzün önünde duran fakat bir kere bu ne diye merak edip bakmadığımız güzel bir özelliği öğrenmiş olduk.
Saygılar...
 
Sütundaki benzersiz sayısının tespiti için alternatif;

C++:
Option Explicit

Sub Benzersiz_Say()
    Dim Say As Long, Son As Long, Formul As String
    
    Son = Cells(Rows.Count, 1).End(3).Row
    
    Formul = "=SUM(IF(FREQUENCY(IFERROR(MATCH(A1:A1048576,A1:A1048576,0),""""),IFERROR(MATCH(A1:A1048576,A1:A1048576,0),""""))>0,1))"
    Formul = Replace(Formul, 1048576, Son)
    
    Say = Evaluate(Formul)

    MsgBox "A sütunundaki benzersiz veri sayısı ; " & vbCrLf & vbCrLf & Say
End Sub
 
Ali Beyin örnek dosyasını baz alarak, alternatif kod;

C#:
Sub Test()
'   Haluk - 15/06/2022
'   sa4truss@gmail.com
    Dim DB As Object, RS As Object, strSQL As String
  
    Sheets("Sayfa1").Range("D2:E" & Rows.Count).ClearContents
  
    Set DB = CreateObject("DAO.DBEngine.120").OpenDatabase(ThisWorkbook.FullName, False, False, "Excel 8.0; HDR=Yes; IMEX=1;")
  
    strSQL = "Select [İLLER], Sum([TOPLA]) From [Sayfa1$] Where [İLLER] Is Not Null Group By [İLLER]"
  
    Set RS = DB.OpenRecordset(strSQL)
    Sheets("Sayfa1").Range("D2").CopyFromRecordset RS
End Sub


İlaveten;

Bu tür bir tablo için Pivot Tablo veya aşağıdaki animasyonda görüldüğü gibi yine Excel'in yerleşik fonksiyonu olan "Consolidate" kullanılabilir.


Ekli dosyayı görüntüle 237210


.
Ekte istediğiniz gibi bir örnek hazırladım.
Bu dosya benimde işime yarıyor. Bir kolon daha ekleyerek ilgili satırın kaç kere tekrarlandığını da yazabilir miyiz
 
Geri
Üst