• DİKKAT

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

Parantez içindeki verileri sayma!?

  • Konbuyu başlatan Konbuyu başlatan RIKU
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Haziran 2006
Mesajlar
112
Merhaba Arkadaşlar,

Gerek kendi kısıtlı bilgim, gerekse de bu sitedeki bilgi sahibi arkadaşların verdiği bilgileri deneme yanılmayla bir çalışma yapmaktayım; ancak bir noktada tıkandım.

O nokta da şöyle:

Longford Town:*Chris Bennion; Jamie Mulhall (William Tyrell 75)

Yukarıdaki yazılanlar tek bir hücrede yer almakta ve bunun gibi alt alta sıralanmış çok hücre var. Örneğin; B:B 'de bunun gibi hücreler var. B:B 'de parantez içinde yer alan isimleri nasıl sayabiliriz. Örneğin bir tane William Tyrell olduğunu düşünün. Formülde sonuç 1 çıkacak.

Yardımlar için şimdiden teşekkürler.
 
Merhaba

Parantezleri saymak yeterli olmaz mı?
Kod:
=TOPLA.ÇARPIM(--ESAYIYSA(MBUL("(";B1:B10;1)))

Parantezler içerisinde farklı metinler yazıyorsa her bir metin kaç adet diye mi sayılacak?
 
Merhaba

Parantezleri saymak yeterli olmaz mı?
Kod:
=TOPLA.ÇARPIM(--ESAYIYSA(MBUL("(";B1:B10;1)))

Parantezler içerisinde farklı metinler yazıyorsa her bir metin kaç adet diye mi sayılacak?

Öncelikle cevabınız için teşekkürler.

Aynen Hocam, parantez içlerinde farklı metinler var ve B:B'ye her hücrede parantez olabilir ve bunları her birini ayrı ayrı saymak gerek.
 
Merhaba

5 adet örnek satır yazıp bunlar içerisinde nelerin sayılacağını ve bulunacak sonucun ne olacağını gösterebilir misiniz?
(William Tyrell 75) şeklinde olan verilerin sayısal uzantıları dikkate alınacak mı?
 
Merhaba

5 adet örnek satır yazıp bunlar içerisinde nelerin sayılacağını ve bulunacak sonucun ne olacağını gösterebilir misiniz?
(William Tyrell 75) şeklinde olan verilerin sayısal uzantıları dikkate alınacak mı?


Galway FC: Conor Gleeson; (Derek O’Brien 70), Marty Owens (Gary Shanahan 74), Ryan Connolly, Jake Keegan.
Galway FC:*Conor Gleeson; (Derek O'Brien 58), Marty Owens (Gary Shanahan 62), Ryan Connolly, Jake Keegan (Vinny Faherty 75).
Galway FC:*Conor Gleeson; Colm Horgan, (Marty Owens 72), Paul Sinnot, Ryan Connolly, Derek O’Brien; Stephen Walsh, Vinny Faherty (Jake Keegan 79).

Öncelikle sayısal uzantılar önemli değil.
Cevaplar: Derek O'Brien, 2 olmalı. Jake Keegan 1 olmalı, Gary Shanahan 2 olmalı
 
Merhaba,
Verilerinizin uzunluğu nedir? Bu veriler bir birinden , 'le ayrılıyor ? Eğer öyleyse ilk olarak , den sonraki verileri bölerek daha sonra bu verilerin içinde (kriter) varsa bunlarıda başka bir sütuna alrak sonuca ulaştım.

Verilerinize göre yaklaşık 10 yardımcı sütun kullandım. :)
İsterseniz dosyayı eklerim.
 
Merhaba,
Verilerinizin uzunluğu nedir? Bu veriler bir birinden , 'le ayrılıyor ? Eğer öyleyse ilk olarak , den sonraki verileri bölerek daha sonra bu verilerin içinde (kriter) varsa bunlarıda başka bir sütuna alrak sonuca ulaştım.

Verilerinize göre yaklaşık 10 yardımcı sütun kullandım. :)
İsterseniz dosyayı eklerim.

O şekilde bölerek yapmak benim de aklıma geldi; ancak iş 10 yardımcı sütünla bitmiyor maalesef. Tek hücreden aratmak gerekiyor
 
Boş bir modul ekleyip/açıp içine aşağıdaki fonksiyonu yapıştırın.

