AW: Daten zusammenfügen mit Bedingungen
25.03.2019 00:32:02
Daniel
Hi
im Prinzip brauchst du dafür kein VBA oder zusätzliche benutzterdefinierte Funktionen (UDFs)
es reicht folgende Formel in C1, welche du soweit wie benötigt nach unten ziehst:
=INDEX(A:A;GANZZAHL((ZEILE(A1)-1)/ANZAHL2(B:B))+1)&INDEX(B:B;REST(ZEILE(A1)-1;ANZAHL2(B:B))+1)
wenns per Makro sein soll, wäre es am einfachsten, diese Formel per Makro in die Zellen einzutragen:
Sub test1()
With Cells(1, 3).Resize(WorksheetFunction.CountA(Columns(1)) * WorksheetFunction.CountA(Columns( _
2)), 1)
.FormulaR1C1 = "=INDEX(C1,INT((ROW()-1)/COUNTA(C2))+1)&INDEX(C2,MOD(ROW()-1,COUNTA(C2))+1)"
.Formula = .Value
End With
End Sub
eine reine VBA-Lösung, dh ohne Verwendung von Excelformeln, würde dann so aussehen:
Sub test2()
Dim A, B, C
Dim zA As Long, zB As Long
A = Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Value
B = Range(Cells(1, 2), Cells(1, 2).End(xlDown)).Value
ReDim C(1 To UBound(A, 1) * UBound(B, 1), 1 To 1)
For zA = 1 To UBound(A, 1)
For zB = 1 To UBound(B)
C((zA - 1) * UBound(A, 1) + zB, 1) = A(zA, 1) & B(zB, 1)
Next
Next
Cells(1, 3).Resize(UBound(C, 1), 1) = C
End Sub
Gruß Daniel