metin içindeki rakamların toplamını almak istiyorum.

jinken

Altın Üye
Katılım
26 Eylül 2010
Mesajlar
123
Excel Vers. ve Dili
2003
Altın Üyelik Bitiş Tarihi
25-09-2029
Merhabalar,

Aşağıdaki şekilde bir listem var, açıklama kısmında geçen rakamların toplamını nasıl alabilirim.


473​

73 ad hazır üretilmeli ilk boşlukta, 200 adet 16/24, 200 adet 24/08 üretime alınmalı

800​

400 adet 16/24, 400 adet 24/08

600​

200 adet bugün, 200 adet yarın sabah, 200 adet Cumartesi 16/24 üretime alınmalı

600​

200 adet 16/24, 200 adet 24/08, 200 adet yarın sabah üretime alınmalı

300​

bugün üretime alınmalı

200​

200 adet 16/24 yada 24/08 üretime alınmalı

 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,354
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Yeni bir modüle oluşturun aşağıdaki kodu kopyalayın.
Kod:
Function ToplamRakamlar(Metin As String) As Long
    Dim Ba As Long
    Dim Toplam As Long
    Dim Bolumler() As String
    Bolumler = Split(Metin, " ")
    
    For Ba = LBound(Bolumler) To UBound(Bolumler)
        If InStr(Bolumler(Ba), "/") = 0 Then
            If IsNumeric(Bolumler(Ba)) Then
                Toplam = Toplam + CLng(Bolumler(Ba))
            End If
        End If
    Next
    ToplamRakamlar = Toplam
End Function
Excel'e yeni bir formül eklemiş olduk
Sayfada normal formül olarak kullanabilirsiniz.
Örnek: Veriler B sütunundaysa =ToplamRakamlar(B1) formülünü C1'e kopyalayın.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,720
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ofis 365 sürümü için alternatif olsun...

C++:
=SUM(IFERROR(--TEXTSPLIT(SUBSTITUTE(B1;"/";"|");" ";;1);0))
256032
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,305
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Merhaba.
Yeni bir modüle oluşturun aşağıdaki kodu kopyalayın.
Kod:
Function ToplamRakamlar(Metin As String) As Long
    Dim Ba As Long
    Dim Toplam As Long
    Dim Bolumler() As String
    Bolumler = Split(Metin, " ")
   
    For Ba = LBound(Bolumler) To UBound(Bolumler)
        If InStr(Bolumler(Ba), "/") = 0 Then
            If IsNumeric(Bolumler(Ba)) Then
                Toplam = Toplam + CLng(Bolumler(Ba))
            End If
        End If
    Next
    ToplamRakamlar = Toplam
End Function
Excel'e yeni bir formül eklemiş olduk
Sayfada normal formül olarak kullanabilirsiniz.
Örnek: Veriler B sütunundaysa =ToplamRakamlar(B1) formülünü C1'e kopyalayın.
Hocam, emeğinize sağlık.
Peki bu fonksiyonu hücredeki tüm rakamları toplamak için nasıl revize edebiliriz? Yani arada boşluk olmayabilir, işaret yok. Sadece rakamları görecek.
Mesela 50aaa50aaa50aaa50 olabilir. 50aaa 50+50aaa /50 olabilir. Her hâlükârda sadece rakamları görecek.
Fonksiyon olarak çok kullanışlı olacaktır. Çok güzel bir çalışma olmuş.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,354
Excel Vers. ve Dili
2019 Türkçe
Bütün rakamları toplar.
Kod:
Function ToplaTumRakamlar(Metin As String) As Double
    Dim Bak As Integer
    Dim Toplam As Double
    Dim Geçici As String

    For Bak = 1 To Len(Metin)
        If IsNumeric(Mid(Metin, Bak, 1)) Then
            Geçici = Geçici & Mid(Metin, Bak, 1)
        Else
            If Geçici <> "" Then
                Toplam = Toplam + Val(Geçici)
                Geçici = ""
            End If
        End If
    Next

    If Geçici <> "" Then
        Toplam = Toplam + Val(Geçici)
    End If

    ToplaTumRakamlar = Toplam
End Function
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,720
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ofis 365 için alternatif..

C++:
=SUM(--TEXTSPLIT(REGEXREPLACE(A1;"[^\d,]+";";");";";;1))
1739445786627.png
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,305
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Ofis 365 için alternatif..

