• DİKKAT

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

HÜCRE İÇİNDEKİ VERİLERİ TOPLAMA

stier_22

Altın Üye
Katılım
15 Eylül 2009
Mesajlar
147
Excel Vers. ve Dili
excel 2016
Selam arkadaşlar,

Elimde bir liste var ve içerisinde yer alan verileri toplam olarak görmek istiyorum yanında adet veya kg olarak görerek

örnek 1,1,1 ad olan veriyi 3 ad olarak toplamını almam gerekiyor dosyam ektedir yardımcı olur musunuz (yanındaki birimleri de almasını istiyorum ad, kg, mt)
 

Ekli dosyalar

Örnek bakabilirsiniz.. istediğiniz böylemi?

Tam olarak yaptığınızı anlayamadım ben hücre içindeki veriyi toplamasını istiyorum sizin dosyanızda herhangi bir formül göremedim

Yani 258,10 KİLOGRAM,796,20 KİLOGRAM,1312,10 KİLOGRAM,239,20 KİLOGRAM diye yazan bir hücrede bunların toplam kilosunu versin , adet ,ise adetini versin yanında adet ve kiloda yazsın istiyorum toplamın yanında
 
Bu arada verileriniz hem virgülle ayrılmış hem de ondalık ayıracı olarak virgül kullanılmış.

Yanında birim olmayanlarda toplanacak mı?
 
Deneyiniz.

Kodları boş bir modüle ekleyip kullanabilirsiniz.


C++:
Option Explicit

Sub Birime_Gore_Topla()
    Dim Veri As Variant, Son As Long, X As Long, Kriter As Variant, Y As Integer, Zaman As Double
    Dim Toplam_Adet As Double, Toplam_Kg As Double, Toplam As Double, Miktar As Double
   
    Zaman = Timer
   
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son = 1 Then Son = 2
   
    Veri = Range("A1:A" & Son).Value
   
    For X = LBound(Veri) To UBound(Veri)
        If Veri(X, 1) <> "" Then
            If InStr(1, Veri(X, 1), "ADET") > 0 Then
                Kriter = Split(Veri(X, 1), "ADET")
                For Y = LBound(Kriter) To UBound(Kriter)
                    If Left(Kriter(Y), 1) = "," Then
                        Miktar = Mid(Kriter(Y), 2, Len(Kriter(Y)))
                    Else
                        Miktar = IIf(Kriter(Y) = "", 0, Replace(Kriter(Y), ",", "."))
                    End If
                    Toplam_Adet = Toplam_Adet + Miktar
                Next
            ElseIf InStr(1, Veri(X, 1), "KİLOGRAM") > 0 Then
                Kriter = Split(Veri(X, 1), "KİLOGRAM")
                For Y = LBound(Kriter) To UBound(Kriter)
                    If Left(Kriter(Y), 1) = "," Then
                        Miktar = Mid(Kriter(Y), 2, Len(Kriter(Y)))
                    Else
                        Miktar = IIf(Kriter(Y) = "", 0, Replace(Kriter(Y), ",", "."))
                    End If
                    Toplam_Kg = Toplam_Kg + Miktar
                Next
            Else
                Kriter = Split(Veri(X, 1), ",")
                For Y = LBound(Kriter) To UBound(Kriter)
                    If Left(Kriter(Y), 1) = "," Then
                        Miktar = Mid(Kriter(Y), 2, Len(Kriter(Y)))
                    Else
                        Miktar = IIf(Kriter(Y) = "", 0, Replace(Kriter(Y), ",", "."))
                    End If
                    Toplam = Toplam + IIf(Kriter(Y) = "", 0, Kriter(Y))
                Next
            End If
        End If
    Next
   
    Range("C1") = "Toplam"
    Range("C2") = "Toplam_Adet"
    Range("C3") = "Toplam_Kg"
   
    Range("D1") = Toplam
    Range("D2") = Toplam_Adet
    Range("D3") = Toplam_Kg
   
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 
Deneyiniz.

Kodları boş bir modüle ekleyip kullanabilirsiniz.


C++:
Option Explicit

Sub Birime_Gore_Topla()
    Dim Veri As Variant, Son As Long, X As Long, Kriter As Variant, Y As Integer, Zaman As Double
    Dim Toplam_Adet As Double, Toplam_Kg As Double, Toplam As Double, Miktar As Double
  
    Zaman = Timer
  
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son = 1 Then Son = 2
  
    Veri = Range("A1:A" & Son).Value
  
    For X = LBound(Veri) To UBound(Veri)
        If Veri(X, 1) <> "" Then
            If InStr(1, Veri(X, 1), "ADET") > 0 Then
                Kriter = Split(Veri(X, 1), "ADET")
                For Y = LBound(Kriter) To UBound(Kriter)
                    If Left(Kriter(Y), 1) = "," Then
                        Miktar = Mid(Kriter(Y), 2, Len(Kriter(Y)))
                    Else
                        Miktar = IIf(Kriter(Y) = "", 0, Replace(Kriter(Y), ",", "."))
                    End If
                    Toplam_Adet = Toplam_Adet + Miktar
                Next
            ElseIf InStr(1, Veri(X, 1), "KİLOGRAM") > 0 Then
                Kriter = Split(Veri(X, 1), "KİLOGRAM")
                For Y = LBound(Kriter) To UBound(Kriter)
                    If Left(Kriter(Y), 1) = "," Then
                        Miktar = Mid(Kriter(Y), 2, Len(Kriter(Y)))
                    Else
                        Miktar = IIf(Kriter(Y) = "", 0, Replace(Kriter(Y), ",", "."))
                    End If
                    Toplam_Kg = Toplam_Kg + Miktar
                Next
            Else
                Kriter = Split(Veri(X, 1), ",")
                For Y = LBound(Kriter) To UBound(Kriter)
                    If Left(Kriter(Y), 1) = "," Then
                        Miktar = Mid(Kriter(Y), 2, Len(Kriter(Y)))
                    Else
                        Miktar = IIf(Kriter(Y) = "", 0, Replace(Kriter(Y), ",", "."))
                    End If
                    Toplam = Toplam + IIf(Kriter(Y) = "", 0, Kriter(Y))
                Next
            End If
        End If
    Next
  
    Range("C1") = "Toplam"
    Range("C2") = "Toplam_Adet"
    Range("C3") = "Toplam_Kg"
  
    Range("D1") = Toplam
    Range("D2") = Toplam_Adet
    Range("D3") = Toplam_Kg
  
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub

