• DİKKAT

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

hücre içinde vürgüllü ayrımı hk.

Katılım
21 Eylül 2006
Mesajlar
74
Excel Vers. ve Dili
Excell 2003 TÜRKÇE
slm bundan önceki toplamada formülde oluşan hata diye başlıklı yazıyla yazmıştım.ama orada eksik izahımdan dolayı bir kez daha yenilemek zorunda kaldım çünkü eksik anlatğımdan dolayı sizi de, fazla zahmet vereceğimi düşünerek tam ne istediğimi ancak farkedebildim. özür dileyerek sorunuma hemen taplo üzerinden izah etmeye çalışayım.taplodaki tek hücre içinde,olan kırmızı yerdeki vürgüllü mesela,1-lerin tolanmasında A- ila B- hücrelerinde 13 tane 1- numara olması gerekirken; A- ila B - hücrelerinde,11-, 12-, ....... gibi başka sayılarda olduğu zaman (11) (12) gördüğü yerde hemen öndeki (11),in,12 nin, önündeki (1)lerini tek sayı gibi görüp 1 sayısının toplamının fazla çıkmasına sebeb oluyor,taploda mesela 1-lerin, 13- tane olması gerekirken, 8 tane 11 sayısı,oluncada, 13+8=21 tane görüyor, 2--lerin (A- ila B-) hücrelerin onlarında, genel toplamı 13 tane olması gerekirken, 12-nin,içindeki ikinci sayısı olan 2 yide tek gibi görerek sonucu 20 tane diye gösteriyor,nasıl yapıyor anlamıyorum, virgül ,virgül ayrımlı olduğu halde nasıl tek sayılar gibi onuda iki haneli olduğu halde tek görerek sonuç verebiliyor.yardımlarınızı bekliyorum biraz uzun oldu hakkınızı helal ediniz ama tam anlaşılması için detaylı izahını yapmaya çalıştım. hepinizden ALLAH razı olsun diyerek yardımlarınızı bekliyorum ....:)
 

Ekli dosyalar

Once istenilen araligi birlestirmeye yarayan bir fonksiyon tanimlayalim. Adina da Birlestir diyelim. Su sekilde yapabiliriz.

Kod:
Function Birlestir(secim As Range)
metin = ""
baglac = ","
For Each i In secim
metin = metin & baglac & i
Next i
Birlestir = metin & baglac
End Function

Bu fonksiyonun calisma mantigi su; =Birlestir(A1:A10) dediginizde baglac ile baslayip baglac ile bitecek sekilde verilen aralikta bulunan hucrelerdeki tum degerleri birlestirir. Sizin durumunuzda hucre icerisinde virgul kullanildigi icin baglaci da virgul olacak sekilde ayarladim. Birlestirme islemi yapildiktan sonra karakterlerin verilen aralikta kac kere oldugunu saymak su asagidaki fonksiyon ile halledilebilir.

@Korhan Bey'in belirttigi hatayi su sekilde duzelttim.

=((LEN(SUBSTITUTE(Birlestir($A$2:$B$13);",";",,")))-(LEN(SUBSTITUTE(SUBSTITUTE(Birlestir($A$2:$B$13);",";",,");",1,";"--"))))/LEN("1")

Bu mega fonksiyon su mantigi izliyor. Hucrelerdeki karakterleri virgul ile birlestirmistik zaten, 1 bulunan degerler artik ,1, olarak bulunacak birlestirilmis hucre icinde dolayisiyla ,11, ya da ,12, gibi degerler degistirme isleminden etkilenmeyecek. Birlestirme isleminden sonra ,1, seklinde bulunan durumlari -- ile degistirecegiz boylece karakter sayisi bir azalacak. Ilk durumdaki toplam karakter sayisindan ikinci durumdaki karakter sayisini cikardigimizda da aranilan sayinin verilen metin icerisinde kac kere gectigini bulmus olacagiz. Farkli sayilar icin SUBSTITUTE fonksiyonundaki ",1," ifadesini ve en sondaki LEN ifadesini aradiginiz sayi ile degistirmeniz yeterli olacaktir. Ornegin 13 icin ",13," ve LEN("13")
 
Son düzenleme:
Merhaba,

Ben sorunuza yanıt verirken aşağıdaki linkteki örneklerden faydalanmıştım.

Eğersay

Fakat daha sonra sizin açtığınız tüm başlıkları inceledim. Genel olarak bir sorun var. Önerdiğim formüller tekrar eden aynı sayılarda tam sonuç üretmiyor. Bu sebeple ben size yine kullanıcı tanımlı fonksiyonu kullanmanızı önereceğim.

Aşağıdaki linklerde daha önce bu çözümü paylaşmıştım.

Sayıları toplamak
İki sayıdan birini almak


Eğer ısrarla formüllerle çözüm istiyorsanız diğer arkadaşlarımız belki çözüm yolu bulabilirler.
 
Ekte hem kullanici tanimli bir fonksiyon yardimiyla, hem de sadece ontanimli fonksiyonlari kullanarak istediginiz sonucu ureten dosyayi yolluyorum.
 

Ekli dosyalar

Geri
Üst