Hücre İçindeki Metinden Kişi Sayısı Bulmak

kneehot

Altın Üye
Katılım
4 Ekim 2007
Mesajlar
625
Excel Vers. ve Dili
OFFİCE 365
Altın Üyelik Bitiş Tarihi
06-10-2025
Arkadaşlar merhaba, yapmak istediğim hücre içinde virgül ile ayrılmış şekilde hangi personeller olduğu yazıyor fakat çoğu satırda aynı görevde birden fazla kişi olduğu zaman örnek olarak "Güvenlik, Muhasebe, Depocu X 2, Bahçıvan," Depocu X 2 olarak görünüyor ve toplam kişi sayısının 5 bulunması lazım. bazı satırlarda "Temizlik Görevlisi X 2, Elektrikçi, Bahçıvan X 3," şeklinde 2 adet X var. Maalesef beceremedim yardım ederseniz çok mutlu olurum. Belki daha anlaşılır olur diye örnek bir dosya da ekledim. Tüm yardımlara şimdiden teşekkürler.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Paylaştığınız dosyaya göre aşağıdaki metinde ulaşmak istediğiniz sonuç nedir?

5 Elma, 9 Armut, 7 Muz, 4 Erik, 2 Kara Üzüm

 

kneehot

Altın Üye
Katılım
4 Ekim 2007
Mesajlar
625
Excel Vers. ve Dili
OFFİCE 365
Altın Üyelik Bitiş Tarihi
06-10-2025
Paylaştığınız dosyaya göre aşağıdaki metinde ulaşmak istediğiniz sonuç nedir?

5 Elma, 9 Armut, 7 Muz, 4 Erik, 2 Kara Üzüm

Çok özür dilerim yanlış dosya eklemişim, düzelttim şimdi tekrar bakabilirseniz çok sevinirim
 

Mustafa MUTLU

Destek Ekibi
Destek Ekibi
Katılım
24 Temmuz 2008
Mesajlar
1,586
Excel Vers. ve Dili
Ofis 2013 TR 32 Bit
Sub MUTLU()
Range("C2:C65536").ClearContents
For MM = 3 To Range("b65536").End(xlUp).Row
Say1 = 0
Say2 = 0
YY = Len(Cells(MM, "b"))
If YY > 2 Then
For XX = 1 To YY + 1
If Mid(Cells(MM, "b"), XX, 1) = "X" Then
Say1 = Say1 + Mid(Cells(MM, "b"), XX + 2, 1) - 1
End If
If Mid(Cells(MM, "b"), XX, 1) = "," Then
Say2 = Say2 + 1
End If
Next
Cells(MM, "c") = Say1 + Say2
End If
Next
End Sub
 
Son düzenleme:

Korhan Ayhan

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

"X 5" değerine kadar hesaplar.

Eğer formülü kısaltabilirsem paylaşırım.

C++:
=TOPLA(EĞER(ESAYIYSA(MBUL(" X ";KIRP(METİNBÖL(SOLDAN(B3;UZUNLUK(B3)-1);;","))));0;1))+(UZUNLUK(B3)-UZUNLUK(YERİNEKOY(B3;" X 2";"")))/4*2+(UZUNLUK(B3)-UZUNLUK(YERİNEKOY(B3;" X 3";"")))/4*3+(UZUNLUK(B3)-UZUNLUK(YERİNEKOY(B3;" X 4";"")))/4*4+(UZUNLUK(B3)-UZUNLUK(YERİNEKOY(B3;" X 5";"")))/4*5
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Belki böyle bir fonksiyon olabilir, deneyin.
Kod:
Function Say(Hucre As Variant)

Dim i As Integer
Dim say2 As Integer
ayrac = ","
For i = 1 To Len(Hucre)
    If IsNumeric(Mid(Hucre, i, 1)) Then
        Say = Say + Val(Mid(Hucre, i, 1) - 1)
    End If
Next i
say2 = UBound(Split(Hucre, ayrac)) + 1
Say = Say + say2
End Function
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ekteki dosyada da alternatif olarak KTF çözümü bulunmaktadır. Forumun arşivinde bulunması açısından paylaşıyorum.
 

Ekli dosyalar

kneehot

Altın Üye
Katılım
4 Ekim 2007
Mesajlar
625
Excel Vers. ve Dili
OFFİCE 365
Altın Üyelik Bitiş Tarihi
06-10-2025
Çok teşekkürler tüm yardımlar için :)
 
Üst