bu kodu makro kaydet diyerek yapacağım değil mi sonra da çalıştır diyeceğim?
 
Mesajımda 3 link paylaştım. Onları incelerseniz bilgi sahibi olabilirsiniz.
 
Merhaba

Alternatif olarak Ek 'teki dosyayı ekliyorum.

Dosyada Hücre içerisindeki Dağınık Sayıların Birimli Toplanması, Kullanıcı Tanımlı Fonksiyon yazılarak Formül ile sağlanmıştır.

Formül kullanılınca kullanıcının analiz edilecek hücreyi kendisinin belirlemesi ve
analiz sonucunuda kendi belirleyeceği dilediği hücreye yazdırabilmesi mümkündür.

Eğer tercih edilirse Formül ile kullanıcıya kullanım esnekliği sağlanmaktadır.

Selamlar...

İlgili Resim
222144
 

Ekli dosyalar

sayın kulomer aynı hücre içinde adet kg metre litre brimli ürünler var bunları yan sütunlara brime göre ayrı ayrı döküm alabilirmiyiz
 
sayın kulomer aynı hücre içinde adet kg metre litre brimli ürünler var bunları yan sütunlara brime göre ayrı ayrı döküm alabilirmiyiz

Merhaba

Talebiniz ve çalıştığınız durum farklı formatta olabilir.

Örnek dosya eklerseniz talebinizi daha rahat inceleme fırsatı olur.

Selamlar...
 
sizin örneğinizde sarı alanlardaki gibi brime göre ilgili sütunda toplam alabilirmiyiz ?
daha sonra değişik brimler eklenebileceği gözönüne alınırsa sütun sayısını 15 brime kadar uygulanabilir mi ?

teşekkür eder.
iyi çalışmalar dilerim.....
 

Ekli dosyalar

Merhaba

Talebinizi anladım. Çözüm için sakin kafa ve biraz boş vakit gerekiyor.
Çözüm için kodları toparlayabilirsem eklemeye çalışırım.

Bazen biraz uğraşıpta sonuç çıkmazsa insan sıkılıyor ve başka konularla uğraşmaya başlıyor.

Selamlar..
 
sorun değil sayın kulomer uygun bir zamanda ilgilenirseniz sevinirim

iyi çalışmalar
 
Merhaba

Alternatif olarak Ek 'teki dosyayı ekliyorum.

Dosyada Hücre içerisindeki Dağınık Sayıların Birimli Toplanması, Kullanıcı Tanımlı Fonksiyon yazılarak Formül ile sağlanmıştır.

Formül kullanılınca kullanıcının analiz edilecek hücreyi kendisinin belirlemesi ve
analiz sonucunuda kendi belirleyeceği dilediği hücreye yazdırabilmesi mümkündür.

Eğer tercih edilirse Formül ile kullanıcıya kullanım esnekliği sağlanmaktadır.

Selamlar...

İlgili Resim
Ekli dosyayı görüntüle 222144

Üstat elinize emeğinize sağlık muhteşem olmuş gerçekten diğer yardım eden üstatlara da çok teşekkür ederim.
Ben bu formülü ana dosyama kopyaladım ama #AD? hatası verdi mecburen örnek dosyaya kopyaladım birimleri orda formülüze edip 12 aylık 12 tane dosyaya ayrı ayrı kopyaladım Bu hatayı neden almış olabilirim acaba
 
Dosya içindeki kodları kendi dosyanıza aktarıp kullanabilirsiniz. Tabi bu durumda dosyanızı "Makro içerebilen excel dosyası" biçiminde kaydetmeniz gerekecektir. Ya da kodları eklenti haline getirip ve aktifleştirip tüm excel dosyalarınızda kullanabilirsiniz.
 
Merhaba,

Alternatif olsun.

İmleç 1. satırdayken aşağıdaki işlemleri uygulayın.

Ad Tanımlama girin ve HESAPLA adını vererek ( bu adı değiştirebilirsiniz.) aşağıdaki formülü tanımlayın ve tamam ile işlemi bitirin.
Kod:
=DEĞERBİÇ(YERİNEKOY(YERİNEKOY(YERİNEKOY($A1;"KİLOGRAM";" ");"ADET";" ");" ,";"+"))



B1 hücresine aşağıdaki formülü yazarak alt satırlara kopyalayın.
Kod:
=HESAPLA&" "&SAĞDAN(A1;UZUNLUK(A1)-BUL("*";YERİNEKOY(A1;" ";"*";UZUNLUK(A1)-UZUNLUK(YERİNEKOY(A1;" ";"")))))

Not: Dosyanızı "Makro içerebilen excel dosyası" biçiminde kaydetmeniz gerekir.
 
Geri
Üst