Aynı hücredeki değerleri toplama

Katılım
8 Haziran 2007
Mesajlar
401
Excel Vers. ve Dili
excel fonksiyonlar
Forumda emeği geçen tüm arkadaşlara merhaba. Arkadaşlar aynı hücre içindeki rakamsal değerleri nasıl toplayabilirim ? Örneğin A1 hücresinde 62 yazsın. Bunun toplamı 8 eder. B1 hücresine nasıl bir formül yazmalıyım ki A1 hücresindeki rakamsal değerleri toplasın. İlgilenen arkadaşlara şimdiden teşekkürler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Bu konu forumda işlenmişti. Sanırım arama yapmadınız.

bir hücredeki sayının basamaklarının toplamı
Rakamın Digitlerini Toplama

Ayrıca alfasayısal verileri (A12L45İ gibi) içeren hücreleride aşağıdaki formülle toplatabilirsiniz. Toplama işlemi karakter bazında yapılmaktadır.

Formülü hücreye yazıp CTRL+SHIFT+ENTER tuşlarına basarak tamamlayın. (Dizi formüldür.)

Kod:
=TOPLA(EĞER(ESAYIYSA(PARÇAAL(A1;SATIR(DOLAYLI("1:"&UZUNLUK(A1)));1)*1);PARÇAAL(A1;SATIR(DOLAYLI("1:"&UZUNLUK(A1)));1)*1;0))
 
Katılım
14 Nisan 2021
Mesajlar
11
Excel Vers. ve Dili
2016, Türkçe
Korhan bey merhaba. Acaba söz konusu hücrede arada virgül var ise, her iki tarafın gene ortada virgül olarak digit sayısını hangi formül ile bulabiliriz ? Örneğin , örneğin 25364,74637 sayısını 20,27 olarak...
Değerli cevabınız için şimdiden teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Verinizin A1 hücresinde olduğu varsayılmıştır.

DİZİ formüldür.

C++:
=TOPLA(EĞER(ESAYIYSA(PARÇAAL(SOLDAN(A1;BUL(",";A1)-1);SATIR(DOLAYLI("1:"&UZUNLUK(SOLDAN(A1;BUL(",";A1)-1))));1)*1);PARÇAAL(SOLDAN(A1;BUL(",";A1)-1);SATIR(DOLAYLI("1:"&UZUNLUK(SOLDAN(A1;BUL(",";A1)-1))));1)*1;0))&","&
TOPLA(EĞER(ESAYIYSA(PARÇAAL(PARÇAAL(A1;BUL(",";A1)+1;15);SATIR(DOLAYLI("1:"&UZUNLUK(PARÇAAL(A1;BUL(",";A1)+1;15))));1)*1);PARÇAAL(PARÇAAL(A1;BUL(",";A1)+1;15);SATIR(DOLAYLI("1:"&UZUNLUK(PARÇAAL(A1;BUL(",";A1)+1;15))));1)*1;0))
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Sayın Korhan Ayhan cevabı yazmış. Eline sağlık.

Bende Alternatifler sunayım istedim.

integer kısmı ile ondalık kısmı birlikte toplar.
Dizi formülüdür. Control+Shift+Enter
C++:
=SUM(IFERROR(1*MID(A1;ROW($1:$99);1);))

integer kısmı ile ondalık kısmı ayrı ayrı toplar.
C++:
=IF(ISERROR(FIND(",";A1;1));SUMPRODUCT(1*MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1));SUMPRODUCT(1*MID(INT(A1);ROW(INDIRECT("1:"&LEN(INT(A1))));1))&","&SUMPRODUCT(1*MID(RIGHT(A1;LEN(A1)-LEN(INT(A1))-1);ROW(INDIRECT("1:"&LEN(A1)-LEN(INT(A1))-1));1)))
 
