Umlaute umwandeln (ae, ue, oe)
Lern Video
Hilfreich um Texte zu vereinheitlichen (data cleansing)
Excel Power Query
1 Tabelle mit zwei Spalten[FalscherWert], [RichtigerWert] erstellen und
als Namen [tbl_Falsch_Richtig] zuweisen sowie als Power Query (Arbeitsmappenabfrage, aus Tabelle) abbilden
Diese Auflistung kann bei Bedarf durch weitere Zeichen erweitert werden
Exkurs:
alternativ kann das Table Objekt direkt im Power Query Editor "on the scratch" angelegt werden
= #table({"FalscherWert","RichtigerWert"},{{"ö","oe"},{"ä","ae"},{"ü","ue"},{"ß","ss"}})
2 benutzerdefinierte Funktion implementieren (neue Arbeitsmappenabfrage, Name fxWerteErsetzen)
---- SCHNIPP ---
(text as text) =>
let
// Konvertiere übergebenen Feldinhalt (text) in eine Liste, getrennt durch Zeichen
// Aufruf fxWerteErsetzen([Feld])
Table.FromList = Table.FromList(Text.ToList(text), Splitter.SplitByNothing(), null, null, ExtraValues.Error),
// Zusammenführen mit Tabelle "tbl_Falsch_Richtig"
Merge = Table.Buffer(Table.NestedJoin(Table.FromList,{"Column1"},tbl_Falsch_Richtig,{"FalscherWert"},"KorrekturLISTE",JoinKind.LeftOuter)),
Expand = Table.ExpandTableColumn(Merge, "KorrekturLISTE", {"FalscherWert", "RichtigerWert"}, {"FalscherWert", "RichtigerWert"}),
// Füge eine neue Spalte mit dem korrigierten Wert hinzu
Added_Column_with_corrections = Table.AddColumn(Expand, "Benutzerdefiniert", each if [Column1]=[FalscherWert] then [RichtigerWert] else [Column1]),
// aufräumen
Remove_Columns = Table.SelectColumns(Added_Column_with_corrections,{"Benutzerdefiniert"}),
Convert_to_List = Remove_Columns[Benutzerdefiniert],
Result = Text.Combine(Convert_to_List)
in
Result
--- SCHNAPP ---
3 benutzerdefinierte Funktion hinzufügen, fxWerteErsetzen([Name])
siehe auch Ähnlichkeitsmaß
Excel VBA
Public Function Umlaut(S)
Dim I As Integer, Ch As String * 1, Ch1 As String * 1, _
IsUpCase As Boolean, Res As String
If IsNull(S) Then Umlaut = Null: Exit Function
Res = ""
For I = 1 To Len(S)
Ch = Mid(S, I, 1)
Ch1 = IIf(I < Len(S), Mid(S, I + 1, 1), " ")
' Nächstes Zeichen ist kein Kleinbuchstabe:
IsUpCase = (Asc(Ch1) = Asc(UCase(Ch1)))
Select Case Asc(Ch)
Case Asc("Ä"): Res = Res & IIf(IsUpCase, "AE", "Ae")
Case Asc("Ö"): Res = Res & IIf(IsUpCase, "OE", "Oe")
Case Asc("Ü"): Res = Res & IIf(IsUpCase, "UE", "Ue")
Case Asc("ä"): Res = Res & "ae"
Case Asc("ö"): Res = Res & "oe"
Case Asc("ü"): Res = Res & "ue"
Case Asc("ß"): Res = Res & "ss"
Case Else: Res = Res & Ch
End Select
Next I
Umlaut = Res
End Function
nur Zeichen aus einem Text / String zurückgeben (benutzerdefinierte Funktion)
neue Arbeitsmappenabfrage erstellen und in
fxRemovePunc
umbenennen
--- SCHNIPP
(SourceText as text) as text =>
let
CharsToInclude = List.Combine({{"A".."Z"},{"a".."z"},{" "}}),
RemovePunc = Text.Select(SourceText, CharsToInclude)
in
RemovePunc
--- SCHNAPP
Beispiel Excel Arbeitsmappe
nur Zeichen aus einem Text / String zurückgeben (benutzerdefinierte Funktion)
neue Arbeitsmappenabfrage erstellen und in
fxRemovePunc
umbenennen
--- SCHNIPP
(SourceText as text) as text =>
let
CharsToInclude = List.Combine({{"A".."Z"},{"a".."z"},{" "}}),
RemovePunc = Text.Select(SourceText, CharsToInclude)
in
RemovePunc
--- SCHNAPP
Beispiel Excel Arbeitsmappe
Kommentare
Kommentar veröffentlichen