Tablodan koşula bağlı, sıralı veri çekmek

Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Altın Üyelik Bitiş Tarihi
14/03/2023
Merhaba arkadaşlar,

aslında dosya içerisinde de belirttim. Tablodan FİRMA 1, FİRMA 2,.. firmalarına ait en fazla stoğu olan ilk 10 malzemeyi özet bir tabloya sıralı halde ve makro kullanmadan , fonksiyon kullnarak getirmek istiyorum. stoğu sıfır olup ilk 10 a giren malzemelerin görünmesini istemiyorum, dolayısıyla bazı firmalarda 10 veri bazılarında 10 dan daha az veri olabilir, o konuda sıkıntı yok. Destekleriniz için şimdiden teşekkür ederim.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

DİZİ formüllerdir.

5000 satırlık veri için kurguladım. Gerekirse kendi dosyanıza göre revize edersiniz.
C6;
C++:
=EĞERHATA(İNDİS(tablo!$D$1:$D$5000;KAÇINCI(1;(tablo!$H$1:$H$5000=C$4)*(tablo!$O$1:$O$5000=D6);0));"")
D6;
C++:
=EĞER(SATIR($A1)>10;"";EĞERHATA(BÜYÜK(EĞER(DEĞİL(EHATALIYSA(tablo!$H$1:$H$5000));EĞER(tablo!$H$1:$H$5000=C$4;EĞER(tablo!$O$1:$O$5000=0;"";tablo!$O$1:$O$5000)));SATIR($A1));""))
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Ben de kod ile çözmeye çalıştım. Dener misiniz ?
Kod:
Sub Aktar()
    With Sheets("tablo")
    x = 1
    t = 5
    
    son = .[d65536].End(3).Row
    For j = 3 To 18 Step 3
    k = k + 1
        For i = 2 To 203
            If .Cells(i, "h") = "FİRMA " & k Then
            t = t + 1
                Sheets("özet").Cells(t, j) = .Cells(i, "d")
                Sheets("özet").Cells(t, j + 1) = .Cells(i, "o")
            End If
        Next
        Sheets("özet").Range(Cells(6, j), Cells(1000, j + 1)).Sort key1:=Cells(6, j + 1), order1:=xlDescending
        Range("c16:s1000").ClearContents
        t = 5
        Next
        End With
End Sub
 
Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Altın Üyelik Bitiş Tarihi
14/03/2023
Teşekkürler , hemen deniyorum çözümleri, bu arada bende o arada uğraşmaya devam ettim ve şöyle çözdüm; firma bazlı pivot table hazırladım fakat pivot üzerinde formül çalıştırmak zor olduğundan pivot değerlerni yan tarafa bağ yapıştırdım, daha sonra oluşan kendinden sıralı yeni tabloda düşeyara çalıştırdım ve çözüldü, bu da 3. alternatif olarak konuya dahil olsun :)
 
Katılım
6 Ağustos 2008
Mesajlar
142
Excel Vers. ve Dili
2013 , Türkçe
Altın Üyelik Bitiş Tarihi
14/03/2023
birkaç dakika arayla yazıyorum ama hem Korcan Bey'in hemde Hamitcan Bey in çözmlerini denedim, süpersiniz, ellerinize sağlık. Her ikisi de kusursuz çalışıyor diyebilirim, sadece Hamitcan Bey'in çözümünde sıfır değerli verilerde geliyor ama o da zaten problem olacak birşey değil.
 
Üst