Katılım
14 Nisan 2021
Mesajlar
11
Excel Vers. ve Dili
2016, Türkçe
Çok teşekkürler. Ben açıkçası forumda gereksiz yer kaplamasın diye beğen butonuna basıyorum sadece. Benim bir racam daha var şayet Korhan bey ve siz değerli zamanınızı ayırırsanız. Aralarına virgül koyduğum A1 hücresinde sayıları ikili kümeler halinde toplayarak tek bir rakam nasıl elde edebilirim? Örneğin
12,4,23,6,22,7
(12 ve 4 topla) 16
(4 ve 23 topla) 27
(23 ve 6 topla) 29
(6 ve 22 topla) 28
(22 ve 7 topla) 29
SONRA
16 27 topla 43
27 29 topla 56
29 28 topla 57
28 29 topla 57
SONRA
43 56 topla, 99
56 57 topla, 111
57 57 topla 114
SONRA
99 111 topla 210
111 114 topla 225
SONRA
210 225 topla
Sonuç 435
YANİ örneğin yukarıda yazdığım gibi A1 sütununa 12,4,23,6,22,7 yazdığım zaman yukarıdaki işlemler sonucu 435 nasıl elde edebiliriz? Değerli cevabınız için şimdiden çok ama çok teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu işlemi makro ile yapmanız daha uygun görünüyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben sonucu 439 buldum.

Kullanıcı tanımlı fonksiyon uygulamasıdır.

Kodu boş bir modüle uygulayınız.

Sonra excel sayfanızda boş bir hücreye aşağıdaki gibi uygulayınız. Normal excel fonksiyonu gibi hesaplama yapacaktır.

=KTOPLA(A1)

C++:
Option Explicit

Function KTOPLA(Veri As Range)
    Dim Liste As Variant, Eski_Liste As Variant, X As Long, Say As Long
    
    Application.Volatile True
    
    Liste = Split(Veri.Value, ",")
    
    Do While UBound(Liste) > 0
        Eski_Liste = Liste
        ReDim Liste(0 To 0)
        Say = 0
        
        For X = LBound(Eski_Liste) To UBound(Eski_Liste) - 1
            ReDim Preserve Liste(0 To Say)
            Liste(X) = Val(Eski_Liste(X)) + Val(Eski_Liste(X + 1))
            Say = Say + 1
        Next
    Loop

    KTOPLA = Liste
End Function
 
Katılım
14 Nisan 2021
Mesajlar
11
Excel Vers. ve Dili
2016, Türkçe
Ben sonucu 439 buldum.

Kullanıcı tanımlı fonksiyon uygulamasıdır.

Kodu boş bir modüle uygulayınız.

Sonra excel sayfanızda boş bir hücreye aşağıdaki gibi uygulayınız. Normal excel fonksiyonu gibi hesaplama yapacaktır.

=KTOPLA(A1)

C++:
Option Explicit

Function KTOPLA(Veri As Range)
    Dim Liste As Variant, Eski_Liste As Variant, X As Long, Say As Long
   
    Application.Volatile True
   
    Liste = Split(Veri.Value, ",")
   
    Do While UBound(Liste) > 0
        Eski_Liste = Liste
        ReDim Liste(0 To 0)
        Say = 0
       
        For X = LBound(Eski_Liste) To UBound(Eski_Liste) - 1
            ReDim Preserve Liste(0 To Say)
            Liste(X) = Val(Eski_Liste(X)) + Val(Eski_Liste(X + 1))
            Say = Say + 1
        Next
    Loop

    KTOPLA = Liste
End Function
Ne diyeceğimi bilemedim. Çok teşekkürler.
 
Katılım
14 Nisan 2021
Mesajlar
11
Excel Vers. ve Dili
2016, Türkçe
Korhan bey,ben çok özür dilerim. Kendim bir şeyler yapmaya çalışıyorum, inceliyorum ama her zamanki gibi işin içinden çıkamadım. Ben, a1 hücresinde yazdığım virgüllü bir sayıyı, + ve - sonucuna bakılmaksızın b sütununda 8 hücrede aşağıdaki gibi 25, 50 ve 100 'lü kombinasyon farklarını almaya çalışıyorum. Yani, örneğin,

