• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Kısmi Mükerrerliği tamamlamak...

Katılım
24 Ağustos 2007
Mesajlar
74
Excel Vers. ve Dili
işte excel 2003 Türkçe
evde excel 2007 Türkçe
2. satırda a dışındaki b, c, d ve e hücreleri mükerrer ise a hücresinin de mükerrer olmasının sağlanmasını istiyorum. Böylece mükerrer kayıtları bir arada görmeği umuyorum. Daha doğrusu b, c, d ve e leri mükerrer olanların ilk a'daki no'yu almalarını istiyorum. Örnekle daha iyi anlatmış olabilirim. Saygılarımla...
 
Son düzenleme:
Ekini unutmuşum, özür dilerim...
2. satırda a dışındaki b, c, d ve e hücreleri mükerrer ise a hücresinin de mükerrer olmasının sağanmasını istiyorum. Böylece mükerrer kayıtları bir arada görmeği umuyorum. Örnekle daha iyi anlatmış olabilirim. Saygılarımla...
 

Ekli dosyalar

Selamlar,

Eğer amacınız mükerrer kayıtları tesbit etmekse aşağıdaki formülü kullanabilirsiniz.

F2 hücresine uygulayın. Ve aşağıya doğru sürükleyin.

Kod:
=EĞER(TOPLA.ÇARPIM(--($B$2:$B$1000&$C$2:$C$1000&$D$2:$D$1000&$E$2:$E$1000=B2&C2&D2&E2))>1;"MÜKERRER";"")
 
Sayın Hocam amacım mükerreri bulmak değil, mükerrerlerin başlangıç nosunu aynı yapmak ve a sütununu süzerek altalta getirmek. Örneğimize dönersek son satırı 2.satırın altına getirmek.
 
Tam olmadı...

Sayın Muygun, fazlaca süren gecikmem için özür dilerim. Fakat ben ayrı bir yerde yapmak istemiyorum. A hücresinde mükerrerlik sağlansın istiyorum. Sorunum çözümlenmediği için gündemde tutuyorum. İlgilenen Uzmanlara teşekkür ederim. Saygılarımla...
 
Selamlar,

A2 hücresine aşağıdaki formülü uygulayıp denermisiniz.

Kod:
=EĞER($B2="";"";EĞER(EMETİNSE(DOLAYLI(ADRES(SATIR()-1;1)));1;EĞER(TOPLA.ÇARPIM(--($B$2:$B2&$C$2:$C2&$D$2:$D2&$E$2:$E2=$B2&$C2&$D2&$E2))>1;İNDİS($A$2:$A2;TOPLA.ÇARPIM((KAÇINCI($B2&"@"&$C2&"@"&$D2&"@"&$E2;$B$2:$B2&"@"&$C$2:$C2&"@"&$D$2:$D2&"@"&$E$2:$E2;0))));MAK($A$1:$A1)+1)))
 
Teşekkürler

Sayın Korhan Bey, umutsuzluğa düştüğüm andı. Çok güzel oldu. Şimdi veriler az işimi görüyor. Veriler artınca kodunu isteyebilir. Konunun bütünlüğü açısından kodunu da yazbilirmisiniz? Olmazsa da teşekkür ederim. Sağolun...
 
Selamlar,

Zaten ilk mesajımdaki formülü önermemdeki sebepte buydu. Verileriniz arttıkça bu tarz formüller çalışmanıza engel olmaya başlayacaktır. Makrolu yöntem için sayfaya verileri girdikçe çalışan bir kodmu istersiniz? Yoksa bir buton aracılığı ile veri girişini tamamladıktan sonra çalışacak bir kodmu istersiniz?
 
Sayın Korhan Ayhan, buton olmasın; veri girdikçe çalışan bir kod olsun diyorum. Ama çok ta mahcup oluyorum. Teşekkür etmek eksiklenmemi gidermedi. Sağolun...
 
Selamlar,

Aşağıdaki kodu sayfanızın kod bölümüne uygulayıp denermisiniz. B-C-D-E sütunlarına veri girişiniz tamamlandığında kod otomatik olarak çalışacaktır.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim BUL As Range, ADRES As String, KONTROL As Boolean
    
    On Error GoTo Son
    
    If Intersect(Target, [B2:E65536]) Is Nothing Then Exit Sub
    If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
    
    If WorksheetFunction.CountA(Range(Cells(Target.Row, 2), Cells(Target.Row, 5))) = 4 Then
    
        If WorksheetFunction.CountIf(Range("B1:B" & Target.Row), Target) = 1 Then
            Cells(Target.Row, 1) = WorksheetFunction.Max(Range("A1:A" & Target.Row - 1)) + 1
            GoTo Son
        End If
    
        Set BUL = Range("B1:B" & Target.Row - 1).Find(Cells(Target.Row, 2), LookAt:=xlWhole)
        If Not BUL Is Nothing Then
        ADRES = BUL.Address
        Do
            If Cells(BUL.Row, 3) = Cells(Target.Row, 3) And _
            Cells(BUL.Row, 4) = Cells(Target.Row, 4) And _
            Cells(BUL.Row, 5) = Cells(Target.Row, 5) Then
            Cells(Target.Row, 1) = Cells(BUL.Row, 1)
            KONTROL = True
            End If
        Set BUL = Range("B1:B" & Target.Row - 1).FindNext(BUL)
        Loop While Not BUL Is Nothing And BUL.Address <> ADRES
    
        If KONTROL = False Then
            Cells(Target.Row, 1) = WorksheetFunction.Max(Range("A1:A" & Target.Row - 1)) + 1
        End If
    
        End If
    End If
Son:
        Set BUL = Nothing
End Sub
 
Teşekkür Ederim.

Sayın Korhan Ayhan, yazdığınız kod işimi gördü. Herşey daha kolaylaştı. Geciken teşekkürüm için özür diler, herşeyin gönlünüzce sağlık içinde olmasını dilerim. Saygılarımla...:)
 
Geri
Üst