Spalte nach 4 Bezeichnungen durchsuchen und trennen
#1
Hola los Todos!

Ich habe eine Spalte mit ganz vielen Zeilen nach dem Schema:

Essential skills and competences\n  \n    \n      apply precision metalworking techniques\n    \n      ensure correct metal temperature\n    \n      ensure equipment availability\n    \n            wear appropriate protective gear\n    \n  \n\n\n    \n    \n    \n  Essential Knowledge\n  \n    \n      electron beam welding machine parts\n    \n      electron beam welding processes\n    \n      types of metal\n    \n  \n\n\n    \n    \n    \n  Optional skills and competences\n  \n    \n      apply preliminary treatment to workpieces\n    \n      consult technical resources\n    \n      ensure correct gas pressure\n    \n      spot metal imperfections\n    \n      supply machine with appropriate tools\n    \n  \n\n\n    \n    \n    \n  Optional Knowledge\n  \n    \n      electric current\n    \n      electrical discharge\n    \n      electricity\n    \n      ferrous metal processing\n    \n      welding techniques\n    \n  \n\n\n    \n    \n    \n\n    \n    \n    \n\n    \n    \n    \n\n  \n  \n  \n\n  \n

Ich würde diese Spalte gerne nach den VIER Begriffen: Essential skills and competences, Essential Knowledge, Optional skills and competences und Optional Knowledge TRENNEN und auf VIER SPALTEN verteilen. Die Bezeichnungen selber brauche ich dabei nicht mehr. Die Reihenfolge der vier Bezeichnungen ist dabei immer gleich.

Spalte 1 = \n  \n    \n      apply precision metalworking techniques\n    \n      ensure correct metal temperature\n    \n      ensure equipment availability\n    \n            wear appropriate protective gear\n    \n  \n\n\n    \n    \n    \n  

Spalte 2 = \n  \n    \n      electron beam welding machine parts\n    \n      electron beam welding processes\n    \n      types of metal\n    \n  \n\n\n    \n    \n    \n  

Spalte 3 = \n  \n    \n      apply preliminary treatment to workpieces\n    \n      consult technical resources\n    \n      ensure correct gas pressure\n    \n      spot metal imperfections\n    \n      supply machine with appropriate tools\n    \n  \n\n\n    \n    \n    \n  

Spalte 4 = \n  \n    \n      electric current\n    \n      electrical discharge\n    \n      electricity\n    \n      ferrous metal processing\n    \n      welding techniques\n    \n  \n\n\n    \n    \n    \n\n    \n    \n    \n\n    \n    \n    \n\n  \n  \n  \n\n  \n

Jetzt kommt die eigentliche Herausforderung:

Leider kommen nicht immer alle vier Bezeichnungen vor. Manchmal drei, manchmal 2 und ab und zu nur eine. Also z.B. Essential skills and competences, Essential Knowledge, Optional skills and competences ODER Essential skills and competences und Optional Knowledge ODER NUR Essential skills and competences ODER NUR Optional skills and competences. Allerdings bleibt die Reihenfolge immer gleich.

Habt Ihr eine Idee wie man die Spalte so trennen kann, das die Inhalte auf die richtigen Spalten getrennt werden?

Also auch wenn es nur eine bis drei Bezeichnungen gibt diese trotzdem erkannt und richtig zugeordnet werden?

Anbei eine Beispieldatei mit verschiedenen Varianten.

Vielen Dank


Angehängte Dateien
.xlsx   Spalte nach 4 Bezeichnungen durchsuchen und trennen.xlsx (Größe: 31,54 KB / Downloads: 6)
Top
#2
Zeile 1 einfügen
Spalten A:E einfügen (Daten stehen also jetzt ab F2 herunter, statt ab A1)
G1[:J1]: Deine vier Fettgedruckten
A2[:D2]: =TEIL($F2;WENNFEHLER(SUCHEN(G$1;$F2);9999);9999) -> Hilfszellen
G2[:J2]: =WECHSELN(WECHSELN(A2;B2;);G$1;) -> Deine gesuchten Einträge
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • PeterN
Top
#3
Hi Peter

In VBA
Code:
Sub Spliten()
Dim ArrA, a, Z
For Each Z In Range("A1:A50").Cells
    ArrA = Split(Replace(Replace(Replace(Replace(Z, "Optional Knowledge", "#4"), "Optional skills and competences", "#3"), "Essential Knowledge", "#2"), "Essential skills and competences", "#1"), "#")
    For Each a In ArrA
        If IsNumeric(Left(a, 1)) Then Z.Offset(0, Left(a, 1)).Value = Mid(a, 2)
    Next a
Next Z
End Sub
Gruß Elex
[-] Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:
  • PeterN
Top
#4
Hi LCohen!
Also bei mir sah das auf den ersten Blick schon (richtig) gut aus.

Hi Elex!

Kannst Du mir das bitte in meine Beispielliste einbauen. Ich kriege das wieder nicht zum laufen.

Herzlichen Dank
Top
#5
Nee, war zuerst falsch. Jetzt könnte es stimmen (siehe #2)
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • PeterN
Top
#6
Super!
Klasse!
Danke euch!

Beide Lösungen funktionieren einwandfrei.
Top


Gehe zu:


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