• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Samenvoegen van meerdere regels naar 1 regel

Status
Niet open voor verdere reacties.

Timooooooh

Gebruiker
Lid geworden
31 mei 2017
Berichten
6
Goedemorgen,

In de bijlage zitten 2 Excel documenten, het Vraag1 document is het "origineel" dat we graag willen aanpassen.
Zoals te zien is zijn er voor sommige adressen meerdere regels, wij willen die graag samenvoegen tot 1 regel.
Hiervoor is alleen de volledige naam, de code, het adres, de postcode en de woonplaats belangrijk (zie bijvoorbeeld Vraag2 document).
Bij het Vraag2 document zijn de verschillende namen van hetzelfde adres in 1 regel geplaatst.

Regels 9 t/m 11 van het Vraag1 document zijn samengevoegd tot 1 regel (regel 7 Vraag2 document).

Is het mogelijk dit automatisch in te richten met behulp van filters/formules in Excel zodat dit niet handmatig moet gebeuren?
Alvast bedankt.
 

Bijlagen

Als VBA geen probleem is ...

De code kan vast netter/ beter/ sneller, maar m.i. werkt dit. Plak de code in Vraag1.xls in VB en creëer een tweede tabblad genaamd "Blad2" (anders code hierop aanpassen). Pas de range van in te lezen adressen aan (nu A2:K11) en draaien maar:
Code:
Sub GroupAddress()
Dim myArr As Variant
Dim myIndex As Variant
Dim i As Long
Dim j As Long
Dim k As Long
Dim rijOut As Long
Dim wsOut As Worksheet

Set wsOut = ThisWorkbook.Worksheets("Blad2")
myArr = ThisWorkbook.Worksheets("Blad1").Range("A2:K11")
ReDim myIndex(1 To UBound(myArr, 1))
For i = 1 To 10
    myIndex(i) = myArr(i, 7) & myArr(i, 8) & myArr(i, 9)
Next i
For i = 1 To 10
    rijOut = wsOut.Cells(wsOut.Rows.Count, "A").End(xlUp).Row + 1
    j = UBound(Filter(myIndex, myArr(i, 7) & myArr(i, 8) & myArr(i, 9)))
    wsOut.Cells(rijOut, 11) = myArr(i, 7)
    wsOut.Cells(rijOut, 12) = myArr(i, 8)
    wsOut.Cells(rijOut, 13) = myArr(i, 9)
    For k = 0 To j
        wsOut.Cells(rijOut, 1 + k * 2) = myArr(i + k, 6)
        wsOut.Cells(rijOut, 2 + k * 2) = myArr(i + k, 10)
    Next k
    i = i + k - 1
Next i
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan