• DİKKAT

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

Formüldeki Sayfa Aralığını Hücreden Referanslı Yapmak

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba Arkadaşlar,
Formüldeki sayfa aralığını hücreden referanslı yapmak mümkün mü ?
Formüldeki sayfaA D1'de ve sayfaB D2'de yazılı olsa formül içine D1:D2 formül içine nasıl yazmak gerekir ?

=KÜÇÜK('sayfaA:sayfaF'!A1:A100;10)
 
'Hatalı
 
Son düzenleme:
Aşağıdaki gibi deneyin:

=KÜÇÜK(DOLAYLI("'"&D1&":"&D2&"'!A1:A100");10)
 
D1 ve D2'de yer alan sayfa isimlerinin birebir aynı şekilde dosyada da mevcut olduğuna emin misiniz? Eğer öyleyse örnek dosya paylaşır mısınız?
 
Şimdi denedim, muhtemelen DOLAYLI formülü belirtilen şekilde kullanılamıyor.
 
Formül Sayfasındaki;
A2:Sonucun hangi sayfada gösterileceğini
B2:Sonucun hangi hücrede gösterileceğini
C2:Formülün kaç satıra birden ugulanacağını
D2:Formülün kaç sütuna birden ugulanacağını
E2: Uygulanacak Formülü (otomatik oluşur)

F - G - H - I - J ise küçük fonsiyonunun parametreleridir.
F2: Formüldeki ilk sayfa
G2: Formüldeki ikinci sayfa
H2: Formüldeki bakılacak aralığın başlangıç hücresi
I2: Formüldeki bakılacak aralığın bitiş hücresi
J2: Kaçıncı küçük değere bakılacak.

Bunlara göre E2 oluşur.

Hesapla dediğinizde
A2 deki sayfanın B2 deki hücresinden başlayarak C2 ile D2 de belirtilen aralığa hesaplayıp, yazar.
 
Formül Sayfasındaki;
A2:Sonucun hangi sayfada gösterileceğini
B2:Sonucun hangi hücrede gösterileceğini
C2:Formülün kaç satıra birden ugulanacağını
D2:Formülün kaç sütuna birden ugulanacağını
E2: Uygulanacak Formülü (otomatik oluşur)

F - G - H - I - J ise küçük fonsiyonunun parametreleridir.
F2: Formüldeki ilk sayfa
G2: Formüldeki ikinci sayfa
H2: Formüldeki bakılacak aralığın başlangıç hücresi
I2: Formüldeki bakılacak aralığın bitiş hücresi
J2: Kaçıncı küçük değere bakılacak.

Bunlara göre E2 oluşur.

Hesapla dediğinizde
A2 deki sayfanın B2 deki hücresinden başlayarak C2 ile D2 de belirtilen aralığa hesaplayıp, yazar.
Üstadım ne kadar teşekkür etsem, ne kadar takdir etsem azdır. Yani zahmetler edip bu kadar muntazam ve detaylı bir açıklama ile gönlümüzü fethettiniz. Ne kadar iyi niyetli, yardımsever bir insansınız. Allah tuttuğunuzu altın etsin, sağlık sıhhat ihsen eylesin.
Hazırladığınız bu dosya gibi sade ve etkili çalışmaya bugüne kadar çok az şahit oldum. Ve de Excelde çözümsüz gibi gözüken bir konuya çok kapsamlı bir çözüm getirmişsiniz. Hakikaten takdire şayan bir çalışma olmuş. Sağlıcakla kalın üstadım.
 
Alternatif;

Kullanıcı Tanımlı Fonksiyon (KTF)

Hücrede kullanım şekli;

=K_KÜÇÜK(Sayfalar;Hücre_Aralığı;Kaçıncı_Küçük)

C++:
Option Explicit

Function K_KÜÇÜK(Sayfalar As Variant, Alan As Variant, Kaçıncı_Küçük As Long)
    Dim Sayfa As Variant, Veri As Variant, Liste As Variant
    Dim X As Long, Y As Integer, Say As Long
   
    Application.Volatile True
   
    ReDim Veri(1 To 1)
   
    For Each Sayfa In Sayfalar
        Liste = Sheets(CStr(Sayfa)).Range(Alan.Address).Value2
        For X = LBound(Liste) To UBound(Liste)
            For Y = 1 To UBound(Liste, 2)
                Say = Say + 1
                ReDim Preserve Veri(1 To Say)
                Veri(Say) = Liste(X, Y)
            Next
        Next
    Next
   
    K_KÜÇÜK = WorksheetFunction.Small(Veri, Kaçıncı_Küçük)
End Function
 

Ekli dosyalar

Alternatif;

Kullanıcı Tanımlı Fonksiyon (KTF)

Hücrede kullanım şekli;

=K_KÜÇÜK(Sayfalar;Hücre_Aralığı;Kaçıncı_Küçük)

C++:
Option Explicit

Function K_KÜÇÜK(Sayfalar As Variant, Alan As Variant, Kaçıncı_Küçük As Long)
    Dim Sayfa As Variant, Veri As Variant, Liste As Variant
    Dim X As Long, Y As Integer, Say As Long
  
    Application.Volatile True
  
    ReDim Veri(1 To 1)
  
    For Each Sayfa In Sayfalar
        Liste = Sheets(CStr(Sayfa)).Range(Alan.Address).Value2
        For X = LBound(Liste) To UBound(Liste)
            For Y = 1 To UBound(Liste, 2)
                Say = Say + 1
                ReDim Preserve Veri(1 To Say)
                Veri(Say) = Liste(X, Y)
            Next
        Next
    Next
  
    K_KÜÇÜK = WorksheetFunction.Small(Veri, Kaçıncı_Küçük)
End Function
Üstad çok çok teşekkür ediyorum. Harika bir Kod çalışması olmuş. Vizyonumuzu genişletiyorsunuz. Sağolun var olun, sağlıcakla kalın.
 
Geri
Üst