Dies kann zu kompliziert sein - in dem Fall, dass ich auf das Reißbrett würde zurückgehen und eine vollständige VBA-Version, aber zunächst suchte ich nach einer Herausforderung, eine Lösung nur mit Formeln zu konstruieren. Unglücklicherweise scheint es keinen auf Standardformeln basierenden Ansatz zum Verketten einer variablen Anzahl von Zellen zu geben.
Also, um dies zu erreichen, habe ich eine Funktion:
Function CombineRange(ByRef rng As Range, ByVal delim As String)
Dim arr
Dim i As Long
arr = rng.Value
CombineRange = ""
For i = 1 To UBound(arr)
If i > 1 Then
CombineRange = CombineRange & delim
End If
CombineRange = CombineRange & arr(i, 1)
Next i
End Function
Annahmen:
- Ihre Daten in einem Blatt namens "YourData"
- Ihre fusionierte Datenspalte ist ein
- Ihre „einreihig“ Daten Spalte B
- Zeile 1 eine Art von Kopfzeile ist.
Als nächstes vier Spalten auf ein neues Blatt einrichten (ich nenne es "Komprimiert")
A - Startzeile = (erste Reihe), was Reihe Ihrer Daten beginnen (2 , in unserem Fall)
A - Startzeile = (alle anderen) A2+B2
B - Offset = {IFERROR(MATCH(FALSE,ISBLANK(INDIRECT(ADDRESS(A2+1,1,,,"YourData")&":A200")),0),0)}
Hinweis: Dies ist eine Array-Funktion, so müssen Sie Verschiebung tun + Geben Sie, wenn es
C Eingabe - Ebene 1 = =INDEX(YourData!A:A,A2)
D - Combined Stufe 2 = =IF(B2<=1, INDIRECT(ADDRESS(A2,2,,,"YourData")), CombineRange(INDIRECT(ADDRESS(A2,2,,,"YourData")&":"&ADDRESS(A2+B2-1,2)),"; "))
Was ist die maximale Menge an Zusammenführung in der ersten Spalte? Sind es immer ein oder zwei Zeilen? Oder könnte es drei oder noch mehr sein? –
Es ist unterschiedlich. Das Maximum, das ich habe, ist 20 Zeilen mit der gleichen linken Spalte Zelle, das kleinste ist keine Duplikate. –
Ok. Ich habe eine Version, die für zwei Kombinationen ausmacht, aber ich denke, wenn man mehr als das gehen will, VBA würde es leichter machen. Es wird also nicht unbedingt alles in Formeln sein. –