• DİKKAT

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

ilk üç karaktere göre toplama

  • Konbuyu başlatan Konbuyu başlatan k0081
  • Başlangıç tarihi Başlangıç tarihi
Katılım
17 Haziran 2008
Mesajlar
1,874
Excel Vers. ve Dili
Microsoft Ofis Profesyonel 2019 x64 TR
Merhaba arkadaşlar;

Ekli dosyayı görüntüle Rapor2.xlsx

ekteki dosyaya bir buton ekleyerek A sütunundaki verilerin ilk üç karakteri aynı olanları, B sütunundaki veriye göre toplayarak, A sütunundan nasıl silebiliriz? A sütununda sadece tek tip veri kalacak.. C20 , C12, C16 gibi.. sadece birer tane...
 
Son düzenleme:
Örnek dosyanızda A sütununda zaten sadece 3 karakter var. Dolayısıyla özet tablo ile yapabilirsiniz.
 
Merhaba,

Sorunuzu öyle bir sormuşunuz ki sanki tablonuzda 3 karakterden fazla uzunlukta olan veriler var olduğu anlaşılıyor. Fakat dosyanızı açtığımızda A sütunundaki verilerin tamamı 3 karakterli. Net cevaplar alabilmeniz için ifadelerinizle örnek dosya içeriği benzer olmalıdır. Şimdi size soruyorum; A sütunundaki verilerinizde 3 karakterden fazla uzunlukta olan verileriniz var mı? Çünkü size vereceğimiz cevapta bu soruya vereceğiniz cevaba göre şekillenecek...
 
üç karakterden fazlası yok..,, diyelim ki başka bir örnek tabloda da üç karakterden fazlası var.. tekrarmı konu açıp sormam gerekiyor.. ? ilk üç karaktere diyerek, başlamam bu sebeptendir...
 
İlk 3 karakter demek 3 karakterden fazla olduğu anlamına gelir. Sadece 3 karakter varsa çözüm farklı, 3 karakterden fazla olup ilk 3 karakter dikkate alınacaksa çözüm farklı olur. sizin sormanız gereken hiç karakter uzunluğunu karıştırmadan A sütunundaki verilere göre nasıl toplam alınır olmalıydı ki zaten bunun cevabı özet tablo olarak daha önce verildi.
 
Merhaba,

Yusuf beyin yazdıklarına katılıyorum. Anlatmak istediğimde buydu zaten...

İşin içine karakter uzunluğu girince çözüm yolu farklı olacaktı. Bu sebeple mesajımı yazmıştım. Şimdi sizin amacınızın benzersiz verilerden oluşan bir liste elde etmek olduğunu anlıyorum. Bunun için verilerinize bir başlık satırı ekledikten sonra EKLE menüsünden PIVOT TABLE seçeneğini incelemenizi öneririm. Çok pratiktir. Eğer nasıl yapılacağını bilmiyorsanız nette "ÖZET TABLO NASIL HAZIRLANIR" şeklinde arama yapın. Mutlaka tarif edinlen linklere ulaşacaksınız. Forumumuzda da kaynaklar var. Arama yapınız.
 
tamam. teşekkürler arkadaşlar..
 
Merhaba,

Yinede makrolu çözüm isterseniz aşağıdkai kodu deneyebilirsiniz. Ben 900.000 satırlık bir dosyada denedim. Yaklaşık 10 saniyede işlemi tamamlıyor.

Kod:
Sub ÖZET_RAPOR()
    Dim Zaman As Double, SC As Object, Veri As Variant
    Dim Satir As Long, X As Long, Say As Long
        
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
        
    Zaman = Timer
    
    Set SC = CreateObject("Scripting.Dictionary")
    SC.CompareMode = vbTextCompare
    Satir = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A1:B" & Satir).Value
    
    ReDim Dizi(1 To 2, 1 To UBound(Veri))
        
    For X = 1 To UBound(Dizi, 2)
        If Not SC.Exists(Veri(X, 1)) Then
            Say = Say + 1
            SC.Add Veri(X, 1), Say
            Dizi(1, Say) = Veri(X, 1)
            Dizi(2, Say) = 0
        End If
        Dizi(2, SC.Item(Veri(X, 1))) = Dizi(2, SC.Item(Veri(X, 1))) + Veri(X, 2)
    Next
    
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    
    If Say > 0 Then
        Range("A:B").ClearContents
        ReDim Preserve Dizi(1 To 2, 1 To Say)
        Range("A1").Resize(UBound(Dizi, 2), 2) = Application.Transpose(Dizi)
        Range("A:B").EntireColumn.AutoFit
        MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & _
               "İşlem süresi ; " & Format((Timer - Zaman) / 60 / 60 / 24, "hh:mm:ss.ms"), vbInformation
    Else
        MsgBox "Uygun kayıt bulunamadı!", vbCritical
    End If
End Sub
 
Korhan Ayhan;

hocam çok teşekkürler.. tamamdır.. sağolun.. büyüksünüz...
 
Geri
Üst