Microsoft Excel

Herbers Excel/VBA-Archiv

Verketten

Betrifft: Verketten von: Joschy7
Geschrieben am: 18.09.2014 16:12:25

Hallo zusammen,
bräuchte mal bitte eute Hilfe. Mein Kopf ist zu...

ich habe mal eine Musterdatei angehangen.

Ich möchte die verschiedenen Kommissionen aus (Best904544)Spalte E zusammenfassen(verketten) in der jeweiligen Zelle in (Bestellungen)Spalte Q

Über eure Hilfe würde ich mich sehr freuen.
LG Joschy

https://www.herber.de/bbs/user/92708.xlsm

  

Betrifft: AW: Verketten von: Frank
Geschrieben am: 18.09.2014 19:14:14

Hallo Joschy,

mit Formel weiss ich nicht, ob's geht. Vielleicht ne Matrixformel?
Mit VBA so:

Sub Kommission()
For i = 4 To Sheets("Bestellungen").Range("A65536").End(xlUp).Row
    Order = Sheets("Bestellungen").Cells(i, 1).Value
    For j = 3 To Sheets("Best904544").Range("A65536").End(xlUp).Row
        If Sheets("Best904544").Cells(j, 1).Value = Order Then
            If IsEmpty(Sheets("Bestellungen").Cells(i, 17).Value) Then
                Sheets("Bestellungen").Cells(i, 17).Value = Sheets("Best904544").Cells(j, 5). _
Value
            Else
                Sheets("Bestellungen").Cells(i, 17).Value = _
                   Sheets("Bestellungen").Cells(i, 17).Value & "; " & Sheets("Best904544"). _
Cells(j, 5).Value
            End If
        End If
    Next
Next
End Sub
Grüsse,
Frank


  

Betrifft: Mit Fmln wäre das nur per Iteration bzw mit ... von: Luc:-?
Geschrieben am: 18.09.2014 23:49:29

…einer UDF möglich, Frank,
da mit Xl (auch mit VERKETTEN - im Ggsatz zur vbFkt Join!) nur elementweises Verketten von Bereichen/Datenfeldern, nicht aber das Verketten aller Elemente eines Bereiches miteinander möglich ist. Mit WENN o.ä. in einer MxFml kann man nur die Vorauswahl treffen (die Einzelwerte auswählen und als Datenfeld abbilden), nicht aber die Verkettung realisieren! Darauf müsste dann die Iteration bzw (sicherer!) eine UDF (wie Verketten2 bzw …A, …M oder - komfortabler - MxJoin aus dem Archiv) aufsetzen.
Gruß, Luc :-?


  

Betrifft: Vielen Dank für die Belehrung... von: Frank
Geschrieben am: 19.09.2014 10:40:23

Ich hatte die Frage nicht gestellt, sondern nur geäussert, dass ich nicht weiss, ob und wie es mit Formeln geht.
Interessiert mich auch nicht so brennend, da ich mir - wie meinem Posting zu entnehmen war - mit VBA zu helfen wüsste.


Grüsse,
Frank


  

Betrifft: Wenn du beide AWn liest, weißt du ... von: Luc:-?
Geschrieben am: 19.09.2014 14:59:59

…wie es gemeint ist, Frank;
ich habe meine Anmerkungen nur deshalb geteilt, weil du MatrixFmln angesprochen hast. Dass du das als „Belehrung“ empfindest, ist dein Problem.
Nebenbei, diese Art von „mit VBA zu helfen“ ist tatsächlich „nur“ ein Behelf, weil so etwas an jede ähnliche Anforderung erst wieder angepasst wdn müsste und deshalb die Universilität von Fmln vermissen lässt. Hättest du das als Fkt (UDF) mit entsprd Argumen­tierungs­möglichkeit geschrieben, wär's anders…
Gruß, Luc :-?


  

Betrifft: Zu deiner BspMappe ergeben sich noch ... von: Luc:-?
Geschrieben am: 19.09.2014 01:06:54

…Fragen, Joschy;

1. Es scheint in Bestellungen eine TEILENUMMER aus Best904544 zu fehlen → warum und inwiefern ist das bzw sind diese Nrn (für die Aufgabe) relevant?
2. Dein bereits eingetragenes Wunschergebnis (Schmitz; Müller; Meier; Meier; Klaus; Lager; Lager) enthält zwar Dopplungen stimmt aber nicht mit den Eintragungen 100%ig überein wie Franks Ergebnis (Schmitz; Müller; Meier; Meier; Meier; Klaus; ; Lager; Lager) zeigt.
3. Aus 2. ergibt sich die Frage, ob Eintragungsdisziplin herrscht, d.h., in Spalte E der DatenQuelle immer alle Felder ausgefüllt wdn oder mitunter nur in der jeweils 1. einer Komission der Name eingetragen wird. Desweiteren ergibt sich hieraus …
4. Gibt es gleichnamige Komissionen, die nicht auch gleiche Personen bedeuten? Muss deshalb noch eine andere Angabe als die ORDER zum Vgl herangezogen wdn?
5. Sollen zumindest stets alle Namen (bzw eingetragene Nrn) aufgeführt wdn oder reicht die 1malige Aufführung (dann evtl bessere direkte SichtZuordnung zu den Angaben unter den TeileNrn-Spalten der jeweiligen Zeile möglich!), ggf unter Berücksichtigung der TeileNr?

Je nachdem wie die AW auf diese Fragen ausfällt müsste entweder Franks ansonsten zufrieden­stellend fktionierendes Pgm überarbeitet oder eine die Verkettungsbasis liefernde Fml entsprd gefasst wdn.
Um die einzelnen Elemente eines per Formel entstandenen Datenfeldes miteinander verknüpfen zu können, müssten sie bei „klassischer“ Lösung einzeln aus dem ErgebnisDatenfeld ausgelesen und per &";"& miteinander verbunden wdn, wobei ggf auch Iteration (des DatenfeldPositionsIndex) benutzt wdn könnte, um die Fml kürzer zu halten. Das ist aber störanfällig!
Mit der UDF MxJoin könnte das eleganter gelöst wdn, denn sie kann auch solche Datenfelder (komplette TeilFml als Argument) verarbeiten:
Q5:=WENNFEHLER(MxJoin(ChooseIn(Best904544!$E$3:$E$17;Best904544!$A$3:$A$17;Bestellungen!A5;0);";");"") woraus sich Schmitz;Müller;Meier;Meier;Meier;Klaus;Lager;Lager ergibt.
Diese UDF kann also nicht Wert-Wiederholungen, wohl aber LeerZellen ausschließen! Allerdings wdn (oder sollten es alle) die Meier-Werte in den TeileNr-Spalten ja pro Teil zusammengefasst. Folglich sollte das wohl auch hier passieren, was dann aber die BereitstellungsFml in Arg1* der UDF erledigen müsste. Falls diese Daten keinen zusammen­hängenden Bereich ergeben sollten, wäre das für die UDF auch kein Problem. (Deshalb hatte ich meine undokumentierte und unveröffentlichte Alt-UDF ChooseIn hier eingesetzt, denn die liefert wie INDEX echte ZellBezüge, auch von unzusammen­hängenden Bereichen!)

* Hinweis: Der blaue Teil der obigen Fml muss durch ein entsprd Fml-Konstrukt mit XlStandardFunktionen ersetzt wdn! Dafür ggf mal bei ExcelFormeln nachschlagen!

Gruß, Luc :-?

Besser informiert mit …