Sayısal verileri karşılaştırma

Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
A ve B sütunlarında ki sayısal verileri karşılaştırıp aynı olanlari G sütununa yazdırmak istiyorum. Yardımlarınız için şimdiden teşekkürler
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,361
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
Sub test()
    Dim Bak As Integer
    For Bak = 1 To Cells(Rows.Count, "A").End(xlUp).Row
         If Cells(Bak, "A") = Cells(Bak, "B") Then Cells(Bak, "G") = Cells(Bak, "A")
    Next
End Sub
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Merhaba.

Kod:
Sub test()
    Dim Bak As Integer
    For Bak = 1 To Cells(Rows.Count, "A").End(xlUp).Row
         If Cells(Bak, "A") = Cells(Bak, "B") Then Cells(Bak, "G") = Cells(Bak, "A")
    Next
End Sub
Sayın dalgalikur benzer veriler aynı satirda olursa buluyor ancak farklı satır larda olursa bulmuyor
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,361
Excel Vers. ve Dili
2019 Türkçe
Örneğin; A5 hücresinde 10, B25 hücresinde de 10 yazıyorsa G sütununda hangi satıra ne yazmak istiyorsunuz?
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Örneğin; A5 hücresinde 10, B25 hücresinde de 10 yazıyorsa G sütununda hangi satıra ne yazmak istiyorsunuz?
Yani A ve B sutunundaki benzerleri G sütununda listelesin istiyorum Benzerlerin bulunduğu satırlar farklı olabilir
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,361
Excel Vers. ve Dili
2019 Türkçe
Deneyin.

Kod:
Sub test()
    Dim Bak As Integer
    Dim Bul As Range
    For Bak = 1 To Cells(Rows.Count, "A").End(xlUp).Row
         Set Bul = Range("A:A").Find(Cells(Bak, "B"), lookat:=xlWhole)
         If Not Bul Is Nothing Then
            If Not Bul.Text = "" Then Cells(Cells(Rows.Count, "G").End(xlUp).Row + 1, "G") = Bul.Text
         End If
    Next
End Sub
 
Katılım
1 Ağustos 2019
Mesajlar
839
Excel Vers. ve Dili
Türkçe excel 2016
İngilizce excel 2016
Altın Üyelik Bitiş Tarihi
19-10-2021
Deneyin.

Kod:
Sub test()
    Dim Bak As Integer
    Dim Bul As Range
    For Bak = 1 To Cells(Rows.Count, "A").End(xlUp).Row
         Set Bul = Range("A:A").Find(Cells(Bak, "B"), lookat:=xlWhole)
         If Not Bul Is Nothing Then
            If Not Bul.Text = "" Then Cells(Cells(Rows.Count, "G").End(xlUp).Row + 1, "G") = Bul.Text
         End If
    Next
End Sub
Teşekkürler sayın dalgalikur
 

Korhan Ayhan

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

Doğru sorguyu yazdığıma emin olamadım. Deneyip sonucu bildirir misiniz?

C++:
Option Explicit

Sub Ortak_Olanlari_Listele()
    Dim Dosya As String, Baglanti As Object, Kayit_Seti As Object
    Dim Sorgu As String, S1 As Worksheet, Zaman As Double
  
    Zaman = Timer
  
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
  
    Set Baglanti = CreateObject("AdoDb.Connection")
    Set Kayit_Seti = CreateObject("AdoDb.Recordset")
    Set S1 = Sheets("Sayfa1")
  
    Dosya = ThisWorkbook.FullName
  
    S1.Range("G:G").Clear
    S1.Range("G1") = "Ortak Olanlar"
    S1.Range("G1").Font.Bold = True
  
    Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    Dosya & ";Extended Properties=""Excel 12.0;Hdr=Yes"""
      
    Sorgu = "Select Distinct SütunA.[Başlık1] " & _
            "From [Sayfa1$] As SütunA " & _
            "Left Join [Sayfa1$] As SütunB " & _
            "On SütunA.[Başlık1] = SütunB.[Başlık2] " & _
            "Where SütunA.[Başlık1] = SütunB.[Başlık2] " & _
            "Order By SütunA.[Başlık1] Asc"
  
    Kayit_Seti.Open Sorgu, Baglanti, 1, 1
    If Kayit_Seti.RecordCount > 0 Then
        S1.Range("G2").CopyFromRecordset Kayit_Seti
        S1.Columns.AutoFit
    End If
  
    If Kayit_Seti.State <> 0 Then Kayit_Seti.Close
    If Baglanti.State <> 0 Then Baglanti.Close
  
    Set Kayit_Seti = Nothing
    Set Baglanti = Nothing
    Set S1 = Nothing
          
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
  
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub
 

Ekli dosyalar

Üst