Clever-Excel-Forum

Normale Version: Brauche Hilfe bei Umwandlung ...
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Tag.

Ich bin Excel-Laie und benötige konkrete Hilfe. Die Aufgabenstellung:

Quelle Feldinhalt: Hans Müller, Schwerarbeiter

Ziel:
  • Alles klein schreiben
  • Umlaute umwandeln (z.B. ü = ue etc.)
  • Leerzeichen mit Bindestrich ersetzen, es dürfen keine Leerzeichen mehr vorhanden sein
  • Sonderzeichen (,;:.-/\ ... usw.) werden vollständig entfernt
  • Erlaubte Zeichen: 0-9, a-z, A-Z, - (Bindestrich)
  • Ideal wäre, wenn man Quell- und Zielspalte vorauswählen könnte
  • Quellfeld muss unverändert erhalten bleiben
Ergebnis im Zielfeld: hans-mueller-schwerarbeiter

Ich brauche eine Lösung, um recht umfangreiche Listen so umzuwandeln.

Vorab vielen Dank für die freundliche Hilfe.

Ich bin gerne bereit, dafür einen angemessenen Obulus zu entrichten. ;)



Grüße
Tilllo R.
Hallo,

kennst Du schon Power Query. Damit kann man diese Aufgabe relativ leicht umsetzen.
Power Query ist ein Add-In von Muicrosoft, das man kostenlöos herunterladen kann.
Hi,

Power Query kenne ich nicht. Bin wie gesagt absoluter Excel-Laie. Bekomme nur hin, mal ne Rechenformel zu basteln. Wink
Ich schau mir Power Query mal an.
Danke für den Tipp.
Wo kommen denn die Daten her? Musst Du das ganze nur einmalig umsetzen oder wiederholt sich das?
Hallo,

folgender Code erwartet die Eingabe in Spalte A, Ausgabe in Spalte B:


Code:
Sub Tillo_clev()
Um1 = Array("Ä", "Ö", "Ü", "ä", "ö", "ü", "ß", " ")
Um2 = Array("Ae", "Oe", "Ue", "ae", "oe", "ue", "ss", "-")
lr = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1:A" & lr).Copy Range("B1")
For i = 0 To UBound(Um1)
   y = Range("B1:B" & lr).Replace(Um1(i), Um2(i), , , 1)
Next i
For i = 1 To lr
Tx = Cells(i, "B")
   Tx = LCase(Tx)
   For k = 1 To Len(Tx)
       If Mid(Tx, k, 1) Like "[a-z0-9-]" Then
           Ty = Ty & Mid(Tx, k, 1)
       End If
   Next k
Cells(i, "B") = Ty
Ty = ""
Next i
End Sub

Es wäre recht einfach, Änderungen/Ergänzungen vorzunehmen.

Eine angemessene Gegenleistung wäre zwischen 50€ (1/2 St meiner Zeit) bis 1.000 € (3 Arbeitstage bei dir eingespart), zusätzlich eine Spende für den Verein "Clever-Excel-Forum".

mfg
mfg
Hi Tillo,

mal ein Formelvorschlag, den du allerdings für weitere Zeichen ausbauen musst.

Tabelle3

AB
1Hans Müller, Schwerarbeiterhans-mueller-schwerarbeiter
2Kürbiskern-Olivenölkuerbiskern-olivenoel
Formeln der Tabelle
ZelleFormel
B1=GLÄTTEN(KLEIN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;"ä";"ae");"ö";"oe");"ü";"ue");",";"");" ";"#");"#";"-")))

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
(18.05.2017, 10:13)Fennek schrieb: [ -> ]Eine angemessene Gegenleistung wäre zwischen 50€ (1/2 St meiner Zeit) bis 1.000 € (3 Arbeitstage bei dir eingespart), zusätzlich eine Spende für den Verein "Clever-Excel-Forum".
Das hast Du jetzt nicht wirklich geschrieben, oder? Also nur eine Spende wäre i.O. aber "zusätzlich"????? :27: :33:
Hi WillWissen,

vielen Dank.
Mit dieser Formel habe ich allerdings bei

Müller, Hans - Schwerarbeiter & 123

als Vorgabe noch 3 Bindestriche hintereinander und noch das & drin:

mueller-hans---schwerarbeiter-&-123

Es sollte so aussehen:

mueller-hans-schwerarbeiter-123

Da müssten also wohl zuerst alle nicht erwünschten Zeichen entfernt werden.
Hi,

ich hatte dir doch geschrieben, dass die Formel für weitere Bedingungen ausgebaut werden muss. Hier für dein letztes Beispiel:

Tabelle3

AB
3mueller-hans---schwerarbeiter-&-123mueller-hans-schwerarbeiter-123
Formeln der Tabelle
ZelleFormel
B3=GLÄTTEN(KLEIN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A3;"ä";"ae");"ö";"oe");"ü";"ue");",";"");"&";"-");"---";"-");" ";"#");"#";"-")))

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Für jedes zusätzliche Zeichen kommt einmal WECHSELN und das entsprechende Argument.

Btw:
Zitat:Das hast Du jetzt nicht wirklich geschrieben, oder? Also nur eine Spende wäre i.O. aber "zusätzlich"????? [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
] [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

hier bist du unserem guten Fennek gewaltig auf den Leim gegangen  :32:  - das war natürlich als Scherz gemeint. Ein Forum gibt selbstverständlich seine Hilfe kostenfrei.
Sollte sich dein Chef allerdings sooo über die Hilfe freuen, dass er einem gemeinnützigen Verein unter die Arme greifen will, dann lass ihn doch mal hier bis ganz zum Schluss lesen, was es damit auf sich hat.
Hallo Günter,

die korrekte Formel wäre wohl diese. Hat zumindest in meinem Kurztest funktioniert.
Code:
=GLÄTTEN(KLEIN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A2;"&";"");":";"");"-";"");",";"");"ü";"ue");"Ü";"ue");"ä";"ae");"Ä";"ae");"ö";"oe");"Ö";"oe");"ß";"ss");"`";"");"´";"");"'";"");"(";"");")";"");";";"");".";"");"_";"");"*";"");"?";"");"!";"");"  ";"-");" ";"-")))

Allerdings meckert Excel, wenn ich es im richtigen Sheet probiere, dass zu viele Verschachtelungen vorhanden wären. Es gibt viel zu viele Zeichen, die rausgefiltert werden müssen, denn in der obigen Formel sind noch nicht alle Zeichen enthalten, die im Ergebnis unerwünscht sind.

Ich denke, es wäre einfacher, ein Makro zu haben, das nur die zulässigen Zeichen (0-9,a-z,A-Z) durchlässt, die Leerzeichen gegen Bindestriche ersetzt, Umlaute umwandelt und alles ins Kleinformat wandelt, dabei die A2 bis An nach B2 bis Bn konvertiert.

Gruß
Tillo R.
Seiten: 1 2