Soru bir sütunda aynı isime sahip olan hücrelerin karşısındaki verinin toplanması ve tekrarlanan satırların ortadan kadırılması

Katılım
13 Temmuz 2020
Mesajlar
4
Excel Vers. ve Dili
Google E-tablolar. OpenOffice Calc
Merhabalar, Excel üzerinde depolanmış bilgileri düzenlemeye çalışıyorum ve aynı sütun içerisinden çok fazla kez aynı ürünün girildiği durumlar var, aynı isimde stok koduna sahip olan ürünlerin miktarını toplamak ve tek bir satıra yazmak istiyorum. Bunu yapabilecek bir fonksiyon bulamadım fakat yine bu forumda 3-4 yıl önce benzer bir sorunun makro ile kolayca çözülmüş gördüğüm için konuyu makro başlığına açtım. Dosyayı yüklemeyi beceremediğim için ss aldım linke tıkladığınızda karşınıza çıkan tablodan örnek vermek gerekirse A sütununda aynı isme sahip olan hücrelerin karşısındaki değerlerin sağ tarafta göstermiş olduğum gibi tek satır halinde ve verilerin toplanmış haliyle listelemeye ihtiyacım var. Yardımcı olabilirseniz çok sevinirim. https://prnt.sc/tgsp9n https://prnt.sc/tgsp9n
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Öncelikle foruma hoşgeldiniz.

Altın üye olmayanlar dosya yüklemeyi imzamda belirttiğim şekilde yapabilirler.

Paylaştığınız ekran görüntüsünden anladığım kadarıyla Microsoft Excel değil de OpenOffice kullanıyorsunuz. Bildiğime göre OpenOffice'te excel makroları çalışmıyor. Bu nedenle verilecek çözümler işinize yaramayabilir.

Eğer openofficete varsa Özet tablo raporuyla istediğiniz sonucu elde edebilirsiniz.

Ya da Mükerrrer olan sütunu başka bir yere kopyaladıktan sonra yine openofiste varsa Yinelenenleri Kaldır özelliğiyle teke düşürebilir, sonra da ETOPLA formülüyle sonuç alabilirsiniz.
 
Katılım
13 Temmuz 2020
Mesajlar
4
Excel Vers. ve Dili
Google E-tablolar. OpenOffice Calc
Öncelikle foruma hoşgeldiniz.

Altın üye olmayanlar dosya yüklemeyi imzamda belirttiğim şekilde yapabilirler.

Paylaştığınız ekran görüntüsünden anladığım kadarıyla Microsoft Excel değil de OpenOffice kullanıyorsunuz. Bildiğime göre OpenOffice'te excel makroları çalışmıyor. Bu nedenle verilecek çözümler işinize yaramayabilir.

Eğer openofficete varsa Özet tablo raporuyla istediğiniz sonucu elde edebilirsiniz.

Ya da Mükerrrer olan sütunu başka bir yere kopyaladıktan sonra yine openofiste varsa Yinelenenleri Kaldır özelliğiyle teke düşürebilir, sonra da ETOPLA formülüyle sonuç alabilirsiniz.
Merhabalar Yusuf Bey;
Yorumunuz için çok teşekkür ederim, normalde Microsoft excel kullanıyorum, öğrenci olduğumdan dolayı ücretsiz erişimim var fakat şu an kullandığım pc ofis pc'si olduğu için burada openoffice mevcut, herhangi bir makro çözümünü microsoft excel üzerinden uygulayabilirim. Özet Tablo raporuyla da Yinelenenleri kaldır seçeneğiyle de istediğim sonuca ulaşamıyorum. Özet tablo konusunda açıkçası kendi beceriksizliğimden dolayı yapamadığımı düşünüyorum fakat yinelenenleri kaldırma konusunda aralardaki boşlukları da kaldırdığı için istediğim şekle gelmiyor maalesef. Yüklemeyi imzanızda bahsettiğiniz şekilde yaptım onu da buraya bırakıyorum, çok değerli yorumlarınızı tekrar bekliyorum efendim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki makro istediğiniz sonucu vermektedir:

PHP:
Sub ozetle()
son = Cells(Rows.Count, "A").End(3).Row
Application.ScreenUpdating = False
For i = 2 To son
    If WorksheetFunction.CountIf(Range("A1:A" & i), Cells(i, "A")) = 1 Then
        yeni = Cells(Rows.Count, "E").End(3).Row + 2
        Cells(yeni, "E") = Cells(i, "A")
        Cells(yeni, "G") = WorksheetFunction.SumIf(Range("A1:A" & son), Cells(i, "A"), Range("C1:C" & son))
    End If
Next
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı.", vbInformation
End Sub
 
Katılım
13 Temmuz 2020
Mesajlar
4
Excel Vers. ve Dili
Google E-tablolar. OpenOffice Calc
Aşağıdaki makro istediğiniz sonucu vermektedir:

PHP:
Sub ozetle()
son = Cells(Rows.Count, "A").End(3).Row
Application.ScreenUpdating = False
For i = 2 To son
    If WorksheetFunction.CountIf(Range("A1:A" & i), Cells(i, "A")) = 1 Then
        yeni = Cells(Rows.Count, "E").End(3).Row + 2
        Cells(yeni, "E") = Cells(i, "A")
        Cells(yeni, "G") = WorksheetFunction.SumIf(Range("A1:A" & son), Cells(i, "A"), Range("C1:C" & son))
    End If
Next
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı.", vbInformation
End Sub
Merhabalar Yusuf Bey;
İlginiz için tekrar çok teşekkür ederim. Yazdığınız makro kodunu Microsoft excel 2007de uyguladığımda https://prnt.sc/thcin5 linkte de görebileceğiniz üzere Tekrarlayan satırları doğru şekilde tek satır haline düşürüyor fakat karşılık gelen miktarları toplayıp karşısına yazdırmıyor. Eğer bir hata yapıyorsam veya yanlış bir excel sürümünde çalıştırıyorsam uyarabilirseniz sevinirim. alt+F11 kombinasyonuyla açılan visual basic ekranında tools'tan makroyu seçip oraya yeni makro olarak attığınız kodu tanımladım ve f5 ile çalıştırdım. Değerli fikirlerinizi bekliyorum.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,071
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Paylaştığınız örnek dosyada hem ods formatında hem de xlsm formatında makro istediğiniz sonucu vermektedir.

Bu paylaştığınız görüntüde gördüğüm kadarıyla miktarlar B sütunundadır. Halbuki dünkü dosyada C sütunundaydı. Makroyu da C sütununa göre yapmıştım. C sütununda herhangi bir vevri olmadığından makronun 0 toplam vermesi normaldir. Ya koddaki

Cells(yeni, "G") = WorksheetFunction.SumIf(Range("A1:A" & son), Cells(i, "A"), Range("C1:C" & son))

satırını

Cells(yeni, "G") = WorksheetFunction.SumIf(Range("A1:A" & son), Cells(i, "A"), Range("B1:B" & son))

olarak değiştirin ya da miktar sütununu araya bir sütun ekleyerek C sütunu olarak değiştirin.
 
Katılım
13 Temmuz 2020
Mesajlar
4
Excel Vers. ve Dili
Google E-tablolar. OpenOffice Calc
Ah haklısınız pc değiştirince dikkatimden kaçmış, Şu an sorunsuz çalışıyor. Gerçekten çok teşekkür ederim, üzerimden ciddi bir yük aldınız.
 
Üst