Şimdi Ara

Excel 2 Sütun Verileri Eleme YARDIM

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
694
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba Arkadaşlar,
    Benim için büyük, Excel Proları için basit bir adımdayım. Yardımlarınızı bekliyorum.
    Excel'de A sütunundaki yinelenen verileri B sütunundaki sadece 1 veya 0 karsılığı olan varsa silmek istiyorum. Ancak A sütununda yinelenen verilerde 3 satırın B sütunundaki karşılığı 2'si "1" ve 1 taneside "0" ise bunlar ellenmeyecek.

    Örnek olarak
    Excel 2 Sütun Verileri Eleme YARDIM







  • önce dosyanızın yedeğini alın.
    şu makroyu deneyin.
    Sub AyniSatirlariSil()
    'Makro: Mesut Akcan
    '22/8/2020
    'makcan@gmail.com
    'akcansoft.blogspot.com
    'hiç bir garanti içermez
    'tüm sorumluluk kullanıcıya aittir.
    sr = Cells(Rows.Count, 1).End(xlUp).Row 'son dolu satır
    For r = 2 To sr
    a = 0 'artan
    t = 0
    Do
    a = a + 1 'sonraki satır
    '1.sütunda, alttaki hücre ile eşit ise
    If Cells(r, 1) = Cells(r + a, 1) Then
    eşit = True
    'toplam eşit hücre sayısı. 1.sütun
    t = t + 1
    Else
    eşit = False
    End If
    Loop Until eşit = False
    a = 0 'artan
    t2 = 0
    If t > 0 Then '1. sütunda eşitlik varsa
    Do
    a = a + 1 'sonraki satır
    '2.sütunda alttaki hücre ile eşit ise
    If Cells(r, 2) = Cells(r + a, 2) Then
    eşit = True
    'toplam eşit hücre sayısı. 2.sütun
    t2 = t2 + 1
    '2. sütunlardaki eşitlik 1. sütun sayısı kadarsa
    'döngüden çık
    If t2 = t Then Exit Do
    Else
    eşit = False
    End If
    Loop Until eşit = False
    End If
    '1. ve 2. sütundaki eşit hücreler var ve aynı sayıdaysa
    If t > 0 And (t = t2) Then
    For x = 0 To t
    Cells(r + x, 3).Value = "X" '3. sütuna X yaz
    tx = tx + 1
    Next
    '1. sütundaki aynı hücre sayısı kadar satır atla
    r = r + t
    End If
    DoEvents
    Next
    If tx > 0 Then 'işaretli satır varsa
    c = MsgBox("X işaretli satırlar silinsin mi?", vbYesNo)
    If c = vbYes Then
    For r = sr To 2 Step -1
    If Cells(r, 3).Value = "X" Then
    Rows(r).Delete 'satırı sil
    End If
    DoEvents
    Next
    End If
    End If
    MsgBox "İşlem tamam"
    End Sub




  • Küçük bir hata olmuş. Düzelttim
    Sub AyniSatirlariSil3()
    'Makro: Mesut Akcan
    '22/8/2020
    'makcan@gmail.com
    'akcansoft.blogspot.com
    'hiç bir garanti içermez
    'tüm sorumluluk kullanıcıya aittir.
    sr = Cells(1, 1).End(xlDown).Row 'son satır
    For r = 2 To sr
    a = 0 'artan
    t = 0
    Do
    a = a + 1 'sonraki satır
    '1.sütunda, alttaki hücre ile eşit ise
    If Cells(r, 1).Value = Cells(r + a, 1).Value Then
    'toplam eşit hücre sayısı. 1.sütun
    t = t + 1
    Else
    'eşitlik yoksa döngüden çık
    Exit Do
    End If
    Loop
    a = 0 'artan
    t2 = 0
    If t > 0 Then '1. sütunda eşitlik varsa
    Do
    a = a + 1 'sonraki satır
    '2.sütunda alttaki hücre ile eşit ise
    If Cells(r, 2) = Cells(r + a, 2) Then
    'toplam eşit hücre sayısı. 2.sütun
    t2 = t2 + 1
    '2. sütunlardaki eşitlik 1. sütun sayısı kadarsa
    'döngüden çık
    If t2 = t Then Exit Do
    Else
    'eşitlik yoksa döngüden çık
    Exit Do
    End If
    Loop
    End If

    '1. ve 2. sütundaki eşit hücreler var ve aynı sayıdaysa
    If t > 0 And (t = t2) Then
    For x = 0 To t
    Cells(r + x, 3).Value = "X" '3. sütuna X yaz
    Xvar = True
    Next
    End If
    '1. sütundaki aynı hücre sayısı kadar satır atla
    r = r + t
    DoEvents
    Next
    If Xvar Then 'X işaretli satır varsa
    c = MsgBox("X işaretli satırlar silinsin mi?", vbYesNo)
    If c = vbYes Then
    For r = sr To 2 Step -1
    If Cells(r, 3).Value = "X" Then
    'Hücrede X varsa satırı sil
    Rows(r).Delete
    End If
    DoEvents
    Next
    msg = "Satırlar silindi!" & vbCr
    End If
    Else
    msg = "Silinecek satır yok!" & vbCr
    End If
    MsgBox msg & "İşlem tamam"
    End Sub




  • Teşekkürler yardımlarınız için sorun çözüldü
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.