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.
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 | A | B |
1 | Hans Müller, Schwerarbeiter | hans-mueller-schwerarbeiter |
2 | Kürbiskern-Olivenöl | kuerbiskern-olivenoel |
Formeln der Tabelle |
Zelle | Formel | 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 | A | B |
3 | mueller-hans---schwerarbeiter-&-123 | mueller-hans-schwerarbeiter-123 |
Formeln der Tabelle |
Zelle | Formel | 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 A
n nach B2 bis B
n konvertiert.
Gruß
Tillo R.