Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

richtige Kodierung

Forumthread: richtige Kodierung

richtige Kodierung
10.10.2024 11:11:14
Fred
Hallo Excel Experten,
In den Spalten G und H habe ich ab Zeile 11
Vereinsnamen. Ich importiere diese aus einer csv
Allerdings ist mancher Eintrag ein Kuddelmuddel
Beispiel:
Türkgücü-Ataspor
Hier stimmte anscheinend die Kodierung nicht (war ein Python Versuch)
Kann ein Experte mir bitte ein Makro schreiben um diesen "Fehler" in Excel zu korrigieren"?
https://www.herber.de/bbs/user/172752.xlsb


Gruss
Fred



Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: richtige Kodierung
10.10.2024 11:25:35
Eifeljoi 5
Hallo

Ohne die Datei zusehen.
Wie importierst du?
Hoffentlich nicht per VBA oder Python.
csv-Dateien importiert man mit Power Query normalerweise sehr leicht.
Schaue dir im Netz die Videos an.
AW: richtige Kodierung
10.10.2024 11:25:51
snb
Eine CSV-Datei wäre besser.
AW: richtige Kodierung
10.10.2024 12:01:14
Fred
Danke für die vielen Rückmeldungen.
Eine csv ist zum upload ja hier nicht zugelassen.
Ich dachte, das dies mit einen Makro einfachst zu korrigieren sei,- eine "interne Tabelle mit entsprechenden Zeichen" odersowas ...
Wenn ich mich entscheiden kann, auch zukünftig mit Python Daten abzufragen, ist das Makro von Piet wohl das sinnvollste.
Sub Tauschen()

Columns("H").Replace "Türkgücü", "Türkgücü", xlPart
End Sub

Ich weis ja nicht, wie viele solcher Kuddelmuddel in Zukunft sich noch herausstellen, - wenn ich türkische, isländische, chinesische etc. Ligen abfrage
:-)
Vielen Dank für eure Teilnahme und Unterstützung


Gruss
Fred


Anzeige
Das ist schon...
10.10.2024 12:18:46
Case
Moin, :-)

... richtig, man kann hier keine CSC auswählen, aber man darf auch in 50ger Zonen nur 50 fahren. Ich mache das nicht immer (manchmal fahre ich auch langsamer:-)). ;-)

Du kannst die CSV aber einfach zippen. ;-)

Und die Frage wurde schon gestellt - warum importierst du nicht per Power Query?

Servus
Case
Anzeige
Kodierung
10.10.2024 14:12:56
Fred
Moin Case
ich habe die letzte 1/2 Std mit dem erstellen einer Funktion verbracht :-)
Das wäre nun mein Ding:
Sub korrigiereZ()

Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim cell As Range
Dim korrigierterText As String
Set ws = ThisWorkbook.Sheets("csv_Liga")

lastRow = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row
For i = 11 To lastRow
korrigierterText = korrigiereZeichen(ws.Cells(i, "G").Value)
ws.Cells(i, "G").Value = korrigierterText
korrigierterText = korrigiereZeichen(ws.Cells(i, "H").Value)
ws.Cells(i, "H").Value = korrigierterText
Next i
End Sub

Function korrigiereZeichen(ByVal text As String) As String
' typische Zeichenfehler durch korrekte Zeichen
korrigiereZeichen = Replace(text, "ü", "ü")
korrigiereZeichen = Replace(korrigiereZeichen, "ö", "ö")
korrigiereZeichen = Replace(korrigiereZeichen, "ä", "ä")
korrigiereZeichen = Replace(korrigiereZeichen, "ß", "ß")
korrigiereZeichen = Replace(korrigiereZeichen, "é", "é")
korrigiereZeichen = Replace(korrigiereZeichen, "Ã ", "à")
End Function

