Brauche Hilfe bei Umwandlung ...
#1
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.
Top
#2
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.
Gruß
Michael
Top
#3
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.
Top
#4
Wo kommen denn die Daten her? Musst Du das ganze nur einmalig umsetzen oder wiederholt sich das?
Gruß
Michael
Top
#5
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
Top
#6
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
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#7
(18.05.2017, 11: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:
Gruß
Michael
Top
#8
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.
Top
#9
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.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#10
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.
Top


Gehe zu:


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