Düşeyara ile Çoklu Sonuç Elde Etme – Kullanıcı Tanımlı Fonksiyon

Daha önceki yazılarımızda çoklu kritere göre düşeyara yapmayı burada anlatmıştık. Ancak  düşeyara formülü verilen kriterlere ait birden fazla sonuç olması halinde sadece ilk satırı getirmekte diğerlerini dikkate almamaktadır.  Bunun için aşağıdaki formülü geliştirdik.

  • Aşağıdaki kodları kullanarak kendi düşeyara_ayraç formülünüzü oluşturabilirsiniz ( Kullanıcı tanımlı Fonksiyon ). Anlatımı burada
  • Daha sonra bu formülü eklentiye dönüştürebilirsiniz. Nasıl mı? burada.
  • Kullanımı DÜŞEYARA_AYRAÇ(Aranan_Deger, Bakilan_Aralik, Getirilecek_Aralik, ayrac)şeklindedir.

Örnek:

 

22222222

 

Function DÜŞEYARA_AYRAÇ(Aranan_Deger As Variant, Bakilan_Aralik As Range, Getirilecek_Aralik As Range, ayrac As Variant) As String

Dim sonuc As String

Dim sonuc_Gecici As String

Dim satir As Long

Dim sutun As Long

Const bslAyrac = “|||”

 

sonuc = bslAyrac

For satir = 1 To Bakilan_Aralik.Rows.Count

For sutun = 1 To Bakilan_Aralik.Columns.Count

If Bakilan_Aralik.Cells(satir, sutun).Value = Aranan_Deger Then

sonuc_Gecici = Getirilecek_Aralik.Offset(satir – 1, sutun – 1).Cells(1, 1).Value

If InStr(1, sonuc, bslAyrac & sonuc_Gecici & bslAyrac) = 0 Then

sonuc = sonuc & sonuc_Gecici & bslAyrac

End If

End If

Next

Next

sonuc = Replace(sonuc, bslAyrac, ayrac)

If Left(sonuc, 1) = ayrac Then sonuc = Mid(sonuc, 2)

If Right(sonuc, 1) = ayrac Then sonuc = Left(sonuc, Len(sonuc) – 1)

If Len(sonuc) > 0 Then DÜŞEYARA_AYRAÇ = sonuc Else DÜŞEYARA_AYRAÇ = “BULUNAMADI”

 

End Function

8 thoughts on “Düşeyara ile Çoklu Sonuç Elde Etme – Kullanıcı Tanımlı Fonksiyon

  • Sedat Şengan
    10 Nisan 2015 at 20:21

    Ellerine sağlık Sen Bu İşin Prf. sun

  • halil
    12 Nisan 2016 at 11:49

    Merhaba formül hakkında yardım edebilirmisiniz.

  • alper fındık
    21 Nisan 2018 at 13:29

    Const bslAyrac = “|||”

    • alper fındık
      21 Nisan 2018 at 13:31

      Merhaba;
      Const bslAyrac = “|||”

      Bu satırda sürekli hata veriyor constant expression required hatası veriyor
      Yardımcı olabilirmisiniz

  • Esamet
    25 Temmuz 2019 at 12:05

    Merhaba
    Excwl dosyasında ; Aşağıda belirtilen a sutununda aynı karekterlerin b stununda farklı karekterlerini c stuna yanyana yazdırabilirmiyiz ?
    PtIF CDID
    01142424PT 119335210486
    01142424PT 124450212134

    Desteğiniz için çook teşekkür ederim

    Kolaylıklar

  • Metin
    4 Eylül 2020 at 14:33

    lütfen yardımcı olur musunuz? verdiğiniz komutun tüm aşamalırını uyguladım fakat her seferinde ayraç bölümünde hata veriyor. sanırım aynı hatayı diğer arkadaşalrda almış

  • Betistuta76
    31 Mayıs 2021 at 11:47

    Function DUSEYARA_AYRAC(Aranan_Deger As Variant, Bakilan_Aralik As Range, Getirilecek_Aralik As Range, ayrac As Variant) As String

    Dim sonuc As String

    Dim sonuc_Gecici As String

    Dim satir As Long

    Dim sutun As Long

    Const bslAyrac = “|||”

    sonuc = bslAyrac

    For satir = 1 To Bakilan_Aralik.Rows.Count

    For sutun = 1 To Bakilan_Aralik.Columns.Count

    If Bakilan_Aralik.Cells(satir, sutun).Value Like “*” & Aranan_Deger & “*” Then

    sonuc_Gecici = Getirilecek_Aralik.Offset(satir – 1, sutun – 1).Cells(1, 1).Value

    If InStr(1, sonuc, bslAyrac & sonuc_Gecici & bslAyrac) = 0 Then

    sonuc = sonuc & sonuc_Gecici & bslAyrac

    End If

    End If

    Next

    Next

    sonuc = Replace(sonuc, bslAyrac, ayrac)

    If Left(sonuc, 1) = ayrac Then sonuc = Mid(sonuc, 2)

    If Right(sonuc, 1) = ayrac Then sonuc = Left(sonuc, Len(sonuc) – 1)

    If Len(sonuc) > 0 Then DUSEYARA_AYRAC = sonuc Else DUSEYARA_AYRAC = “BULUNAMADI”

    End Function

    • Betistuta76
      31 Mayıs 2021 at 11:48

      Tırnak işaretlerini değiştirin ve Türkçe karakter kullanmazsanız yukarıda yazdığım formül çalışıyor.

Bir cevap yazın

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>