Angeregt von Piet ist das nun meine Lösung.
Das Makro verwendet die Funktion korrigiereZeichen, um häufige "Zeichenfehler" (wie „ü“ zu „ü“) zu ersetzen.
Kann ich natürlich auch beliebig ergänzen,- vielleicht erspare ich mir so ein paar Zeilen weniger (gegenüber Piet`s Version), wenn entsprechend weitere Kuddelmuddel Ausgaben kommen. Lieber Zeichen austauschen als Worte,- Oder?

Gruss
Fred

Anzeige
Das geht natürlich...
10.10.2024 14:48:56
Case
Moin Fred, :-)

... alles in VBA. Meine Intension war nur, wenn du die Daten sowieso in PQ lädst, kannst du auch dort eine Funktion basteln, welche die Zeichen ersetzt. Diese Funktion ist - genau wie in VBA - dann einfach erweiterbar. ;-)

Das kommt aber ganz darauf an, was du mit den Daten alles machst. Sprich es kommt auf deine Arbeitsweise an. ;-)

Du kannst dann die Datei (wenn du alles über PQ machst) trotzdem als "XLSX" speichern. Falls das ein Kriterium sein sollte. ;-)

Servus
Case
Anzeige
AW: Das geht natürlich...
10.10.2024 15:25:47
Fred
Hallo Case,
gibt's hier PQ Provisionen?
Wegen der "vielen" Vorschläge in dieser Hinsicht.
:-)
Ich lerne VBA, bischen Python, bischen php - obwohl ich wohl sql bräuchte.
Mag sein, das der Weg zu PQ viel kürzer ist, aber irgendwie habe ich noch vor der ersten PQ Abfrage das ewige Gefühl, das ich mittlerweile zB mit VBA bei meinen vielen Änderungen, Ergänzungen usw. doch flexibler und schneller bin. Während wohl PQ sehr gut darin ist, Daten zu bereinigen und zu transformieren, ist es weniger flexibel, wenn es darum geht, fortgeschrittene, benutzerdefinierte Operationen durchzuführen, die in VBA möglich wären. Diese eingeschränkte Flexibilität stört mich wohl am meisten. Vielleicht auch nur, weil ich darin so gut wie keine Ahnung habe.
.... und wenn ich Rat brauche,- gibt es ja dieses Forum mit sehr vielen hilfbereiten Experten.
Nichts für ungut, Case - ich weis es ist gut und hilfreich gemeint!


Gruss
Fred


Anzeige
In VBA könntest...
10.10.2024 16:33:25
Case
Moin Fred, :-)

... du auch so schreiben: ;-)

Option Explicit

Public Sub Main()
Dim varQ() As Variant
Dim varR() As Variant
Dim lngTMP As Long
varQ() = Array("ü", "ö", "ä", "ß", "é", "à ")
varR() = Array("ü", "ö", "ä", "ß", "é", "à")
For lngTMP = LBound(varQ) To UBound(varQ)
Tabelle2.Range("G2:H" & Tabelle2.Cells(Rows.Count, 7).End(xlUp).Row).Replace What:=varQ(lngTMP), Replacement:=varR(lngTMP), LookAt:=xlPart
Next lngTMP
End Sub


Tabelle2 musst du natürlich an deine Gegebenheiten anpassen (ist der CodeName der Tabelle).

Aber - was hast du mit "Saarbrucken, Wurzburg, Munchen..." gemacht. Hast du denen die "Pünktchen" geklaut? ;-)

Alles nur Ansätze. ;-)

Servus
Case
Anzeige
AW: In VBA könntest...
10.10.2024 17:13:55
Fred
Hallo Case,
OK,- deine Variante ist besser!
Heißt: Meine schon im Müll.
Hm, das mit Munchen, Saarbrucken und co habe ich noch gar nicht gerafft.
Ist aber wohl nicht so dramatisch, da,- wenn ich mich auf die API voll und ganz einlasse (viele Berechnungen und Auswertungen) ja alle zB Münchner zu Munchener werden :-)
Jetzt wo du mich darauf aufmerksam gemacht hast, denke ich, diese "Variationen" schon öfters gesehen zu haben - habe eben auf: football-bet-data.com geschaut,- die machen ebenfalls diese Neu-Kreationen (und sicherlich noch viele andere). Es gibt ohnehin sehr viele Schreibweisen für sicherlich zweidrittel aller Fußballteams. Für meine Auswertungen ist es halt nur wichtig, das sich diese Namen - mit denen ich meine Basisdaten bestücken werde - sich nicht ändern. Und da sich die dt. Rechtschreibung im laufe meiner noch zu wenigen Jahre wohl nicht dahin ändern wird, dass zB Umlaute verschwinden, gilt: Einmal ein Munchener, immer ein Munchener.
Aber sehr vielen Dank für deine Aufmerksamkeit (ich habe einen Fehler noch nie so sehr verteidigt :-)


Gruss
Fred


Anzeige
AW: richtige Kodierung
10.10.2024 11:34:10
Piet
Hallo

setze diesen Code in ein Modul für Replace. Oder ersetze es mit Suchen/Ersetzen von Hand.
Was ich herauslesen kann ist "Türkg" + ???. Ich vermute "Türkgücü Ataspor". Bin kein Fussballer.
Die Zeichen A1/4, A1/2 findet man bei Ländern die unsere Umlaute nicht kennen.
das Wort güc heisst meines Wissens Kraft, gücü "seine Kraft"!

mfg Piet



Sub Tauschen()
Columns("H").Replace "Türkgücü", "Türkgücü", xlPart
End Sub
Anzeige
AW: richtige Kodierung
10.10.2024 11:41:27
JoWE
Hallo,
Suchen nach Türkgücü-Ataspor; Ersetzen durch Türkgücü-Ataspor denn 'ü' ist = 'ü'
das kannst Du auch aufzeichnen mit dem Makrorekorder - und ja, eine CSV-Datei wäre hilfreicher
Gruß
Jochen
AW: richtige Kodierung
10.10.2024 14:09:10
snb
Verwende

Sub M_snb_unicode_UTF8()

Workbooks.OpenText "G:\Beispiel.csv", 65001, , 1, 1, , 0, -1, 0, 0, 0, , , , ",", "."
End Sub

Anzeige
AW: richtige Kodierung
10.10.2024 14:23:17
Fred
Hallo snb,
deine Version öffnet die csv-Datei doch nur mit UTF-8-Codierung
und dann bräuchte ich ein weiteres ....
Ich denke mal das mein Ding besser und schnelle Ding Dong macht :-)

Gruss
Fred

(bin gut gelaunt)
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige