Metin Ve Sayıların Olduğu Hücre

1 2
09/11/2023, 08:15

yyhy

Metin ve sayıların olduğu hücreden toplamları almak için formülle yapılabilir mi acaba?
09/11/2023, 22:37

feraz

Kod ile isterseniz split ,replace vb... kodlarla basitçe yapılır.
Ayrıca kod ile KTF olarakta yapılıp formül gibi kullanabilirsiniz.
10/11/2023, 09:23

yyhy

Sayın @feraz bey KTF olarak kullanmayı düşünüyorum.
=TOPLA.ÇARPIM(--KIRP(PARÇAAL(YERİNEKOY(G2;",";YİNELE(" ";UZUNLUK(G2)));1+((SATIR(DOLAYLI("$1:"&(1+UZUNLUK(G2)-UZUNLUK(YERİNEKOY(G2;",";"")))))-1)*UZUNLUK(G2));UZUNLUK(G2))))
ve
=EĞERHATA(TOPLA(EĞER(EĞERHATA(MBUL("#";"#"&YERİNEKOY(G2;", ";"#")&"#";SATIR(KAYDIR(A$1;;;UZUNLUK("#"&YERİNEKOY(G2;", ";"#")&"#")-1;1)));"")<>EĞERHATA(MBUL("#";"#"&YERİNEKOY(G2;", ";"#")&"#";SATIR(KAYDIR(A$2;;;UZUNLUK("#"&YERİNEKOY(G2;", ";"#")&"#")-1;1)));"");EĞERHATA(PARÇAAL("#"&YERİNEKOY(G2;", ";"#")&"#";EĞERHATA(MBUL("#";"#"&YERİNEKOY(G2;", ";"#")&"#";SATIR(KAYDIR(A$1;;;UZUNLUK("#"&YERİNEKOY(G2;", ";"#")&"#")-1;1)));"")+1;EĞERHATA(MBUL("#";"#"&YERİNEKOY(G2;", ";"#")&"#";SATIR(KAYDIR(A$2;;;UZUNLUK("#"&YERİNEKOY(G2;", ";"#")&"#")-1;1)));"")-EĞERHATA(MBUL("#";"#"&YERİNEKOY(G2;", ";"#")&"#";SATIR(KAYDIR(A$1;;;UZUNLUK("#"&YERİNEKOY(G2;", ";"#")&"#")-1;1)));"")-1)*1;"");""));"")

Arkadaşların yardımları ile çözüldü. Ama hem forumda hem de bizlerde örnek olması hasabiyle çeşitli alternatifler olsa iyi olur. Emeği geçenlere çok teşekkür ederim.
10/11/2023, 12:36

feraz

Ktf olarak akşama doğru yapıp eklerim.
10/11/2023, 18:45

feraz

(10/11/2023, 12:36)feraz yazdı: Ktf olarak akşama doğru yapıp eklerim.

=ToplaKTF(G2;",")
Alttaki kodu boş bir modüle ekleyip yukardaki gibi hücreye ekleyin.

PHP Kod:
Function ToplaKTF(hucre As Rangeayrac As String) As Double
    Dim topla 
As DoublekesAs Long
    Application
.Volatile
    ToplaKTF 
0
    kes 
Replace(hucre" """)
    
kes Split(kesayrac)
    
    For 
0 To UBound(kes)
      If 
IsNumeric(kes(i)) = True Then topla topla CDbl(kes(i))
    
Next
    
    ToplaKTF 
topla
End 
Function 
10/11/2023, 22:13

feraz

=ToplaKTF(G2)

Yada alttaki gibi olabilir ama çok fazla satır olacaksa mesela 1 den 5bine kadar satır.O zaman yavaş çalışıyor.Kullanımıda yukardaki gibi.
PHP Kod:
Function ToplaKTF(hucre As Range) As Double
    Dim topla 
As DoublearrAs Long
    Application
.Volatile
    ToplaKTF 
0
    
    With CreateObject
("vbscript.regexp")
        .
Pattern "[^0-9]"
        
.Global = True
        
.IgnoreCase True
        arr 
Split(Trim(.Replace(hucre.Value" ")), " ")
    
End With
        
    
For 0 To UBound(arr)
      If 
IsNumeric(arr(i)) = True Then topla topla CDbl(arr(i))
    
Next
    
    ToplaKTF 
topla
End 
Function 
1 2