• DİKKAT

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

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,903
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
 
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:
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.
 
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
 
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
 
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
 
Hayır, adres olarak nereyi girerseniz orda arar. örneğin C5:M18 yazarsanız C5:M18 aralığında arar.

=basharf(C5:M18;"a")
 
Zaten =basharf .... yazdığınızda #AD? geliyor. Yani Excel KTF olarak kabul etmemiş
Saygılarımla
 
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
 
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

  • Ornek.jpg
    Ornek.jpg
    15.1 KB · Görüntüleme: 1
Geri
Üst