Sütunda "ad soyad" arama

Katılım
10 Aralık 2007
Mesajlar
17
Excel Vers. ve Dili
excel 2007 türkçe
Merhaba,
Elimde tane liste var. 2 si de isim ve soy isimlerden oluşuyor. Fakat listenin birinde isim ve soyisimlerin sağında ve solunda( "Sn. Ömer Yılmaz hesaptan havale" gibi) başka kelimeler mevcut. Yapmak istediğim, fonksiyon kullanarak, diğer listedeki isimleri bu karışık olan listede aratmak ve bulunanları tespit etmek.Daha anlaşılır olması açısından örnek dosya ekliyorum.Yardımlarınızı bekliyorum.
Teşekkürler.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Alternatif olarak makrolu çözüm

Karşılaştırılan isimlerin hangi satırlarda olduğunu verir.

Kod:
Sub Karsilastir()
Application.ScreenUpdating = False
On Error Resume Next
Range("C2:C65536").ClearContents
Son = [A65536].End(3).Row
For i = 2 To [B65536].End(3).Row
    For j = 2 To Son
        Değer = Application.WorksheetFunction.Trim(Cells(j, "A"))
        Buldum = 0
        Buldum = Application.WorksheetFunction.Search(Cells(i, "B"), Değer)
        If Buldum > 0 Then
            Cells(i, "C") = Cells(i, "C") & "->" & j
        End If
    Next j
Next i
MsgBox "Karşılaştırma Sona Ermiştir....", vbOKOnly, "[URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
End Sub
 
Katılım
10 Aralık 2007
Mesajlar
17
Excel Vers. ve Dili
excel 2007 türkçe
Teşekkür ederim.

Teşekkür ederim. Çok iyi çalışıyor.
 
Katılım
10 Aralık 2007
Mesajlar
17
Excel Vers. ve Dili
excel 2007 türkçe
Isim Arama

Makro ile vermiş olduğunuz çözüm çok daha pratik ve hızlı çalışıyor. Özellikle karşılaştırılan isimlerin hangi satırlarda olduğunu veriyor olması çok işime yaradı.
Bu noktada merak ettiğim bir şeyi sormak istiyorum. Amacım A sütunundaki hangi isimlerin bulunamadığını da belirlemek ve onları listeden çıkartmak, bunun için C sütununa "VAR" veya "YOK" yazan fakat bunun yanında da D sütununa, hangi satıların bulunduğunu yazan bir makro yapabilirmisiniz. Fakat satır numarasını B sütunundaki isme göre değil A sütundaki isme göre yazması gerekli ki, A sütununda bulunamayanları süzerek ayıklayabileyim.
Yardımlarınız için çok teşekkür ederim.
Saygılar,
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
B sütununda aranan kişi A sütununda var mı?

Merhaba,

Programı aynı şekilde tutup, D sütununa Var yazdırıyorum. Anlamı D sütununda Var yazan A sütunundaki ismin var olduğu anlamındadır. D sütunu boş ise A sütunundaki kişi aranan kişiler listesinde yok demektir.

Denetimin rahat olması için de Aranılan kişileri küçükten büyüğe sıraya koydum.

Örneği inceleyiniz.

Kod:
Sub Karsilastir()
Application.ScreenUpdating = False
On Error Resume Next
Range("C2:D65536").ClearContents
Son = [A65536].End(3).Row
Range("B2:B" & [B65536].End(3).Row).Sort key1:=[B1]
For i = 2 To [B65536].End(3).Row
    For j = 2 To Son
        Değer = Application.WorksheetFunction.Trim(Cells(j, "A"))
        Buldum = 0
        Buldum = Application.WorksheetFunction.Search(Cells(i, "B"), Değer)
        If Buldum > 0 Then
            [COLOR=red][B]Cells(i, "C") = Cells(i, "C") & "->" & j[/B][/COLOR]
            Cells(j, "D") = "Var"
        End If
    Next j
Next i
MsgBox "Karşılaştırma Sona Ermiştir....", vbOKOnly, "[URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
End Sub
 
Son düzenleme:
Katılım
10 Aralık 2007
Mesajlar
17
Excel Vers. ve Dili
excel 2007 türkçe
Çok yavaşladı

Verdiğiniz dosyayı denedim çok teşekkür ederim.
Bendeki isim listesi yaklaşık 2500 kişilik. Hesaplama Süresi yaklaşık 30-35 dk. sürüyor. Süreyi kısaltmanın yolu var mıdır acaba? Mesela hangi satır olduğunu hesaplatmadan direk bi işaret koysak "*" veya "X" gibi.
Saygılar,
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

6 mesajda kırmızı olarak belirttiğimsatırı çıkartırsanız, sadece D sütununa Var yazar

Bu hızlandırır ama ne kadar hızlandırır açıkca bilmiyorum.

Denemek gerek.
 
Katılım
10 Aralık 2007
Mesajlar
17
Excel Vers. ve Dili
excel 2007 türkçe
Metin Arama

Denedim pek bişey değişmedi.
Herşey için teşekkür ederim.
 

Korhan Ayhan

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

Bu tür işlemlerde döngü yerine find komutunu kullanmak işlemi son derece hızlandıracaktır. Sebebi ise döngüde belirlenen aralıktaki tüm veriler kontrol edilerek sonuca ulaşılırken, find komutu ise belirlenen aralıkta direkt olarak aranan veriye odaklanarak aradaki diğer verileri gözardı ederek sonuca ulaşır.

Ekteki örnek dosyayı incelermisiniz.
 
Son düzenleme:
Katılım
10 Aralık 2007
Mesajlar
17
Excel Vers. ve Dili
excel 2007 türkçe
ÇOK Hızlandı.

Verdiğiniz örnek ile çok hızlı sonuç aldım (1 dakikanın altına indi.)
Çok Teşekkür ederim.
Acaba bu bulunan hücreyi A sütunundaki hücre adresi seviyesine taşımak mümkün müdür. (Örnek, "B2" hücresindeki "Zafer Taşdemirden" ismininin A sutununda "A23" hücresinde olduğunu tespit etmiş. Bu durumda "B2" hücresini "A23" seviyesine mesela "E23" kopyalatmak veya taşımak istiyorum, amacım satırları karşılıklı eşleştirmek)
Saygılar,
 

Korhan Ayhan

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

Üstteki mesajımdaki dosyayı güncelledim. İncelermisiniz.
 
Katılım
10 Aralık 2007
Mesajlar
17
Excel Vers. ve Dili
excel 2007 türkçe
Teşekkür ederim gayet iyi çalışıyor.

Teşekkür ederim gayet iyi çalışıyor.
 
Üst