Kod:
Public Function zCount(ByVal rng As Range) As Long
    Dim reg As Object
    
    Set reg = CreateObject("vbscript.regexp")
    
    reg.Global = True
    reg.Pattern = "\(.*?\)"
    
    zCount = reg.Execute(rng.Text).Count
    
     Set reg = Nothing
End Function
Sonra hücrede şu formulü örneğin aşağıdaki gibi uygulayacaksınız:

Kod:
=zCount(A1)
.
.
.
.
.
 
Zeki bey,
Sayın RIKU'nun istediği farklı bir şey değil mi ?
Her hangi bir hücrede "( )" sayısını istemiyor olsa gerek
"Cevaplar: Derek O'Brien, 2 olmalı. Jake Keegan 1 olmalı, Gary Shanahan 2 olmalı" burdan çıkartığım sonuç.

Sayın Uzmanamele'nin formülünü şe şekilde değiştirip dener misiniz ?
Kod:
=TOPLA.ÇARPIM(--ESAYIYSA(MBUL("([COLOR="Red"]Derek O'Brien[/COLOR] ??)";B1:B10;1)))
Derek O'Brien size hatalı sonuç verecek ilk satırda yazım yanlışı olduğundan dolayı.
 
Son düzenleme:
Merhaba,

Sayın Bzace güzel bir noktaya değinmiş,
Galway FC: Conor Gleeson; (Derek O’Brien 70), Marty Owens (Gary Shanahan 74), Ryan Connolly, Jake Keegan.
Galway FC:*Conor Gleeson; (Derek O'Brien 58), Marty Owens (Gary Shanahan 62), Ryan Connolly, Jake Keegan (Vinny Faherty 75).
Galway FC:*Conor Gleeson; Colm Horgan, (Marty Owens 72), Paul Sinnot, Ryan Connolly, Derek O’Brien; Stephen Walsh, Vinny Faherty (Jake Keegan 79).

Derek O’Brien
Derek O'Brien

Tırnak işaretlerinde karakter farklı var. Sayım sonu bir olarak bulunur.

--
 
Mahir bey, teşekkür ederim.
Şimdi sonuç alma adına farklı yollar bulmak üzerinde çalışırken şöyle bir sorunla karşılaştım,
(Derek O'Brien **) ifadesi bir hücrede 2 yada daha fazla tekrarlanırsa ne olacak ? umarım tekrarlanma olasılığı yoktur. :)
 
Son düzenleme:
Boş bir modul ekleyip/açıp içine aşağıdaki fonksiyonu yapıştırın.

Kod:
Public Function zCount(ByVal rng As Range) As Long
    Dim reg As Object
    
    Set reg = CreateObject("vbscript.regexp")
    
    reg.Global = True
    reg.Pattern = "\(.*?\)"
    
    zCount = reg.Execute(rng.Text).Count
    
     Set reg = Nothing
End Function
Sonra hücrede şu formulü örneğin aşağıdaki gibi uygulayacaksınız:

Kod:
=zCount(A1)
.
.
.
.
.

Elinize sağlık; ancak burada sadece ilgili hücredeki kaç tane parantez olduğunu saymakta. Benim istediğim B:B aralığındaki parantez içerisinde olan farklı isimleri saydırmak. Yani B sütününda yer alan ne kadar hücre varsa, o hücreler içerisindeki parantezlerde yer alan her bir farklı ismin sayısını bulabilmek.
 
Mahir bey, teşekkür ederim.
Şimdi sonuç alma adına farklı yollar bulmak üzerinde çalışırken şöyle bir sorunla karşılaştım,
(Derek O'Brien **) ifadesi bir hücrede 2 yada daha fazla tekrarlanırsa ne olacak ? umarım tekrarlanma olasılığı yoktur. :)

Aynı hücrede her ifade birden fazla yer almayacak. Buna emin olun.
 
Sayın Rıku,
Sorunuzun cevabınıza ulaştınız mı ?
Tekrarlanma olasılığı yoksa
Sayın Uzamanamele'nin formülüne alternatif;
Kod:
=TOPLA.ÇARPIM((B1:B10<>"")*(ESAYIYSA(BUL("(Derek";B1:B10))))
 
Sayın Rıku,
Sorunuzun cevabınıza ulaştınız mı ?
Tekrarlanma olasılığı yoksa
Sayın Uzamanamele'nin formülüne alternatif;
Kod:
=TOPLA.ÇARPIM((B1:B10<>"")*(ESAYIYSA(BUL("(Derek";B1:B10))))

Maalesef henüz bir sonuca ulaşamadım; ama inanıyorum ki hallolacak.
 
Geri
Üst