• DİKKAT

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

Birden fazla değer geitrme

Bakigemlik

Altın Üye
Katılım
16 Ocak 2013
Mesajlar
674
Excel Vers. ve Dili
2010 Türkçe
Merhaba,

Ek dosya hakkında desteğinizi rica ederim,

Saygılarımla,
 

Ekli dosyalar

Formülle nasıl yapılır bilmiyorum maalesef ancak makroyla aşağıdaki çözümü ürettim. Bir modüle kopyalayıp deneyiniz.

Veri yapınıza bağlı olarak birden fazla döngü kullanıldığından veriler örnek dosyadaki gibi çok olduğunda makronun çalışması uzun sürmektedir.

Kod:
Sub FID()
son = Cells(Rows.Count, 1).End(3).Row
For i = 2 To WorksheetFunction.Max(2, son)
    If WorksheetFunction.CountIf(Range("AB2:A" & i), Cells(i, 1)) <= 1 Then
        Cells(i, 3) = Cells(i, 2)
    Else
        For j = 2 To WorksheetFunction.Max(2, i)
            If Cells(j, 1) = Cells(i, 1) Then
            sat = Cells(j, 2).End(xlToRight).Column + 1
            Cells(j, sat) = Cells(i, 2)
            j = i
            End If
        Next
    End If
Next
End Sub
 
. . .

14bin satır veri olunca işlem süresi uzun oluyor.

Kod:
Sub kod()
    Application.ScreenUpdating = False
    Range("C1:Z65536").ClearContents
    son = Cells(Rows.Count, "A").End(3).Row
    For i = 2 To Cells(Rows.Count, "A").End(3).Row
        süt = 3
        If WorksheetFunction.CountIf(Range("A2:A" & i), Cells(i, "A")) = 1 Then
            Set ara = Range("A1:A" & son).Find(Cells(i, "A"), , xlValues, xlWhole)
            If Not ara Is Nothing Then
                adres = ara.Address
                Do
                    Cells(i, süt) = Cells(ara.Row, "B")
                    Set ara = Range("A1:A" & son).FindNext(ara)
                    süt = süt + 1
                    Loop While Not ara Is Nothing And ara.Address <> adres
                End If
            End If
        Next i
        Application.ScreenUpdating = True
        MsgBox " B i t t i "
End Sub

. . .
 
Geri
Üst