C++:
=SUM(--TEXTSPLIT(REGEXREPLACE(A1;"[^\d,]+";";");";";;1))
Ekli dosyayı görüntüle 256043
Hocam emeğinize sağlık ama siz her zaman lisan alternatifi yazardınız. Mesela bende hata veriyor.
=TOPLA(--METİNBÖL(REGEXREPLACE(B1;"[^\d,]+";";");";";;1))
Şeklinde yazdım
REGEXREPLACE bulamadım. İnternette de araştırdım bulamadım.

Mesela
=SUM(IFERROR(--TEXTSPLIT(SUBSTITUTE(B1;"/";"|");" ";;1);0))
=TOPLA(EĞERHATA(--METİNBÖL(YERİNEKOY(B1;"/";"|");" ";;1);0))
Şeklinde yazmıştım.
Teşekkür ederim.
Saygılarımla.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,305
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Bütün rakamları toplar.
Kod:
Function ToplaTumRakamlar(Metin As String) As Double
    Dim Bak As Integer
    Dim Toplam As Double
    Dim Geçici As String

    For Bak = 1 To Len(Metin)
        If IsNumeric(Mid(Metin, Bak, 1)) Then
            Geçici = Geçici & Mid(Metin, Bak, 1)
        Else
            If Geçici <> "" Then
                Toplam = Toplam + Val(Geçici)
                Geçici = ""
            End If
        End If
    Next

    If Geçici <> "" Then
        Toplam = Toplam + Val(Geçici)
    End If

    ToplaTumRakamlar = Toplam
End Function
Hocam emeğinize sağlık. Çok güzel ve faydalı bir çalışma olmuş.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,720
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Oltayı verdim... Balığı siz tutun dedim ama siz balığıda benden istiyorsunuz.

REGEXREPLACE fonksiyonu ofis 365 sürümünde insider kanal üyeleri için aktif olabilir.. Bu kanala üye değilseniz sizde çalışmayabilir.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,305
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Oltayı verdim... Balığı siz tutun dedim ama siz balığıda benden istiyorsunuz.

REGEXREPLACE fonksiyonu ofis 365 sürümünde insider kanal üyeleri için aktif olabilir.. Bu kanala üye değilseniz sizde çalışmayabilir.
Hocam, her zaman sizin yol göstermelerinizle gitmeye çalışıyorum. Araştırıyorum. Öğreniyorum. Sağ olun Var olun. Doğru bir öğreti, "Balık verme, balık tutmayı öğret"
Yok hocam, o kanala üyeliğim yok. Sanırım o yüzden olmadı. O yönde araştırma yapmamıştım. Yerine Türkçe fonksiyon diye araştırma yaptım.
Yine de teşekkür ederim.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,305
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Katılım
2 Temmuz 2014
Mesajlar
201
Excel Vers. ve Dili
2021 Türkçe, 64bit
Hocam, emeğinize sağlık.
Peki bu fonksiyonu hücredeki tüm rakamları toplamak için nasıl revize edebiliriz? Yani arada boşluk olmayabilir, işaret yok. Sadece rakamları görecek.
Mesela 50aaa50aaa50aaa50 olabilir. 50aaa 50+50aaa /50 olabilir. Her hâlükârda sadece rakamları görecek.
Fonksiyon olarak çok kullanışlı olacaktır. Çok güzel bir çalışma olmuş.
ondalık sayılar olabilir mi?
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,305
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
ondalık sayılar olabilir mi?
Hayır toplamaz. Muzaffer Ali hocamın yazdığı kod, hücre içindeki RAKAM'lardan oluşmuş SAYI'ları görür ve toplar yani birleşik de olsa, ayrı da olsa /*-+(=+%&/ gibi sembolleri ve harfleri dikkate almaz. Rakam nedir biliyorsunuz 0-9
Kolay gelsin.
Saygılarımla.
 
Katılım
2 Temmuz 2014
Mesajlar
201
Excel Vers. ve Dili
2021 Türkçe, 64bit
Hayır toplamaz. Muzaffer Ali hocamın yazdığı kod, hücre içindeki RAKAM'lardan oluşmuş SAYI'ları görür ve toplar yani birleşik de olsa, ayrı da olsa /*-+(=+%&/ gibi sembolleri ve harfleri dikkate almaz. Rakam nedir biliyorsunuz 0-9
Kolay gelsin.
Saygılarımla.
açıklama için teşekkürler,
bazen insanlar sayı yerine rakam yada tersini kullandıkları için emin olamadım o nedenle sormuştum.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,638
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Alternatif dizi formülü,

Kod:
=TOPLA(EĞERHATA(--(YERİNEKOY(KIRP(PARÇAAL(YERİNEKOY(" "&B1;" ";YİNELE(" ";255));SATIR($1:$99)*255;255));"/";"|"));0))
 
Üst