Yinelenen satırların değerlerini toplama

Katılım
16 Kasım 2017
Mesajlar
3
Excel Vers. ve Dili
2007, Türkçe
Merhabalar

Elimdeki senaryo da A ve B sütunundaki değerler eşit ise C sütunundaki değerleri toplamam gerekiyor.

Örneğin
1. satırda A= 12 B= 25 C= 2
2. satırda A= 36 B= 25 C= 3
3. satırda A= 36 B= 25 C= 5
4. satırda A= 11 B= 28 C= 8
5. satırda A= 12 B= 25 C= 3
5. satırda A= 12 B= 25 C= 10


Sonuç olarak oluşacak tabloda;
1. satırda A= 12 B= 25 C= 15 (1.satır, 5. satır ve 6. satır A ve B değerleri aynı)
2. satırda A= 36 B= 25 C= 8 (2. satır ve 3. satır değerleri aynı )
4. satırda A= 11 B= 28 C= 8 (4. satır değeri)


bu şekilde olmalı.
Bunu formül ile ya da makro ile nasıl yapacağımı anlatan biri olursa minnettar olurum.

Şimdiden teşekkürler :)
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız aşağıdaki linktedir.:cool:

DOSYAYI İNDİR

Kod:
Option Base 1
Sub benzertopla59()
Dim sh As Worksheet, sonsat As Long, liste(), myarr()
Dim z As Object, n As Long, i As Long, deg As String
Set sh = Sheets("Sayfa1")
sh.Range("E:G").ClearContents
sonsat = sh.Cells(Rows.Count, "A").End(xlUp).Row
Set z = CreateObject("Scripting.dictionary")
liste = sh.Range("A1:C" & sonsat).Value
ReDim myarr(1 To 3, 1 To UBound(liste))
For i = 1 To UBound(liste)
    deg = liste(i, 1) & "|" & liste(i, 2)
    If Not z.exists(deg) Then
        n = n + 1
        z.Add (deg), n
        myarr(1, n) = liste(i, 1)
        myarr(2, n) = liste(i, 2)
    End If
    myarr(3, z.Item(deg)) = myarr(3, z.Item(deg)) + liste(i, 3)
Next i
Set z = Nothing
Erase liste
ReDim Preserve myarr(1 To 3, 1 To n)
sh.Range("E1").Resize(n, 3) = Application.Transpose(myarr)
MsgBox "İşlem sonuçlandı." & vbLf & "evrengizlen@hotmail.com"
End Sub
 

Ekli dosyalar

MuratBektas41

Altın Üye
Katılım
14 Nisan 2018
Mesajlar
16
Excel Vers. ve Dili
2007
ingilizce
Altın Üyelik Bitiş Tarihi
28-08-2028
Dosyanız aşağıdaki linktedir.:cool:

DOSYAYI İNDİR

Kod:
Option Base 1
Sub benzertopla59()
Dim sh As Worksheet, sonsat As Long, liste(), myarr()
Dim z As Object, n As Long, i As Long, deg As String
Set sh = Sheets("Sayfa1")
sh.Range("E:G").ClearContents
sonsat = sh.Cells(Rows.Count, "A").End(xlUp).Row
Set z = CreateObject("Scripting.dictionary")
liste = sh.Range("A1:C" & sonsat).Value
ReDim myarr(1 To 3, 1 To UBound(liste))
For i = 1 To UBound(liste)
    deg = liste(i, 1) & "|" & liste(i, 2)
    If Not z.exists(deg) Then
        n = n + 1
        z.Add (deg), n
        myarr(1, n) = liste(i, 1)
        myarr(2, n) = liste(i, 2)
    End If
    myarr(3, z.Item(deg)) = myarr(3, z.Item(deg)) + liste(i, 3)
Next i
Set z = Nothing
Erase liste
ReDim Preserve myarr(1 To 3, 1 To n)
sh.Range("E1").Resize(n, 3) = Application.Transpose(myarr)
MsgBox "İşlem sonuçlandı." & vbLf & "evrengizlen@hotmail.com"
End Sub
Hocam eline sağlık çok işime yaradı.
 
Katılım
22 Şubat 2021
Mesajlar
106
Excel Vers. ve Dili
Ofis 360 Türkçe
Hocam benim de benzer bir problemim var. A sütununda text olarak değerler var eğer aynı ise değerler B sütunundaki value olan değerlerini toplamasını istiyorum. Nasıl yapabilirim, yardımcı olur musunuz.. Şimdiden teşekkürler..
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,333
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Pivot Table ile çok hızlı bir şekilde istediğiniz tabloyu yapabilirsiniz.
 
Üst