• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü Çoklu Düşeyara KTF

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

mana97

Yeni Üye
Katılım
18 Ağu 2022
Mesajlar
279
Çözümler
31
Aldığı beğeni
103
Excel V
Office 2019 TR
Konu Sahibi
Merhaba,

Excelin alt versiyonlarını kullandığım için çarpraz ara formülüm yok o nedenle KTF olarak aşağıdaki kodu kullanmaktayım. Bu KTF kodlarını çoklu olarak yapabilmemiz mümkün müdür. Şöyle anlatmaya çalışayım Eğersay formülü ile tek bir ölçüte göre saydırma işleme yapılıyor ÇokEğersay formülü ile birden fazla ölçüte göre saydırma işleme yapılıyor. şimdi bu işlemi Düşeyara için düşünelim aynı şekilde ÇokDüşeyara yapabilme ihtimalimiz var mıdır. KTF olursa daha kullanışlı olur.

Function DÜŞEARA_ÖZEL(S1 As Variant, S2 As Range, S3 As Range)

DÜŞEARA_ÖZEL = WorksheetFunction.Index(S3, WorksheetFunction.Match(S1, S2, 0))

End Function
 
Çözüm
illede KTF olacaksa paramarray ile yaptım ado ile yapacaktım olmadı.
Koda açıklamalarınıda yaptım ona göre ekleme felan yaparsınız.
Önceden dediğim gibi formül en uygun size.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Kullanımı:
=DÜSEYARA_OZEL(G2;$F$1;$A$2:$C$24)
Dosyanızda hiç veri yok nasıl neyi kriter alınacak?
Kft olarak find komutu ile bence çoklu kriter olarak yapılır.
 
Yinede kendimce biraz bişeyler ekledim yada kendiniz verileri kriterleri ekleyip dosyayı yükleyin.
Örnekte sayfa1 deki kriterler sayfa2 de aranıyor ve sonuç sayfa2 nin D sütunundakiveri geliyor ve kendinize göre ayarlarsınız.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.

333.gif
 
Sorun değil.Verdiiniz koddan anladışım kadarıyla tek satırlık veri getiriyorsunuz.Bende find kullanarak kriterleri çoğalttım aynı mantıkla.
 
Konu Sahibi
Sorun değil.Verdiiniz koddan anladığım kadarıyla tek satırlık veri getiriyorsunuz. Bende find kullanarak kriterleri çoğalttım aynı mantıkla.
elinize sağlık hocam güzel bir çalışma olmuş inceleyebilir misiniz.
 
DegerYapistir.xlam
Dosyasınıda ekleyin ordan veriler çekmek istiyorsunuz.
 
Konu Sahibi
DegerYapistir.xlam
Dosyasınıda ekleyin ordan veriler çekmek istiyorsunuz.
hocam o .xlam uzantılı eklenti olarak kullandığım excel dosya yoluna atılması lazım sizi uğraştırmamak için 2 tane excel yüklüyorum bunlardan bir tanesi eklentiyi kullanıyor diğeri excel kendi içerisindeki modül de iki excelden birinin sizin pc de çalışması gerekiyor.

1698154360242.png
 
Konu Sahibi
Function DÜŞEARA_ÖZEL(S1 As Variant, S2 As Range, S3 As Range)

DÜŞEARA_ÖZEL = WorksheetFunction.Index(S3, WorksheetFunction.Match(S1, S2, 0))

End Function

2 excelde olmazsa modül sayfasına yapıştırın hocam değeryapıştır eklentisindeki excelinden bu modülü çekiyor
 
Size bir formül ekledim bence daha kullanışlı olur.
KTF olarak findnext denedim hata verip durdu.
Eğer illede KTF isterseniz dictionary yada Ado ile yaparım ama bence formül daha iyi.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
illede KTF olacaksa paramarray ile yaptım ado ile yapacaktım olmadı.
Koda açıklamalarınıda yaptım ona göre ekleme felan yaparsınız.
Önceden dediğim gibi formül en uygun size.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Kullanımı:
=DÜSEYARA_OZEL(G2;$F$1;$A$2:$C$24)
 
Çözüm
Konu Sahibi
illede KTF olacaksa paramarray ile yaptım ado ile yapacaktım olmadı.
Koda açıklamalarınıda yaptım ona göre ekleme felan yaparsınız.
Önceden dediğim gibi formül en uygun size.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.

Kullanımı:
=DÜSEYARA_OZEL(G2;$F$1;$A$2:$C$24)

Hocam elinize emeğinize sağlık muhteşem olmuş
KTF de ısrar etmemin sebebi basit olarak formülün uzunluğu ve yazım kolaylığı olması çok teşekkür ederim.

=EĞERHATA(İNDİS(C:C;TOPLA.ÇARPIM((G2=$A:A)*($F$1=B:B)*SATIR(A:A));1);"")

=DÜSEYARA_OZEL(G2;F1;A:C)
 
If alan(0)(i, 1) = aranan1 And alan(0)(i, 2) = aranan2 Then DÜSEYARA_OZEL = alan(0)(i, 3)
Rica ederim.Yapmışken burdaki 1,2 ve 3 olanıda sub parametreye alahım sonra daha düzenli olması için.Dün aklıma geldi ama erindim.Akşama doğru eklerim kodu.
 
Kodun son hali bu.
Eğer çok fazla satır seçerseniz döngüde boş satıra denk gelirse işlem sonlansın kodu ekledim ve kodda açıklamalar var.
İsterseniz ayarlamalarda yapabilirsiniz parametre içinde ama bence böyle daha iyi.

Kullanımı:
=DÜSEYARA_OZEL(G2;1;$F$1;2;3;1;$A$2:$C$100000)
parametredeki 3 demek seçilen alanın hangi indexinde veri gelecekse A:C de C den geleceği için 3 oldu.
D:F olsaydı F den gelecek olsaydı yine 3 yazılacaktı.1 ve 2 de aynı mantık.
3 ün sağındaki 1 ise seçilen alanın sütunlarında boş satır yoksa yani Sıra No gibi düşünülebilinir sayfadaki.


HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Son düzenleme:
Döngüsüz çözüm.

=DÜSEYARA_OZEL(G2;$A:$A;$F$1;$B:$B;$C:$C;$A:$A)
Kullanım yukarda.

" & aranan2.Value2 & " soldaki sayı ve tarih için sağdaki metinler için tabii sayısal olarak denemedim alanda. """ & aranan2.Value2 & """

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Son düzenleme:
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst