Soru Liste icerisinde eslesenleri gosterme

Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Arkadaslar oncelikle herkese selamlar,

Ustun tecrubelerinizden uzun zaman once epey faydalandim ve sizlere ne kadar tesekkur etsem azdir. Su an yine bir konuda yardimlarinizi esirgemezseniz mutesekkir olurum.

Ekledigim tabloda A sutununa notepad den kopyaladigim listeyi yapistiriyorum.
C sutununda listede bulmak istedegim degerleri yaziyorum.
Yesil olan kisimda FIRST ve SECOND sutunlari mevcut.
A sutununun basinda FIRST kismi var, asagi dogru cekersenizde SECOND kismi mevcut.
Tabloya ekleyecegim listeyi programdan alirken FIRST ve altinda degerler, SECOND ve altinda degerler var. Liste uzunlugu her gun degisiyor, mesela bir gun 10 satir yeterliyken ertesi gun 300-400 satir gerekebiliyor.
Eger mumkunse FIRST basligi altindakileri arama degerleri ile eslesirse sag taraftaki yesil FIRST kisminda, SECOND kismindaki ile eslesirse ayni sekilde SECOND kisminda gorunmesini istiyorum. eger deger bulamazsa hucrenin bos kalmasi iyi olur yoksa REF.. seklinde bir seyler yaziyor ve karmasik gorunuyor.
Kusura bakmayin biraz uzun oldu.
Simdiden yardimlariniz icin cok tesekkurler.

Dosya: https://files.fm/u/fhdunkpn
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Merhaba.
Verdiğiniz belge erişim bağlantısında sorun var, bağlantıyı kontrol ediniz.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Tekrar merhaba.

Eklediğiniz belge ve isteğiniz bence tam olarak anlaşılmıyor doğrusu.
-- Yeşil renklendirilen sağ taraftaki FIRST ve SECOND alanları neden 3'er sütun halinde?
-- Ham veri alanı FIRST için A2:A79, SECOND için ise A81:A498 hücre aralıkları, doğru mudur?
-- C sütunundaki ARAMA DEĞERLERİ adet ve konum olarak sabit midir?
-- Aranan değerin hem FIRST alanında, hem de SECOND alanında bulunması mümkün müdür?
-- Arama işlemi anladığım kadarıyla İÇERİR mantığıyla yapılacak doğru mudur?
-- Aranan değer, arama alanında/alanlarında aynı hücrede 1'den fazla kez bulunabilir mi?
-- Bir değer bulunduğunda sağ taraftaki ilgili alanda, verinin bulunduğu satırdaki değer bütün olarak mı yazdırılacak?
vs, vs,
Yukarıdaki hususları da netleştirecek şekilde, olması gereken sonuçları olması gereken konumlarına elle yazarak,
elle kopyala-yapıştır yaparak örneklendirip, bu sonuçları nasıl bulduğunuza ilişkin kısa açıklamalar yazarak
örnek belgenizi yenilemenizin yerinde olacağını düşünüyorum.
Arama alanlarında ham verilerde olmayan kısımlar varsa bunları hücrelerden silip,
A sütununu sadece ham veriler olacak şekilde sadeleştirmeniz de yerinde olur.

Örnek belgenizi, yukarıda belirttiğim hususları netleştirerek ve örneklendirerek yenilerseniz,
ben veya başka bir üye mutlaka çözüm önerisinde bulunacak veya çözüme giden yolda mesafe alınmasını sağlayacak cevaplar verecektir.
 
Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Merhaba Omer bey,

Cok ozur dilerim bende bu rapor uzerinde yeni calismaya basladigim icin tam olarak isteneni yeni yeni kavriyorum. Daha net olmasi icin orijinal belgeyi ve bu belgede kullandigimiz notepad dosyasini ekliyorum. ne yazik ki programdan ancak bu sekilde degerleri alabiliyoruz.

Notepad icerigine bakarsaniz ortalarda "YOU HAVE ACCESS TO THE FOLLOWING LOCATIONS RECORDS -" kismi var. bu kisima kadar olan veriler FIRST ve bundan sonrakiler SECOND.

Arama yaparken ilk kisimi ve ikinci kisimi farkli yerlere yapistiriyoruz tabloda gordugunuz gibi. Bizim yapmak istedigimiz listeyi ikiye bolmeden direk yapistirarak ayni sonuca ulasabilmek. Fakat bu mumkunmu henuz ondan emin degilim.

arama kismina bakarsaniz ilk basta E6TF var ve bu deger ilk ve ikinci kisimda mevcut, asil bizim icin onemli olan first ve second kisminda bu degeri ve uzantisinida gorebilmek: E6TF-B ya da E6TF-BC seklinde.

Bazen liste uzun oldugu icin ve arattigimiz degerler fazla olabildigi icin 3'er sutun. Fakat uzun 2 sutunda olabilir, FIRST ve SECOND seklinde.

Ham veri alani ne yazik ki degisken, hucre araligi gunluk listenin uzunluguna gore degisiyor.

Arama degerleri E sutununda sabit, sadece miktari artip azalabiliyor.

Evet icerir mantigiyla yapilmali.

Sanirim orijinal tablo tam olarak ne gormek istedigimiz hakkinda bir fikir verir.

Orijinal tablo: https://files.fm/u/ar2snsmy

Notepad verileri: https://files.fm/u/emnjhfzk

Tekrar cok tesekkur ederim.
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,104
Excel Vers. ve Dili
office2010
Ekli dosyanıza göre kodu bu şekilde deneyin.

Kod:
Sub bul()
Set d = CreateObject("scripting.dictionary")
Set d1 = CreateObject("scripting.dictionary")
a = [A2:A18] 'FRIST
For i = 1 To UBound(a)
    deg = Split(a(i, 1), " ")
    For j = 0 To UBound(deg)
        If deg(j) <> "" Then
            krt = Split(deg(j), "-")(0)
            d(krt) = deg(j)
        End If
    Next j
Next i

a1 = [A83:A102] 'SECOND
For i = 1 To UBound(a1)
    deg = Split(a1(i, 1), " ")
    For j = 0 To UBound(deg)
        If deg(j) <> "" Then
            krt = Split(deg(j), "-")(0)
            d1(krt) = deg(j)
        End If
    Next j
Next i

b = Range("E2:E" & Cells(Rows.Count, "E").End(3).Row).Value
ReDim c(1 To UBound(b), 1 To 2)
For i = 1 To UBound(b)
krt = b(i, 1)
c(i, 1) = d(krt)
c(i, 2) = d1(krt)
Next i
[F2].Resize(UBound(b), 2) = c
MsgBox "İşlem tamam.", vbInformation
End Sub
 
Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Tesekkurler, scripti kopyalayip calistiridim fakat hic bir sonuc alamadim.
 
Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Altin uyeligim olmadigi icin dosyayi indiremiyorum. Zahmet olmazsa asagidaki linkten yukleyebilirmisiniz ?
Cok tesekkurler
 
Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Yardiminiz icin cok tesekkurler fakat onceki mesajlarimda yazdigim gibi listenin uzunlugu her gun degisiyor. yani bir gun 15 satirken ertesi gun 500-600 olabiliyor. Sizin uyguladiginiz macroda FIRST icin A2: A18 arasini ve SECOND icin A83:A102 araligini kullaniyor. A18 den sonraki degerleri dogal olarak tasinmiyor. Ben A18 i A80 e kadar yukseltebilirim tabi ki fakat bu yinede bir cozum olmayacak. Bir sonraki gun listenin uzunlugu ne kadar olacak bilme sansimiz yok.

Benim tum yapmaya calistigim ortada gordugunuz "YOU HAVE ACCESS TO THE FOLLOWING LOCATIONS RECORDS -" yazisini bir sekilde ayirac olarak kullanmak. O yazidan oncesi FIRST kisminda, sonrasida SECOND kisminda gorunmeli.

Yani liste ne kadar uzun olursa olsun farketmemeli, tek kriter o yazi.

Mumkunmu inanin hic bir fikrim yok, eger mumkun degilse vaktinizi aldigim icin ozur dilerim.
 

Ziynettin

Destek Ekibi
Destek Ekibi
Katılım
18 Nisan 2008
Mesajlar
1,104
Excel Vers. ve Dili
office2010
Şimdi tablo yapınızı anladım, mumkun. Musait olduğum zaman çözümü paylaşırım.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,596
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
Merhaba,

Formülle yapmak isterseniz F2 hücresine yapıştırın. Aralığı değiştir ile siz ayarlarsınız.

