Clever-Excel-Forum

Normale Version: Verketten mehrere Zellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, 

Ich bin in Excel nicht ganz so fit wie manch andere hier :)

Ich habe folgendes Problem:
Ich bekomme ein File mit 2 Spalten. Spalte A: Materialnummern, Spalte B: Kommentare

[attachment=5500]

In Spalte A können mehrere Zeilen mit derselben Materialnummer vorkommen. 

Ziel ist es, für jede Materialnummer nur eine Zeile zu haben, in der alle hinterlegten Kommentare verkettet sind. Gerne kann auch bei der Verkettung der Zeilen ein Platzhalter in Form von "/" verwendet werden.

[attachment=5501]

Hat jemand eine Idee wie ein solches Makro aussehen könnte?

Für jeden Tipp wäre ich euch sehr dankbar!
Das kann bsphaft so aussehen, Maky:
ABCDEF
11002zeta1000alpha/beta/gamma/delta
21000alpha1001epsilon/vau
31000beta1002zeta/eta/theta
41002eta1004iota
51000gamma
61001epsilonC1[:C4]:=KKLEINSTE(VSplit(VJoin(A$1:A$10;;-1);;1;1);ZEILE())
71000deltaD1[:D4]: {=VJoin(WENN(A$1:A$10=C1;B$1:B$10;"");"/";-1)}
81001vau
91004iotaVerketten mehrere Zellen
101002thetaClever-Xl, mr.Maky
Die UDFs bitte im Herber-Archiv suchen - letztpubliziert Version 1.4 (VJoin, nur in hochgeladenen BspDateien) bzw 1.1 (VSplit, hier aber 1.3 verwendet mit Arg4, das es in 1.1 nicht gibt - dafür dann zusätzlich MTRANS um diesen Formelteil herum). Die Formel in D ist eine singulare (1zellige) Matrixformel (Eingabeform beachten!).
Bei bekundetem Interesse kann ich auch die aktuellen Versionen (1.5 bzw 1.3) hier einstellen.

Morrn, Castor
Hallöchen,

für eine "Zahlenliste" kannst Du auch die Formellösung für "Ermittlung Kleinster Wert größer oder gleich Suchkriterium" nehmen, zu finden auf excelformeln.de - Formeln - Verweisfunktionen ... (Formel 38)

Wenn Du Deine Materialliste sortierst und die Zieldaten auch in einzelnen Spalten stehen dürfen, kannst Du von der gleichen Seite die Formellösung zu "Senkrecht aufgebaute Tabelle zeilenweise umsortieren" verwenden (Formel 164)

Anbei mal auf das Beispiel von Castor angepasst. Die Formeln aus Zeile 2 dann einfach nach unten ziehen und die aus Spalte e so weit nach rechts wie nötig. Spalte C ist eine Hilfsspalte für die Formel 164, siehe excelformeln.de

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHIJ
11000alpha11000alphabetagammadelta  
21000beta51001epsilonvau    
31000gamma71002zetaetatheta   
41000delta101004iota     
51001epsilon11       
61001vau11       
71002zeta11       
81002eta11       
91002theta11       
101004iota11       

ZelleFormel
C1=WENNFEHLER(WENN(D1="";ANZAHL2(B:B)+1;VERGLEICH(D1;A:A;0));"")
D1=MIN(A:A)
E1=WENN(SPALTE()-4>$C2-$C1;"";INDEX($B:$B;SPALTE()-4+$C1-1))
C2=WENNFEHLER(WENN(D2="";ANZAHL2(B:B)+1;VERGLEICH(D2;A:A;0));"")
D2=WENNFEHLER(INDEX(A:A;VERGLEICH(KGRÖSSTE(A:A;ZÄHLENWENN(A:A;">"&D1));A:A;0));"")
E2=WENN(SPALTE()-4>$C3-$C2;"";INDEX($B:$B;SPALTE()-4+$C2-1))
Hi André,

Zitat:Wenn Du Deine Materialliste sortierst und die Zieldaten auch in einzelnen Spalten stehen dürfen

sollen wohl eher nicht:  :32:


Zitat:Ziel ist es, für jede Materialnummer nur eine Zeile zu haben, in der alle hinterlegten Kommentare verkettet sind. Gerne kann auch bei der Verkettung der Zeilen ein Platzhalter in Form von "/" verwendet werden.
Hallo Günter,

dann würde ich in Spalte XYZ oder etwas weiter vorne verketten (ich weiß, geht nur bis XFD Smile
Hallo zusammen, 

danke schon einmal, dass ihr euch die Mühe macht und Zeit nehmt für meine Frage.


Castors Antwort scheint das zu sein, was ich gesucht habe. Aber leider verstehe ich die Beschreibung nicht  :s
Wäre es euch möglich mir die Antwort evtl. etwas vereinfachter zu beschreiben?
Da sich niemand für die neueren Versionen zu interessieren scheint, hier anstelle der gewünschten ausführlicheren Beschreibung das Bsp nochmals, aber in 2 Varianten mit Link auf eine (andere) BspDatei:
ABCDEF
1Variante für rein numerische KNr (Ergebnis nach KNr sortiert)
21002zeta1000alpha/beta/gamma/delta
31000alpha1001epsilon/vau
41000beta1002zeta/eta/theta
51002eta1004iota
61000gamma
71001epsilonC2[:C5]:=KKLEINSTE(VSplit(VJoin(A$2:A$11;;-1);;1);ZEILE(A1))
81000deltaD2[:D5]: {=VJoin(WENN(A$2:A$11=C2;B$2:B$11;"");"/";-1)}
91001vau
101004iotaVSplit, Vs1.1, u.VJoin, Vs1.4, in folgd BspDatei enthalten:
111002thetahttp://www.herber.de/bbs/user/99024.xlsm
12Variante für alfa-numerische KNr (Ergebnis in Reihenfolge d.KNr-Auftretens)
13KN1002zetaKN1002zeta/eta/theta
14KN1000alphaKN1000alpha/beta/gamma/delta
15KN1000betaKN1001epsilon/vau
16KN1002etaKN1004iota
17KN1000gamma
18KN1001epsilonC13[:C16]:=INDEX(VSplit(VJoin(A$13:A$22;;-1));ZEILE(A1))
19KN1000deltaD13[:D16]: {=VJoin(WENN(A$13:A$22=C13;B$13:B$22;"");"/";-1)}
20KN1001vau
21KN1004iota
22KN1002thetaVerketten mehrere ZellenClever-Xl, mr.Maky
Viel Erfolg, Castor
oder:


Code:
Sub M_snb()
  sn = Cells(1).CurrentRegion.Resize(, 2)
 
  With CreateObject("scripting.dictionary")
      For j = 1 To UBound(sn)
         .Item(sn(j, 1)) = .Item(sn(j, 1)) & "/" & sn(j, 2)
      Next
      
      Cells(1, 3).Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
  End With
End Sub