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:
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
Sedat Şengan
Ellerine sağlık Sen Bu İşin Prf. sun
halil
Merhaba formül hakkında yardım edebilirmisiniz.
alper fındık
Const bslAyrac = “|||”
alper fındık
Merhaba;
Const bslAyrac = “|||”
Bu satırda sürekli hata veriyor constant expression required hatası veriyor
Yardımcı olabilirmisiniz
Esamet
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
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
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
Tırnak işaretlerini değiştirin ve Türkçe karakter kullanmazsanız yukarıda yazdığım formül çalışıyor.