Dynamische vertikale Zellenzusammenführung in VBA oder Makros

Dynamische vertikale Zellenzusammenführung in VBA oder Makros

Ich erhalte Daten mit einer Zeile für jeden bestellten Artikel pro Person, die ihn bestellt hat. Ich versuche, das auf nur eine Zeile der Person und eine Zusammenführung der bestellten Artikel zu konsolidieren

Originaldaten im Arbeitsblatt:
Originaldaten in der Tabelle

Das Endziel der Daten:
Das Endziel der Daten

Vom Betrachten Ihrer Antwort bis ... Makro zum Zusammenführen von Zellen in einer Spalte, wenn die gleichen Zeilen in einer anderen Spalte zusammengeführt werden

Ich habe eine Idee, was zu tun ist.

Ich könnte zunächst versuchen, alle Namen in einer Zelle zusammenzuführen, und dann habe ich die Situation in dem obigen Beitrag. Allerdings bin ich mir nicht sicher, wie ich das machen könnte. Wäre es eine if-Klausel A1=A2, A1&'', das funktioniert für mich im Moment nicht ganz.

Jede Hilfe wäre also großartig.

Antwort1

Die Kombination von UDF& SUBSTITUTEkann das Problem lösen:

Bildbeschreibung hier eingeben

Wie es funktioniert:

  • 0In Zelle einfügen I236und Formel in ZelleI237:

=IF(G236=G237,I236+1,0),fülle es aus.

  • Drücken Sie entwederAlt+F11 oderRKlicken Sie mit der rechten Maustaste aufSTab drücken und drückenVCode anzeigen zuÖStift VB-Editor.
  • Copy &Paste diesen VBA-Code alsMModul.

    Function SingleCellValue(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer, Char As String)
    
    Dim i As Long
    Dim xRet As String
    For i = 1 To LookupRange.Columns(1).Cells.Count
        If LookupRange.Cells(i, 1) = Lookupvalue Then
            If xRet = "" Then
                xRet = LookupRange.Cells(i, ColumnNumber) & Char
            Else
                xRet = xRet & "" & LookupRange.Cells(i, ColumnNumber) & Char
            End If
        End If
    Next
    SingleCellValue = Left(xRet, Len(xRet) - 1)
    End Function
    
  • Formel in Zelle schreibenH249:

=SingleCellValue(G249,G236:H246,2,",")

  • Endgültige Formel in ZelleI249:

=SUBSTITUTE(H249, "Cust. Order,", "", 1)

Füllen Sie die Formel nach unten aus.

Achtung

  • Aus Übersichtlichkeitsgründen können Sie später Werte in der Zelle ausblenden H249:H251.
  • Passen Sie die Zellbezüge in der Formel nach Bedarf an.

verwandte Informationen