• DİKKAT

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

indis-makro çözümü

Katılım
6 Mayıs 2014
Mesajlar
264
Excel Vers. ve Dili
office 365
=EĞER($X13="";"";İNDİS('VERİ'!A$4:A$153565;KAÇINCI(1;('VERİ'!$F$4:$F$153565=$G$8)*('VERİ'!$I$4:$I$153565=$X13);0)))


yukarıdaki şekilde bir dizi formülüm var. bu formül ile çekilen veriyi "B" sayfasında A13:A12614 sütun aralığına yazdırmak istiyorum.

Bu formülün makrosunu yazmamız mümkün mü
 
Merhaba.

Formülde kullandığınız X13, G8 hücrelerinin B sayfasında olduğunu düşünürsek, aşağıdaki kod ile istediğiniz sonuç elde edilebilir sanırım.
Ancak;
-- VERİ sayfasında arama yapılacak satır sayısı 4'ten 153565'inci satıra kadarki alan yani 153562 satırlık veri yığını iken,
-- sonuçları A13:A12614 aralığına yazdırmak istiyorsunuz (satır sayısı 12602 oluyor)
-- B sayfası A sütununda veriler boşluksuz yazılmayacaksa (ki, verdiğiniz formül, koşullara uymayan satırlar için boşluk sonucunu verir ve boşluklu bir liste verir) burada bir çelişki ortala çıkmaz mı sizce.
Şöyleki; VERİ sayfasında, ilk 12602 satırın tamamında (yani 4:12608 numaralı satırlar) koşullar tutup, VERİ sayfasındaki A sütununda yer alan veriler B sayfasında yazıldı diyelim, bu durumda VERİ sayfasında örneğin 153565'inci satırda da istenilen koşullar gerçekleşiyorsa bu veri yazılmayacak mıdır? Çünkü ilk 12602 satır koşullara uyduğu için dolduruldu.

Eğer istediğiniz şey
-- boşluksuz bir bir liste elde etmekse aşağıdaki kırmızı satırı silerek,
-- boşluklu bir liste elde etmekse (verdiğiniz formül ile aynı sonucu elde etmek) mavi satırı silerek,
kod'u çalıştırın.
.
Kod:
[FONT="Arial Narrow"]Sub LİSTE()
Set v = Sheets("VERİ"): Set b = Sheets("B")
b.Range("A13:A12654").ClearContents
For brn = 4 To [B]153565[/B]
    If b.Cells(brn + 9, "X") <> "" And _
       v.Cells(brn, "F") = b.Cells(8, "G") And _
       v.Cells(brn, "I") = b.Cells(brn + 9, "X") Then
       [COLOR="Red"]b.Cells(brn + 9, 1) = v.Cells(brn, 1)[/COLOR]
       [COLOR="Blue"]b.Cells(12, 1) = "BAŞLIK": b.Cells(b.[A65536].End(3).Row + 1, 1) = v.Cells(brn, 1)[/COLOR]
    End If
Next: MsgBox "İŞLEM BİTTİ"
End Sub[/FONT]
 
Son düzenleme:
dosya ekleseymişim keşke. iki iş oldu. kodu kendime uyarladım ama çalıştıramadım.

aslında siz doğru anlamışsınız da ben kodu çalıştıramadım. tekrar açıklamam gerekirse Ömer Bey;

koşul formülde belirttiğim şekilde: yani b sayfasının g8 hücresinin veri sayfasında f sütunu ile eşleşmesi ve b sayfasının x sütununun veri sayfasında I sütunu ile eşleşmesi

bu iki koşul gerçekleştiğinde ise

veri sayfasındaki A-F sütunlarını (beş sütun) b sayfasındaki A-F sütunlarına,
veri sayfasındaki g ve h sütunlarını ise b sayfasındaki o ve p sütunlarına aktarmak istiyorum.

yazdığım formül çalışıyor ancak aranan sayfadaki satır sayısı çok olunca formül çok geç hesaplıyor.

malum ben de makro kaydet dışında makro yazamıyorum. teşekkürler
not: sadece veri sayfasının satır sayısını azalttım
 

Ekli dosyalar

ya da daha basit anlatımıyla g8 hücresine veri girdiğimde g8 hücresini veri sayfasında f sütununda aratıp veri sayfasının diğer sütunlarını b sayfasının ilgili sütunlarına kopyalamak istiyorum
 
Tekrar merhaba.
Örnek belgeyi tam anlamış değilim.

Birkaç sorum var;
-- VERİ sayfası F sütunundaki veriler karışık olabiliyor mu yoksa aynı değerler hep alt alta mıdır?
-- Örnek belgenize göre B sayfası G8 hücresine 1 dışında bir sayı yazdığımızda VERİ sayfasında eşleşme mümkün değil sanırım. Çünkü;
... B sayfası X sütununda G8 hücresine yazılan değerin VERİ sayfası F sütununda tekrarlanma sayısına göre 1'den başlayarak sıra numarası veriliyor.
...VERİ sayfası I sütununda aynı sayfa F sütunundaki değerin sayma işlemi mi vardır yoksa?

Sonunda ulaşmaya çalıştığınız şey; VERİ sayfası F sütununda B sayfası G8'e yazdığınız değere göre filtre uygulandığında kalan değerlerin B sayfasına aktarılmasından ibaret midir?
.
 
F sütunundaki veriler karışık değil. yani mesela 1 bitmeden 5 başlamıyor. 1 ler hep arka arkaya. ama 1 den sonra 2 yerinde 10 da gelebilir.

aslında yapmak istediğim sizin de dediğiniz gibi g8 e yazdığım değere göre veri sayfasında filtre uygulayıp sadece g8 e yazdığım türün bilgilerini b sayfasına kopyalamak. x sütunu indis formülü ikili kaçıncı arama işlevi için gerekliydi.bence makro için gereksiz.

g8 e yazdığım değeri veri sayfası f sütununda arayıp sadece g8 ile ilgili değerlerden

veri sayfası a sütununu b sayfası a sütununa
veri sayfası b sütununu b sayfası b sütununa
veri sayfası c sütununu b sayfası c sütununa
veri sayfası d sütununu b sayfası d sütununa
veri sayfası e sütununu b sayfası e sütununa
veri sayfası f sütununu b sayfası f sütununa

veri sayfası g sütununu b sayfası o sütununa
veri sayfası h sütununu b sayfası p sütununa

kopyalayabilmek istiyorum.
 
Geri
Üst