Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten zusammenfügen mit Bedingungen

Forumthread: Daten zusammenfügen mit Bedingungen

Daten zusammenfügen mit Bedingungen
24.03.2019 21:53:38
Jun
Hallo,
ich habe eine Aufgabe, und zwar, die Daten in Spalte A und B mit allen Möglichkeiten zusammenfügen und in Spalte C unter einer Reihenfolge darstellen. Z.B. Daten in Spalte A: a, b, c; Daten in Spalte B: 1, 2. Die Zielergebnisse in Spalte C sollte wie folgt darstellen: a1, a2, b1, b2, c1, c2. Kann jemand mir helfen, das durch VBA zu schaffen? Vielen Dank!
VG
Jun
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Am einfachsten ginge das wohl m. 2 VBA-basierten …
24.03.2019 23:27:17
Luc:-?
…UDFs (nutzerdefinierten Fktt), Jun,
die du sowohl in einer pluralen MatrixFml als auch einer SubProzedur anwenden könntest.
ZellFml in C1:C6: {=MTRANS(VSplit(VJoin(A1:A3&MTRANS(B1:B2);;-2)))}
Beide UDFs sind in dieser BspMappe zu finden: https://www.herber.de/bbs/user/99024.xlsm
Anderenfalls müsstest du darauf achten, dass ein ErgebnisVektor ausreichender Länge dimensioniert und dann sein Index in Abhän­gig­keit von den Indizes der beiden QuellBereiche gebildet wird.
Gruß, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
AW: Am einfachsten ginge das wohl m. 2 VBA-basierten …
30.03.2019 09:39:28
Jun
vielen Dank, habe es geschafft. : )
AW: Am einfachsten ginge das wohl m. 2 VBA-basierten …
30.03.2019 09:39:30
Jun
vielen Dank, habe es geschafft. : )
Gratuliere! ;-] owT
30.03.2019 15:48:19
Luc:-?
:-?
Anzeige
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
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige