Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formel zum Zusammenführen
#1
Hallo zusammen Smile

ich habe folgendes Problem:
Die Tabelle, die ich als Anlage angehängt habe, bekomme ich so aus einem Programm. Die Servicearbeiten bzw. gesetzliche Untersuchungen werden jeweils einzeln angezeigt, sodass ich Arbeiten für ein Kennzeichen in mehreren Zeilen habe. Ich möchte jetzt eine Formel erstellen, damit ich all die Arbeiten für ein Fahrzeug in einer Zelle der Spalte I habe (so wie in Zeile 3).

Ich habe schon viel rumgebastelt, mit SVERWEIS, WENN-Formel und VERKETTEN, aber das wollte nicht so ganz, wie ich das gerne hätte.

Vielleicht habt ihr ja eine Idee Smile

Lieben Gruß
Michelle


Angehängte Dateien
.xlsx   Beispiel Wartungsanschreiben.xlsx (Größe: 11,76 KB / Downloads: 16)
Antworten Top
#2
Michelle,

suche mal nach "verketten2".
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
Naja, so verbinde ich zwar die Zellen miteinander, habe aber keinen Bezug auf das Kennzeichen.
Die Verkettung soll ja nur dann entstehen, wenn die Kennzeichen zueinander passen. Und da das eine längere Liste sein wird, muss ich die Formel schon runterkopieren können.
Antworten Top
#4
heje excelfreunde, michelle,

vorschlag: verwende ein zweites tabellenblatt (Zusammenfassung). das vorhandene als datenpool, aus welchem dann alle relevanten daten und die daraus resultierenden (gewünschten) verkettungen im tabellenblatt (Zusammenfassung) generiert werden...
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Antworten Top
#5
Hallo,

mit VBA wäre dies relativ einfach ("Dictionary") zu lösen. Kommt das infrage?

mfg
Antworten Top
#6
(06.10.2017, 13:54)Fennek schrieb: Hallo,

mit VBA wäre dies relativ einfach ("Dictionary") zu lösen. Kommt das infrage?

mfg

Guten Morgen,

ich habe leider noch nie mit VBA gearbeitet. Aber ich bin immer offen für neues :19:

LG
Antworten Top
#7
heje excelfreunde, michelle,

dein anforderungsprofil ist zu ungenau. die frage, die du dir stellen solltest, ist: was will ich erreichen?
gehe einmal von deinem ziel aus und überlege, wie und/oder was du anhand deiner Daten darstellen oder verwenden möchtest.

siehe angehängte Datei...


Angehängte Dateien
.xlsx   CEF - Beispiel Wartungsanschreiben.xlsx (Größe: 14,78 KB / Downloads: 5)
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Antworten Top
#8
Hallo,

hier der Ansatz mit VBA:

Die Datei muss als xlsm abgespeichert werden!

Öffnen des VBA-Editors mit alt-F11, anlegen eines Moduls im Menü "Einfügen -> Modul".

Den Code mit copy/paste in das Fenster einfügen.

Es wird einmalig ein zweites Blatt angelegt. Die Auswertung erfolgt nur für die Spalten G-I, das Ergebnis wird in das neue Blatt geschrieben.

Schaun wir mal, ob du damitzurecht kommst.


Code:
Sub iFen()

If Sheets.Count = 1 Then Sheets.Add 'legt Sheet "Tabelle2" an, falls es noch nicht existiert

With CreateObject("Scripting.Dictionary")
lr = Tabelle1.Cells(Rows.Count, "G").End(xlUp).Row
Ar = Range("G3:I" & lr)
For i = 1 To UBound(Ar)
   If Ar(i, 3) <> 0 Then
       Tx = Ar(i, 2) & vbLf & Ar(i, 3) 'falls Spalte I nicht leer wird spalte H und I zusammengefast
   Else
       Tx = Ar(i, 2)
   End If
   If .exists(Ar(i, 1)) Then
       .Item(Ar(i, 1)) = .Item(Ar(i, 1)) & "|" & Tx
   Else
       .Item(Ar(i, 1)) = Tx
   End If
Next i
'Ausgabe in Tabelle2
Tabelle2.Range("A2").Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
End With
End Sub


mfg
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste