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:
| A | B | C | D | E | F |
---|
1 | 1002 | zeta | 1000 | alpha/beta/gamma/delta |
---|
2 | 1000 | alpha | 1001 | epsilon/vau | | |
---|
3 | 1000 | beta | 1002 | zeta/eta/theta |
---|
4 | 1002 | eta | 1004 | iota | | |
---|
5 | 1000 | gamma | | | | |
---|
6 | 1001 | epsilon | C1[:C4]:=KKLEINSTE(VSplit(VJoin(A$1:A$10;;-1);;1;1);ZEILE()) |
---|
7 | 1000 | delta | D1[:D4]: {=VJoin(WENN(A$1:A$10=C1;B$1:B$10;"");"/";-1)} |
---|
8 | 1001 | vau | | | | |
---|
9 | 1004 | iota | Verketten mehrere Zellen |
---|
10 | 1002 | theta | Clever-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' |
| A | B | C | D | E | F | G | H | I | J |
1 | 1000 | alpha | 1 | 1000 | alpha | beta | gamma | delta | | |
2 | 1000 | beta | 5 | 1001 | epsilon | vau | | | | |
3 | 1000 | gamma | 7 | 1002 | zeta | eta | theta | | | |
4 | 1000 | delta | 10 | 1004 | iota | | | | | |
5 | 1001 | epsilon | 11 | | | | | | | |
6 | 1001 | vau | 11 | | | | | | | |
7 | 1002 | zeta | 11 | | | | | | | |
8 | 1002 | eta | 11 | | | | | | | |
9 | 1002 | theta | 11 | | | | | | | |
10 | 1004 | iota | 11 | | | | | | | |
Zelle | Formel |
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
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:
| A | B | C | D | E | F |
---|
1 | Variante für rein numerische KNr (Ergebnis nach KNr sortiert) |
---|
2 | 1002 | zeta | 1000 | alpha/beta/gamma/delta |
---|
3 | 1000 | alpha | 1001 | epsilon/vau | | |
---|
4 | 1000 | beta | 1002 | zeta/eta/theta |
---|
5 | 1002 | eta | 1004 | iota | | |
---|
6 | 1000 | gamma | | | | |
---|
7 | 1001 | epsilon | C2[:C5]:=KKLEINSTE(VSplit(VJoin(A$2:A$11;;-1);;1);ZEILE(A1)) |
---|
8 | 1000 | delta | D2[:D5]: {=VJoin(WENN(A$2:A$11=C2;B$2:B$11;"");"/";-1)} |
---|
9 | 1001 | vau | | | | |
---|
10 | 1004 | iota | VSplit, Vs1.1, u.VJoin, Vs1.4, in folgd BspDatei enthalten: |
---|
11 | 1002 | theta | http://www.herber.de/bbs/user/99024.xlsm |
---|
12 | Variante für alfa-numerische KNr (Ergebnis in Reihenfolge d.KNr-Auftretens) |
---|
13 | KN1002 | zeta | KN1002 | zeta/eta/theta |
---|
14 | KN1000 | alpha | KN1000 | alpha/beta/gamma/delta |
---|
15 | KN1000 | beta | KN1001 | epsilon/vau | | |
---|
16 | KN1002 | eta | KN1004 | iota | | |
---|
17 | KN1000 | gamma | | | | |
---|
18 | KN1001 | epsilon | C13[:C16]:=INDEX(VSplit(VJoin(A$13:A$22;;-1));ZEILE(A1)) |
---|
19 | KN1000 | delta | D13[:D16]: {=VJoin(WENN(A$13:A$22=C13;B$13:B$22;"");"/";-1)} |
---|
20 | KN1001 | vau | | | | |
---|
21 | KN1004 | iota | | | | |
---|
22 | KN1002 | theta | Verketten mehrere Zellen | Clever-Xl, mr.Maky |
---|
Viel Erfolg, Castor