Kod:
EĞERHATA(İNDİS(KIRP(PARÇAAL(YERİNEKOY(" "&İNDİS($A$1:$A$100;BÜYÜK(--ESAYIYSA(BUL(E2;$A$1:$A$100;1))*SATIR($A$1:$A$100);3-SÜTUN(A1)));" ";YİNELE(" ";255));SATIR($A$1:$A$99)*255;255));KAÇINCI($E2&"*";KIRP(PARÇAAL(YERİNEKOY(" "&İNDİS($A$1:$A$100;BÜYÜK(--ESAYIYSA(BUL($E2;$A$1:$A$100;1))*SATIR($A$1:$A$100);3-SÜTUN(A1)));" ";YİNELE(" ";255));SATIR($A$1:$A$99)*255;255));0));"")
 
Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Şimdi tablo yapınızı anladım, mumkun. Musait olduğum zaman çözümü paylaşırım.
Cok tesekkurler :)

Merhaba,

Formülle yapmak isterseniz F2 hücresine yapıştırın. Aralığı değiştir ile siz ayarlarsınız.

Kod:
EĞERHATA(İNDİS(KIRP(PARÇAAL(YERİNEKOY(" "&İNDİS($A$1:$A$100;BÜYÜK(--ESAYIYSA(BUL(E2;$A$1:$A$100;1))*SATIR($A$1:$A$100);3-SÜTUN(A1)));" ";YİNELE(" ";255));SATIR($A$1:$A$99)*255;255));KAÇINCI($E2&"*";KIRP(PARÇAAL(YERİNEKOY(" "&İNDİS($A$1:$A$100;BÜYÜK(--ESAYIYSA(BUL($E2;$A$1:$A$100;1))*SATIR($A$1:$A$100);3-SÜTUN(A1)));" ";YİNELE(" ";255));SATIR($A$1:$A$99)*255;255));0));"")
Tesekkurler fakat kullandigim Excel ingilizce.
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,596
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
İngilizcesi,

Kod:
IFERROR(INDEX(TRIM(MID(SUBSTITUTE(" "&INDEX($A$1:$A$100,LARGE(--ISNUMBER(FIND(E2,$A$1:$A$100,1))*ROW($A$1:$A$100),3-COLUMN(A1)))," ",REPT(" ",255)),ROW($A$1:$A$99)*255,255)),MATCH($E2&"*",TRIM(MID(SUBSTITUTE(" "&INDEX($A$1:$A$100,LARGE(--ISNUMBER(FIND($E2,$A$1:$A$100,1))*ROW($A$1:$A$100),3-COLUMN(A1)))," ",REPT(" ",255)),ROW($A$1:$A$99)*255,255)),0)),"")
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Merhaba.

Formül ile sonuç elde etmek için alternatif olsun.
-- F2 hücresine;
=PARÇAAL(KAYDIR($A$1;KAÇINCI("*"&$E2&"*";DOLAYLI("A2:A"&KAÇINCI("YOU HAVE"&"*";$A:$A;0)-1);0);0);BUL(E2;KAYDIR($A$1;KAÇINCI("*"&$E2&"*";DOLAYLI("A2:A"&KAÇINCI("YOU HAVE"&"*";$A:$A;0)-1);0);0));7)
-- G2 hücresine;
=PARÇAAL(KAYDIR($A$1;KAÇINCI("*"&$E2&"*";DOLAYLI("A"&KAÇINCI("YOU HAVE"&"*";$A:$A;0)+1&":A"&KAÇINCI("ZZZ";$A:$A;1));0)+KAÇINCI("YOU HAVE"&"*";$A:$A;0)-1;0);BUL(E2;KAYDIR($A$1;KAÇINCI("*"&$E2&"*";DOLAYLI("A"&KAÇINCI("YOU HAVE"&"*";$A:$A;0)+1&":A"&KAÇINCI("ZZZ";$A:$A;1));0)+KAÇINCI("YOU HAVE"&"*";$A:$A;0)-1;0));7)
 
Katılım
12 Mart 2009
Mesajlar
119
Excel Vers. ve Dili
Office 365 - Ingilizce
Tesekkurler Omer bey.

Sn. Ziynettin soyleyecek soz bulamiyorum, harikasiniz :) iste budur! Sonsuz tesekkurler!
 
Üst