• DİKKAT

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

Excel'de Satır birleştirme

Katılım
10 Ocak 2012
Mesajlar
3
Excel Vers. ve Dili
excel 2010 türkçe
Aşağıdaki tabloda Evrak numarası aynı olan stok kodlarının yan yana aynı satıra gelmesini istiyorum.

Evrak Stok Kodu
0097-1/2016 H2257
0097-1/2016 Z.DRX3000
0097-2/2016 H1300
0097-2/2016 H1287
0097-2/2016 H0570
0097-2/2016 Z.DRX3000
0097-3/2016 H0392


Yani şu şekilde olmalı:

Evrak Stok Kodu-1 Stok Kodu-2 Stok Kodu-3 Stok Kodu-4 Stok Kodu-5
0097-1/2016 H2257 Z.DRX3000
0097-2/2016 H1300 H1300 H1287 H0570 Z.DRX3000
0097-3/2016 H0392


Nasıl yapılabilir? Pivot tablo , makro, ya da başka bir şekilde yapılabilir mi? Liste bu kadar kısa olmuyor bu arada. Ben bir kesit aldım.
 
Merhaba. Foruma hoşgeldiniz.

Formül ile elde edilen bir öneride bulunmak istedim.
Verileriniz birinci satır başlık satırı olmak üzere A:B sütunlarında ise;
.
-- C2 hücresine aşağıdaki formülü uygulayın ve aşağı doğru listeniz boyunca kopyalayın;
Kod:
=EĞER($A2=$A1;"";$A2)

-- D2 hücresine aşağıdaki formülü uygulayın,
... boş sonuç elde edinceye kadar sağa doğru;
(örneğin A sütununda en çok tekrarlanan veri 10 kez yer alıyorsa sağa doğru M sütununa kadar -yani 10 sütun-)
... listenin sonuna kadar aşağı doğru kopyalayın;
Kod:
=EĞER($A2=$A1;"";EĞER(SÜTUNSAY($D$1:D1)>EĞERSAY($A:$A;$A2);"";DOLAYLI("B"&SÜTUNSAY($D$1:D1)+1)))
 
Kod:
Sub test()
    Application.ScreenUpdating = False
    al = Range(Range("A2"), Range("B" & Rows.Count).End(xlUp)).Value

    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare

        For i = LBound(al) To UBound(al)
            key = al(i, 1)
            If Not .exists(key) Then
                .Add key, al(i, 2)
            Else
                .Item(key) = .Item(key) & "|" & al(i, 2)
            End If
        Next i

        kys = .keys
        itms = .items
        [d:IV].ClearContents
        mx = 1
        For i = LBound(kys) To UBound(kys)
            Cells(i + 2, 4).Value = kys(i)
            bol = Split(itms(i), "|")
            If UBound(bol) + 1 > mx Then mx = UBound(bol) + 1
            Cells(i + 2, 5).Resize(, UBound(bol) + 1).Value = bol
        Next i
    End With
    [d1] = "Evrak"
    For i = 1 To mx
        Cells(1, 4 + i).Value = "Stok Kodu-" & i
    Next i
    Application.ScreenUpdating = True

End Sub
 
Merhaba,



Belirttiğiniz şekilde yaptım ama olmadı. Sonra ufak bir değişiklik yapınca oldu:

Kod:
=EĞER($A2=$A1;"";EĞER(SÜTUNSAY($D$1:D1)>EĞERSAY($A:$A;$A2);"";DOLAYLI("B"&SÜTUNSAY($D$1:D1)+1+(SATIRSAY($D$1:D2)-2))))

Teşekkürler.


Merhaba. Foruma hoşgeldiniz.

Formül ile elde edilen bir öneride bulunmak istedim.
Verileriniz birinci satır başlık satırı olmak üzere A:B sütunlarında ise;
.
-- C2 hücresine aşağıdaki formülü uygulayın ve aşağı doğru listeniz boyunca kopyalayın;
Kod:
=EĞER($A2=$A1;"";$A2)

-- D2 hücresine aşağıdaki formülü uygulayın,
... boş sonuç elde edinceye kadar sağa doğru;
(örneğin A sütununda en çok tekrarlanan veri 10 kez yer alıyorsa sağa doğru M sütununa kadar -yani 10 sütun-)
... listenin sonuna kadar aşağı doğru kopyalayın;
Kod:
=EĞER($A2=$A1;"";EĞER(SÜTUNSAY($D$1:D1)>EĞERSAY($A:$A;$A2);"";DOLAYLI("B"&SÜTUNSAY($D$1:D1)+1)))
 
Teşekkürler "veyselemre"
 
Geri
Üst