othara
Altın Üye
- Katılım
- 1 Ağustos 2005
- Mesajlar
- 497
- Excel Vers. ve Dili
- 2016 PLUS
- Altın Üyelik Bitiş Tarihi
- 08-07-2026
öok teşekkür ederim idris serdar bey emeginize saglık.
Dosyanız ekte.
.
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
öok teşekkür ederim idris serdar bey emeginize saglık.
Dosyanız ekte.
.
çok tesekkur ederım idris bey elinize saglık.
Dosyanız ekte.
.
=eğer(ehatalıysa(DÜŞEYARA($A2;DOLAYLI("'"&İNDİS(SATIR($A$1:$A$100);KAÇINCI(1;--(EĞERSAY(DOLAYLI("'"&SATIR($A$1:$A$100)&"'!A2:A200");$A2)>0);0))&"'!A2:e100");SÜTUN(C1);0));"";DÜŞEYARA($A2;DOLAYLI("'"&İNDİS(SATIR($A$1:$A$100);KAÇINCI(1;--(EĞERSAY(DOLAYLI("'"&SATIR($A$1:$A$100)&"'!A2:A200");$A2)>0);0))&"'!A2:e100");SÜTUN(C1);0))
Sayın idris her yolu denedim dosya kaydetmedi..Bunu makro ile getirebilmemiz mümkümü acaba ?.
Başka bir dosyada yeni baştan oluşturun.
.
=Sayfalarda_Düşeyara(Aranan_Veri, Aranan_Veri_Sütun_No, İlk_Sayfa_No, Son_Sayfa_No, Veri_Aralığı, Sütun_İndis_Sayısı)
=Sayfalarda_Düşeyara($B4;1;1;50;$A$5:$A$1000;SÜTUN(AK$1))
Option Explicit
Function Sayfalarda_Düşeyara(Aranan_Veri As Range, _
Aranan_Veri_Sütun_No As Integer, _
İlk_Sayfa_No As Integer, _
Son_Sayfa_No As Integer, _
Veri_Aralığı As Range, _
Sütun_İndis_Sayısı As Integer)
Dim Dizi As Object, No As Integer, Sayfa As Worksheet
Dim Veri As Variant, Son As Long, X As Long, Kriter As Variant
Application.Volatile True
Set Dizi = CreateObject("Scripting.Dictionary")
For No = İlk_Sayfa_No To Son_Sayfa_No
Set Sayfa = Sheets(CStr(No))
If WorksheetFunction.CountIf(Sayfa.Columns(Aranan_Veri_Sütun_No), Aranan_Veri.Value) > 0 Then
Veri = Sayfa.Range(Veri_Aralığı.Address).Value
Son = Sayfa.Cells(Rows.Count, Aranan_Veri_Sütun_No).End(3).Row
For X = 1 To UBound(Veri)
If X > Son Then Exit For
Kriter = Veri(X, 1)
Dizi(Kriter) = Veri(X, Sütun_İndis_Sayısı)
Next X
If Dizi.Exists(Aranan_Veri.Value) Then
Sayfalarda_Düşeyara = Dizi.Item(Aranan_Veri.Value)
Exit Function
End If
End If
Next
End Function
sayın korkhan ayhan merhaba elinize saglık cok güzel olmus ilave etmem gereken bişey varmı ki bu dosyayı indirdim oldugu gibiEkteki dosyayı deneyiniz.
Makro kullanılmıştır. "ANA LİSTE" isimli sayfanızdaki butona tıklayıp sonucu gözlemleyin.
Ek olarak dosyanın içinde kullanıcı tanımlı fonksiyonda var. Fakat 1.170 satırlık veride çok iyi performans vermediği için kullanmadım. İncelemeniz için silmedim.
Kullanıcı tanımlı fonksiyon aşağıdadır.
Söz dizimi;
=Sayfalarda_Düşeyara(Aranan_Veri, Aranan_Veri_Sütun_No, İlk_Sayfa_No, Son_Sayfa_No, Veri_Aralığı, Sütun_İndis_Sayısı)
Kullanım şekli (ANA LİSTE F+ hücresi için);
=Sayfalarda_Düşeyara($B4;1;1;50;$A$5:$A$1000;SÜTUN(AK$1))
Kod:Option Explicit Function Sayfalarda_Düşeyara(Aranan_Veri As Range, _ Aranan_Veri_Sütun_No As Integer, _ İlk_Sayfa_No As Integer, _ Son_Sayfa_No As Integer, _ Veri_Aralığı As Range, _ Sütun_İndis_Sayısı As Integer) Dim Dizi As Object, No As Integer, Sayfa As Worksheet Dim Veri As Variant, Son As Long, X As Long, Kriter As Variant Application.Volatile True Set Dizi = CreateObject("Scripting.Dictionary") For No = İlk_Sayfa_No To Son_Sayfa_No Set Sayfa = Sheets(CStr(No)) If WorksheetFunction.CountIf(Sayfa.Columns(Aranan_Veri_Sütun_No), Aranan_Veri.Value) > 0 Then Veri = Sayfa.Range(Veri_Aralığı.Address).Value Son = Sayfa.Cells(Rows.Count, Aranan_Veri_Sütun_No).End(3).Row For X = 1 To UBound(Veri) If X > Son Then Exit For Kriter = Veri(X, 1) Dizi(Kriter) = Veri(X, Sütun_İndis_Sayısı) Next X If Dizi.Exists(Aranan_Veri.Value) Then Sayfalarda_Düşeyara = Dizi.Item(Aranan_Veri.Value) Exit Function End If End If Next End Function
Valla öyle yaptım Korhan bey tşk ederim size ve idris beye...Butona basıp arkanıza yaslanmanız yeterlidir...