Verilen aralıkta "A- " ile başlayan hücre varsa kaç tane ve kaçıncı hücrelerdedir?

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Günaydın Arkadaşlar,
F11:AZ11 aralığında "A- " ile başlayan hücreler varsa kaç tane ve kaçıncı hücrelerde (birden çoksa) "," ile ayırarak yazmak istiyorum. (KTF ya da makro muhteşem olur)
Saygılarımla
 

systran

Destek Ekibi
Destek Ekibi
Katılım
15 Aralık 2007
Mesajlar
1,573
Excel Vers. ve Dili
2007 [TR], 2013 [TR]
A- ile başlayan hücreden kastını A- verisini içeren mi?
Eğer öyleyse:
Kod:
Function aralikSay() As Integer
Application.Volatile
Dim rng As Range
Set rng = Range("F11:AZ11")

Dim toplam As Integer
Dim cl As Range
toplam = 0
For Each cl In rng
    If Left(cl.Value, 2) = "A-" Then
        toplam = toplam + 1
    End If
    
Next cl
aralikSay = toplam
End Function
 
Son düzenleme:

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sayenizde ilk kullanıcı tanımlı fonksiyonumu yazdım :)

Aşağıdaki kodları bir modüle kopyalayınız:

Kod:
Function basharf(Rng As Range, ara As String)
    Dim r As Range
    Dim t
    aranan = 0
    adres = Empty
    For Each r In Rng
        If Left(r, 1) = ara Then
            aranan = aranan + 1
            If adres = "" Then
                adres = r.Address
            Else
                adres = adres & ", " & r.Address
            End If
        End If
    Next r
    If aranan > 1 Then
        kelime = "adresleri"
    Else
        kelime = "adresi"
    End If
    If aranan = 0 Then
        basharf = ara & " ile başlayan hücre bulunamadı!"
    Else
        basharf = ara & " ile başlayan hücre sayısı: " & aranan & Chr(10) & _
            "Hücre " & kelime & ": " & adres
    End If
End Function
Kullanım şekli örneği:

=basharf(A1:A13;"a")

Not: Büyük/Küçük harf duyarlıdır. Hücrede düzgün görünüm için metin kaydırma etkin olmalıdır.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Sayın Systran Hocam,
İlginize teşekkür ederim. aralikSay ifadesi KTF gibi çalışmıyor. Belki aralikSay(F11:AZ11) gibi daha iyi. Ama olmadı
Saygılarımla
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki halinde büyük/küçükharf duyarlılığını iptal ettim ve hücre adreslerindeki $ ifadesini kaldırdım:

PHP:
Function basharf(Rng As Range, ara As String)
    Dim r As Range
    Dim t
    aranan = 0
    adres = Empty
    For Each r In Rng
        If Left(WorksheetFunction.Proper(r), 1) = WorksheetFunction.Proper(ara) Then
            aranan = aranan + 1
            If adres = "" Then
                adres = r.Address
            Else
                adres = adres & ", " & r.Address
            End If
        End If
    Next r
    adres = Replace(adres, "$", "")
    If aranan > 1 Then
        kelime = "adresleri"
    Else
        kelime = "adresi"
    End If
    If aranan = 0 Then
        basharf = ara & " ile başlayan hücre bulunamadı!"
    Else
        basharf = ara & " ile başlayan hücre sayısı: " & aranan & Chr(10) & _
            "Hücre " & kelime & ": " & adres
    End If
End Function
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Sayın Yusuf44 Hocam,
If Left(r, 1) = ara Then
bu satır A sütununda arıyor, benim aradığım verilen sütun ya da satırda ya da alanda araması
Saygılarımla
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Hayır, adres olarak nereyi girerseniz orda arar. örneğin C5:M18 yazarsanız C5:M18 aralığında arar.

=basharf(C5:M18;"a")
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Zaten =basharf .... yazdığınızda #AD? geliyor. Yani Excel KTF olarak kabul etmemiş
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Sayın Hocam,
Evet, acelemden modüle koyacağıma sayfa altına koymuşum. Teşekkür ederim. Ama laf yerine varsa sayı ve/ya da başlangıca göre kaçıncı olduğunu yazarsa daha kolay kullanılabilir.
Saygılarımla
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Sayın Yusuf44 Hocam,
İlginize tekrar teşekkür ederim. Tam istediğim gibi de oldu.
Saygılarımla
Kod:
Function basharf(Rng As Range, ara As String)
    Dim r As Range
    Dim t
    aranan = 0
    adres = Empty
    For Each r In Rng
        If Left(WorksheetFunction.Proper(r), 1) = WorksheetFunction.Proper(ara) Then
            aranan = aranan + 1
            If adres = "" Then
                adres = r.Address
            Else
                adres = adres & "," & r.Address
            End If
        End If
    Next r
    adres = Replace(adres, "$", "")
    If aranan > 1 Then
        kelime = "adresleri"
    Else
        kelime = "adresi"
    End If
    If aranan = 0 Then
        basharf = ara & ""
    Else
        basharf = aranan & "," & adres
    End If
End Function
=basharf(F11:AZ11;"A")
Bu arada ilk KTF niz de hayırlı olsun, nicelerine ...
 

Ekli dosyalar

Üst