• DİKKAT

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

Rakam ve Yazinin Karisik Oldugu Hucrelerdeki Sayilari Toplamak

Aşağıdaki KTF yi kullanabilir siniz.

Kullanımı.
=sumnums(A2:A6)

Kod:
Function SumNums(rngS As Range, Optional strDelim As String = " ") As Double
'http://www.mrexcel.com/forum/excel-questions/505622-text-numbers-same-cell-sum-numbers-4.html
    Dim vNums As Variant, lngNum As Long, c As Range
    For Each c In rngS
    vNums = Split(c, strDelim)
        For lngNum = LBound(vNums) To UBound(vNums) Step 1
            SumNums = SumNums + Val(vNums(lngNum))
        Next lngNum
    Next c
End Function
[LEFT]
[/LEFT]
 
asri cok tesekkur ederim yanit icin, ugrastirdim seni. Acaba bunun formul ile yolu var midir ?
 
Merhaba.

Aşağıdaki dizi formülü istediğiniz sonucu verecektir.
(sayısal karakterlerin en sağda olduğu varsayıldı)
.
Kod:
=[COLOR="red"]TOPLA[/COLOR]([COLOR="red"]EĞER[/COLOR]([COLOR="red"]KIRP[/COLOR](A2:A6)="";0;0+[COLOR="red"]EĞER[/COLOR]([COLOR="red"]ESAYIYSA[/COLOR](A2:A6);A2:A6;[COLOR="red"]EĞERHATA[/COLOR]([COLOR="red"]YERİNEKOY[/COLOR]([COLOR="red"]PARÇAAL[/COLOR]([COLOR="red"]KIRP[/COLOR](A2:A6);[COLOR="red"]BUL[/COLOR]("|";[COLOR="red"]YERİNEKOY[/COLOR]([COLOR="red"]KIRP[/COLOR](A2:A6);" ";"|";[COLOR="red"]UZUNLUK[/COLOR]([COLOR="red"]KIRP[/COLOR](A2:A6))-[COLOR="red"]UZUNLUK[/COLOR]([COLOR="red"]YERİNEKOY[/COLOR]([COLOR="red"]KIRP[/COLOR](A2:A6);" ";"")));1);15);".";",");0+[COLOR="red"]YERİNEKOY[/COLOR]([COLOR="Red"]KIRP[/COLOR](A2:A6);".";",")))))
[COLOR="Blue"]Dizi formülü hücreye [B][COLOR="Red"]CTRL+SHIFT+ENTER[/COLOR][/B] ile girilmelidir.[/COLOR]
 
Merhaba Omer Baran tekrardan, Paylasmis oldugun formul icin tesekkur ederim. Formulu denedim dosyada Fakat Deger hatasi aliyorum. Dizi olarak giriyorum/
 
Bilgi: Formülde herhangi bir hata almadım. Resimde görebilirsiniz.
 

Ekli dosyalar

  • diziformulu.jpg
    diziformulu.jpg
    89 KB · Görüntüleme: 5
Merhaba Murat Osma, ben de simdi Omer Baran'in yazmis oldugu formulu inceliyordum. Hata degil de, benim excel turkce fakat ingilizce gibi isliyor. Ornegin formulde ";" isaretinin kullanildigi yerleri ben ingilizcede kullanilan "," isaretini kullaniyorum.
Yine ornegin "." noktalik isareti olarak kullanirken, turkce versiyonda "," isareti kullaniliyor. Yerinekoy fonksiyonunda "." yerine "." koy dedim ve sorun kalmadi. onu kaldiradabilirim aslinda.

sorun kalmadi. yazmis oldugunuz dizi formulu calisiyor. tesekkur ederim tekrardan Omer Baran.
 
Tekrar merhaba.

Önceki cevabımdaki formülü;
-- seçilen aralıkta boş hücre olması,
-- hücrede sadece boşluk karakteri olması
seçeneklerini de karşılamak üzere güncelledim.

Sayfayı yenileyerek önceki cevabımı kontrol ediniz.
.
 
Omer Baran, unuttugum kucuk ayrintiyi da halletmissiniz. Evet aynen denedim paylastiginiz gibi, en iyi sekilde isimi gordu. Cok tesekkur ederim.
 
Merhaba,

Alternatif olarak kullanabilirsiniz.Dizi formülüdür.
Sayı metinlerin arasında boşluk olması yeterli. Hangi sırada olursa olsun toplama işlemi yapar.
Ondalık ayıraç sizin bilgisayarınızda "." olduğu için formüle ekleme yapmadım. Sizin eklediğiniz veri üzerinde kontrol etmek isteyenler 3. sıradaki değerin ondalık ayıracını virgül yapmalıdır. Yada formüle ek bir yerinekoy ile noktalar virgüle çevrilmeli.

Kod:
=TOPLA.ÇARPIM((EĞERHATA(--KIRP(PARÇAAL(YERİNEKOY(" "&DEVRİK_DÖNÜŞÜM($A$2:A6);" ";YİNELE(" ";255));SATIR($D$1:D99)*255;255));0)))
 
kuvari, alternatif cozumun icin tesekkur ederim. Sorumun cozumunu Omer Baran paylastiktan sonra unuttugum bir ayrintiyi eklemeyi unutmusum. Eger Yazida "OVER PAID" var ise sayet, o hucredeki sayi -1 ile carpilarak toplanmasi gerekiyor.

Bunu Omer Baran'in paylastigi formulde EGERHATA kisminin basina -1* koyarak cozdum, iyi bir sekilde calisiyor aslinda. o yuzden sorma geregi duymadim fakat paylastigin dizi formulunde bu ayrinti nasil halledilebilir?
 
Geri
Üst