a1: 24,34


b1: 1,16 yani, (25 fark,50 fark)
b2: 26,9 yani, (50 fark,25 fark)
b3: 26,16 yani, (50 fark,50 fark)
b4: 76,66 yani (100 fark,100 fark)
b5: 76,9 yani (100 fark,25 fark)
b6: 1,66 yani, (25 fark,100 fark)
b7: 76,16 yani, (100 fark 50 fark)
b8: 26,66 yani, (50 fark,100 fark)

Mahçup olarak, değerli cevabınız için şimdiden teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
B1 için örnek veriyorum siz diğerlerini kendiniz yaparsınız.

Rich (BB code):
=25-SOLDAN(A$1;BUL(",";A$1)-1)&","&50-PARÇAAL(A$1;BUL(",";A$1)+1;2)
 
Katılım
14 Nisan 2021
Mesajlar
11
Excel Vers. ve Dili
2016, Türkçe
Verinizin A1 hücresinde olduğu varsayılmıştır.

DİZİ formüldür.

C++:
=TOPLA(EĞER(ESAYIYSA(PARÇAAL(SOLDAN(A1;BUL(",";A1)-1);SATIR(DOLAYLI("1:"&UZUNLUK(SOLDAN(A1;BUL(",";A1)-1))));1)*1);PARÇAAL(SOLDAN(A1;BUL(",";A1)-1);SATIR(DOLAYLI("1:"&UZUNLUK(SOLDAN(A1;BUL(",";A1)-1))));1)*1;0))&","&
TOPLA(EĞER(ESAYIYSA(PARÇAAL(PARÇAAL(A1;BUL(",";A1)+1;15);SATIR(DOLAYLI("1:"&UZUNLUK(PARÇAAL(A1;BUL(",";A1)+1;15))));1)*1);PARÇAAL(PARÇAAL(A1;BUL(",";A1)+1;15);SATIR(DOLAYLI("1:"&UZUNLUK(PARÇAAL(A1;BUL(",";A1)+1;15))));1)*1;0))
Korhan bey merhabalar. Çok teşekkürler,oluşturduğunuz formül virgülün sağ ve sağ kısmında en fazla 8 digit topluyor. Sizce daha fazla digit toplayabilmem mümkün mü?
Değerli cevabınız için teşekkür ederim.
 
Katılım
14 Nisan 2021
Mesajlar
11
Excel Vers. ve Dili
2016, Türkçe
Merhaba,

Sayın Korhan Ayhan cevabı yazmış. Eline sağlık.

Bende Alternatifler sunayım istedim.

integer kısmı ile ondalık kısmı birlikte toplar.
Dizi formülüdür. Control+Shift+Enter
C++:
=SUM(IFERROR(1*MID(A1;ROW($1:$99);1);))

integer kısmı ile ondalık kısmı ayrı ayrı toplar.
C++:
=IF(ISERROR(FIND(",";A1;1));SUMPRODUCT(1*MID(A1;ROW(INDIRECT("1:"&LEN(A1)));1));SUMPRODUCT(1*MID(INT(A1);ROW(INDIRECT("1:"&LEN(INT(A1))));1))&","&SUMPRODUCT(1*MID(RIGHT(A1;LEN(A1)-LEN(INT(A1))-1);ROW(INDIRECT("1:"&LEN(A1)-LEN(INT(A1))-1));1)))
Merhabalar
Emeğiniz için çok teşekkürler. Ama ne yazık ki çalışmadı.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,164
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
A1 hücresini METİN biçiminde düzenleyin. Sonra dilediğiniz kadar basamak yazın.

Önerdiğim formülün ikinci bölümünde ki 15 değerini yazdığınız basamak sayısı kadar düzeltip deneyiniz.
 
Üst