• DİKKAT

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

dizi içinde kaçıncı

  • Konbuyu başlatan Konbuyu başlatan bebar
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Kasım 2014
Mesajlar
255
Excel Vers. ve Dili
2013
Merhaba,

bir dizi içinde aradağım değeri kaçıncı olduğunu nasıl bulabilirim
Aşağıdaki gibi kod oluşturdum fakat çalışmıyor.
yardımcı olursanız memnun olurum.

Kod:
ReDim hdf1(1 To UBound(a2, 1), 1)

'hdf1 yukarıdaki gibi alan tanımlamladım

For i = LBound(kyn, 1) To UBound(kyn, 1)
    krt = kyn(i, 1)
    If dc1.Exists(krt) And kyn(i, 3) > 0 Then
        x = Kacıncı(kyn(i, 1), hdf1)
        Debug.Print x
    End If
Next i



Function Kacıncı(aranan As Variant, dizi As Variant) As Integer
    x = WorksheetFunction.Match(aranan, dizi, 0)
End Function
 
Sorun çözülür mü bilmiyorum ama x yerine Kacıncı yazmayı dener misiniz? Ayrıca excelde zaten KAÇINCI formülü var ve siz kodda MATCH ile bu formülü kullanmıyor musunuz?
 
kullandığım kod içinde bir çok dizi var ve diğer dizilerde bulanan verilerle eşleştirme yapmam gerekiyor.

"Ayrıca excelde zaten KAÇINCI formülü var ve siz kodda MATCH ile bu formülü kullanmıyor musunuz? "

aslında kullanamıyorum.
örnek olması için aşağıdaki gibi kod oluşturdum.

Kod:
Sub deneme()
Dim Kacıncı As Integer
Set dc1 = CreateObject("scripting.dictionary")

alan1 = Range("A1:C" & Cells(Rows.Count, "A").End(3).Row).Value
alan2 = Range("F1:H" & Cells(Rows.Count, "F").End(3).Row).Value


ReDim hdf(1 To UBound(a2, 1), 1 To 3)
ReDim kyn(1 To UBound(a2, 1), 1 To 3)


    For i = 1 To UBound(alan1)

            say1 = say1 + 1
            hdf(say1, 1) = alan1(i, 1) & "|" & alan1(i, 2) & "|" & alan1(i, 3)
            hdf(say1, 2) = "ver1"
            hdf(say1, 3) = "ver12"
    Next i


    For i = 1 To UBound(alan2)
            say2 = say2 + 1
            kyn(say2, 1) = alan2(i, 1) & "|" & alan2(i, 2) & "|" & alan2(i, 3)
            kyn(say2, 2) = "ver3"
            kyn(say2, 3) = "ver4"
    Next i


For i = LBound(kyn, 1) To UBound(kyn, 1)
    x = Kacıncı(kyn(i, 1), hdf)
    
    ' yani istediğim kyn(i, 1)'i  hdf dizisinin ilk sütununda aramak eğer var ise kacıncı satırda olduğunu öğrenmek.
    
    Debug.Print x
Next i
End Sub

Function Kacıncı(aranan As Variant, dizi As Variant) As Integer
    Kacıncı = WorksheetFunction.Match(aranan, dizi, 0)
End Function
 
excel'deki worksheet veya VBA fonksiyonlarını aynen yazıp KTF hazırlamaya gerek yok.

kacıncı fonksiyonunu tamamen silip hayatınızdan çıkarın. herhangi bir kolaylık sağlamıyor.

2 boyutlu bir "dizi"de "dizi"nin hangi satırında veya sütununda arama yaptığınızı belirtin.

Kod:
rSira = Application.Match(aranan, Application.Index(dizi, 4, 0), 0) 'dizi'nin 4üncü satırında arama yap
nSira = Application.Match(aranan, Application.Index(dizi, 0, 3), 0) ''dizi'nin 3üncü sütununda arama yap

veya daha görsel olarak, with blokunda

Kod:
    With Application
        rSira = .Match(aranan, .Index(dizi, 4, 0), 0) 'dizi'nin 4üncü satırında arama yap
        nSira = .Match(aranan, .Index(dizi, 0, 3), 0) ''dizi'nin 3üncü sütununda arama yap
    End With
 
Hocam çok teşekkür ederim. çok faydası oldu
 
rica ederim.
işe yaradığına sevindim.
 
Geri
Üst