Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

CSV Datei lässt sich nicht trennen

CSV Datei lässt sich nicht trennen
03.06.2022 12:18:26
Herbert_Grom
Hallo,
kann mir bitte Jemand sagen, warum ich diese CSV nicht in Kommas aufgeteilt bekomme?
https://www.herber.de/bbs/user/153407.zip
Servus

43
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV Datei lässt sich nicht trennen
03.06.2022 12:29:30
ChrisL
Hi Herbert
Flutscht bei mir ohne Probleme...
Userbild
cu
Chris
AW: CSV Datei lässt sich nicht trennen
03.06.2022 15:26:42
Herbert_Grom
Hallo Chris,
das ist mir natürlich bekannt, aber da muss die CSV ja schon importiert sein. Ich will das schon beim Import trennen.
Servus
AW: CSV Datei lässt sich nicht trennen
03.06.2022 15:59:06
ChrisL
Hi Herbert
Jetzt habe ich mir die CSV mal genauer angeschaut. Ich glaube da läuft schon bei der Erstellung etwas schief, denn die Textqualifizierer sind nach meiner Wahrnehmung ungewöhnlich gesetzt:

Titel1,Titel2,Titel3
"A,""B"",""C"""
Um dies nachträglich auszukorrigieren, hätte ich folgenden Vorschlag (neue leere Abfrage, Code in den erweiterten Editor reinkopieren):

let
Quelle = Csv.Document(File.Contents("C:\Pfad\Velar Excel Format.csv"),1,"####",ExtraValues.Ignore),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(Quelle, "Column1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.None, false), {"Column1.1", "Column1.2"}),
#"Spalte nach Trennzeichen teilen1" = Table.SplitColumn(#"Spalte nach Trennzeichen teilen", "Column1.2", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Column1.2.1", "Column1.2.2", "Column1.2.3", "Column1.2.4", "Column1.2.5", "Column1.2.6", "Column1.2.7", "Column1.2.8", "Column1.2.9", "Column1.2.10", "Column1.2.11", "Column1.2.12", "Column1.2.13"}),
#"Höher gestufte Header" = Table.PromoteHeaders(#"Spalte nach Trennzeichen teilen1", [PromoteAllScalars=true]),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Höher gestufte Header",{{"Startdatum", type date}, {"Startzeit", type time}, {"Enddatum", type date}, {"Endzeit", type time}, {"Startort", type text}, {"Startkoordinaten", type text}, {"Zielort", type text}, {"Zielkoordinaten", type text}, {"Dauer (HH:MM)", type time}, {"Abstand(km)", type number}, {"Leistungsfähigkeit(l/100 km)", type number}, {"Durchschnittsgeschwindigkeit(km/h)", Int64.Type}, {"PHEV Fuel efficiency(l/100 km)", type number}, {"EV Distance(km)", type number}})
in
#"Geänderter Typ"
- Zuerst ein Trennzeichen, das gar nicht existiert "####"
- dann nur das erste Komma abspliten, denn dort fehlt der Qualifier ganz (das erste Zeichen umschliesst die geamte Textzeile, nicht die erste Spalte)
- danach die zweite Spalte normal mit Komma und Qualifier trennen
- erste Zeile in Header umwandeln
- Typenkonvertierung
cu
Chris
Anzeige
AW: CSV Datei lässt sich nicht trennen
03.06.2022 16:06:13
Herbert_Grom
Hallo Chris,
die CSV kommt so, wie ich sie hochgeladen habe, von einer App der Firma Range-Rover. Die kann dort nur so wie sie ist generiert werden. Da ich das für einen sehr Excel-Unbedarften Freund machen muss, muss das so unkompliziert wie möglich geschehen. Deshalb dachte ich ja an den Datenimport, so wie ich das schon seit vielen Jahren mache. Aber das funktioniert so leider nicht mehr, bzw. es wird nicht mehr Kommagetrennt.
Deshalb sind dein Schritte sehr sinnvoll, aber nur, wenn ich für mich die Datei bearbeiten würde. Nachträglich bearbeiten geht da leider nicht.
Aber vielleicht weiß ja noch Jemand eine Lösung!
Servus
Anzeige
AW: CSV Datei lässt sich nicht trennen
03.06.2022 17:46:24
ChrisL
Hi Herbert
Die Anwendung konnte Werner bereits klären.
Spalte A ohne Text-Qualifier ist eigentlich gar nicht ungewöhnlich, weil es ja in Wahrheit kein Text sondern ein Datum ist. Inkonsequent ist eher, dass für den zweiten Datumswert und für die folgenden Zahlen ein Text-Qualifier verwendet wurde. Aber egal, die Lösung funktioniert.
Was ich eigentlich noch sagen wollte. Wenn du einen URL als Speicherort für die Quelle hast, kannst du natürlich auch direkt eine Webabfrage versuchen. Oder wenn die CSV-Dateien im Standard mit einem variablen Dateinamen bezeichnet sind, könnte man eine Ordnerabfrage machen, die immer die neuste Datei aus dem Ordner bezieht (Dateinamen egal).
cu
Chris
Anzeige
AW: CSV Datei lässt sich nicht trennen
03.06.2022 17:49:14
Herbert_Grom
Hallo Chris,
vielen Dank für deine Infos. Die PQ-Abfrage ist auch mit einem Ordner & Datei verknüpft und es funzt jetzt prächtig.
Servus
AW: CSV Datei lässt sich nicht trennen
03.06.2022 12:30:23
Sigi.21
Hallo Herbert,
die txt-Datei hat kein Standard-Trennzeichen, sondern ein Doppelhochomma (""). Ich hab's einfach rausgeschmissen e voilá.
Gruß Sigi
https://www.herber.de/bbs/user/153410.xlsx
AW: CSV Datei lässt sich nicht trennen
03.06.2022 15:24:45
Herbert_Grom
Hallo Sigi,
wo hast du es rausgeschmissen? Beim Import, oder erst danach?
Servus
AW: CSV Datei lässt sich nicht trennen
03.06.2022 13:09:44
Daniel
Hi
das ist eine englische CSV-Datei mit Komma als Trennzeichen und dem Punkt als Dezimalzeichen bei Zahlen.
dein Deutsches Excel versucht, diese Datei mit den deutschen Einstellungen, dh Semikolon als Trennzeichen und dem Komma als Dezimalzeichen einzulesen. Da die Zeilen kein Semikolon enthalten, wird nichts getrennt sondern alles in eine Spalte eingelesen.
du hast zwei möglichkeiten:
a) die Datei direkt öffnen so dass alles in eine Spalte kommt, diese Spalte kannst du dann nachträglich mit TEXT IN SPALTEN (Menüpunkt DATEN) aufteilen
b) du öffnest die Datei über die Importfunktion, dabei kannst du dann angeben, was Trenn- und Dezimalzeichen sein soll, ähnlich wie bei Text-in-Spalten
die Einstellungen für Text-In-Spalten wären:
Schritt 1: getrennt
Schritt 2: Komma als Trennzeichen und AnfZeichen als Textqualifizierer
Schritt 3: WEITERE und dann angeben, dass der Punkt das Dezimalzeichen sein soll.
Gruß Daniel
Anzeige
AW: CSV Datei lässt sich nicht trennen
03.06.2022 15:26:56
Herbert_Grom
Hallo Daniel,
vielen Dank für deine Info.
zu deinem Punkt a: Das ist klar, ist aber nicht das was ich gemeint habe, denn ich will schon beim Datenimport alles auf Spalten aufteilen. Früher war das mal möglich, aber heute geht das so nicht mehr.
zu b: Wenn du das meinst (s. Bild), dann habe ich das auch schon vergeblich versucht. Dort habe ich mit allen angebotenen Möglichkeiten erfolglos getestet, einschließlich "Benutzerdefiniert: Punkt".
Userbild
Gibt es evtl. noch eine Möglichkeit, schon beim Import alles auf Spalten aufzuteilen?
Servus
Anzeige
AW: CSV Datei lässt sich nicht trennen
04.06.2022 01:47:13
Daniel
Du kannst in den Optionen die legacy- importfunktionen aktivieren, dann gehts wie "früher"
Gruß Daniel
AW: CSV Datei lässt sich nicht trennen
04.06.2022 10:01:49
Herbert_Grom
Hallo Daniel,
das habe ich jetzt versucht, aber ohne Erfolg (s. Bild)! Habe ich da etwas falsch gemacht?
Userbild
Servus
AW: CSV Datei lässt sich nicht trennen
04.06.2022 10:18:50
Eifeljoi5
Hallo
Das importieren ist sehr gut möglich.
Der Fehler liegt daran, statt Komma mus Semicolon genommen werden.
AW: CSV Datei lässt sich nicht trennen
04.06.2022 10:43:43
Herbert_Grom
Hallo,
vielen Dank für deinen Tipp, doch das habe ich, neben allen anderen Importmöglichkeiten natürlich auch erfolglos getestet!
Servus
Anzeige
AW: CSV Datei lässt sich nicht trennen
04.06.2022 10:54:13
Eifeljoi5
Hallo
Hier mein M-Code, User Name ist abgeändert.
let
Source = Csv.Document(File.Contents("C:\Users\......\Downloads\153407\Velar Excel Format.csv"),[Delimiter=";", Columns=1, Encoding=65001, QuoteStyle=QuoteStyle.None]),
#"Split Column by Delimiter" = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10", "Column1.11", "Column1.12", "Column1.13", "Column1.14"}),
#"Promoted Headers" = Table.PromoteHeaders(#"Split Column by Delimiter", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Startdatum", type date}, {"Startzeit", type time}, {"Enddatum", type date}, {"Endzeit", type time}, {"Startort", type text}, {"Startkoordinaten", type text}, {"Zielort", type text}, {"Zielkoordinaten", type text}, {"Dauer (HH:MM)", type time}, {"Abstand(km)", Int64.Type}, {"Leistungsfähigkeit(l/100 km)", Int64.Type}, {"Durchschnittsgeschwindigkeit(km/h)", Int64.Type}, {"PHEV Fuel efficiency(l/100 km)", Int64.Type}, {"EV Distance(km)", Int64.Type}}),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Changed Type", "Startort", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Startort.1", "Startort.2", "Startort.3"}),
#"Split Column by Delimiter2" = Table.SplitColumn(#"Split Column by Delimiter1", "Startkoordinaten", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Startkoordinaten.1", "Startkoordinaten.2"}),
#"Split Column by Delimiter3" = Table.SplitColumn(#"Split Column by Delimiter2", "Zielort", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Zielort.1", "Zielort.2", "Zielort.3"}),
#"Split Column by Delimiter4" = Table.SplitColumn(#"Split Column by Delimiter3", "Zielkoordinaten", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Zielkoordinaten.1", "Zielkoordinaten.2"})
in
#"Split Column by Delimiter4"
Anzeige
AW: CSV Datei lässt sich nicht trennen
04.06.2022 11:02:15
Oberschlumpf
Oh Man! :-/
du musst...

Deinen Code
...nicht SO darstellen (auf Button klicken, in dem in gelb als Text "Code..." steht), aber würdest du es tun, könnte deine Antwort vielleicht sogar hilfreich sein :-/
AW: CSV Datei lässt sich nicht trennen
04.06.2022 12:21:26
Eifeljoi5


let
Source = Csv.Document(File.Contents("C:\Users\......\Downloads\153407\Velar Excel Format.csv"),[Delimiter=";", Columns=1, Encoding=65001, QuoteStyle=QuoteStyle.None]),
#"Split Column by Delimiter" = Table.SplitColumn(Source, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10", "Column1.11", "Column1.12", "Column1.13", "Column1.14"}),
#"Promoted Headers" = Table.PromoteHeaders(#"Split Column by Delimiter", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Startdatum", type date}, {"Startzeit", type time}, {"Enddatum", type date}, {"Endzeit", type time}, {"Startort", type text}, {"Startkoordinaten", type text}, {"Zielort", type text}, {"Zielkoordinaten", type text}, {"Dauer (HH:MM)", type time}, {"Abstand(km)", Int64.Type}, {"Leistungsfähigkeit(l/100 km)", Int64.Type}, {"Durchschnittsgeschwindigkeit(km/h)", Int64.Type}, {"PHEV Fuel efficiency(l/100 km)", Int64.Type}, {"EV Distance(km)", Int64.Type}}),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Changed Type", "Startort", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Startort.1", "Startort.2", "Startort.3"}),
#"Split Column by Delimiter2" = Table.SplitColumn(#"Split Column by Delimiter1", "Startkoordinaten", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Startkoordinaten.1", "Startkoordinaten.2"}),
#"Split Column by Delimiter3" = Table.SplitColumn(#"Split Column by Delimiter2", "Zielort", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Zielort.1", "Zielort.2", "Zielort.3"}),
#"Split Column by Delimiter4" = Table.SplitColumn(#"Split Column by Delimiter3", "Zielkoordinaten", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Zielkoordinaten.1", "Zielkoordinaten.2"})
in
#"Split Column by Delimiter4"

Anzeige
vielen Dank! owT
04.06.2022 12:53:17
Oberschlumpf
AW: CSV Datei lässt sich nicht trennen
04.06.2022 11:05:55
Herbert_Grom
Hallo,
nochmal vielen Dank für deinen Tipp, doch habe ich mittlerweile herausgefunden, dass man das Ganze auch bei "Spalte teilen/Nach Trennzeichen" das Komma auswählen kann und dann klappts auch mit der Datenaufteilung! Der "let"-Code wird dabei automatisch erstellt.
Servus
AW: viele Wege führen nach Rom ...
04.06.2022 20:23:55
neopa
Hallo,
... Deine Lösung ist aber auf eine fixe Spaltenzahl festgelegt und bedarf bei einer Änderung der Anzahl auch eine entsprechende Anpassung des M-Codes.
Gruß Werner
.. , - ...
AW: viele Wege führen nach Rom ...
04.06.2022 20:50:09
Eifeljoi5
Hallo
Warum ist mein M-Code auf eine fixe Spaltenanzahl fest?
Ich sehe aber noch nicht so.
AW: dazu festgestellt und nachgefragt ...
05.06.2022 08:39:17
neopa
Hallo Eifeljoi5,
... offensichtlich arbeitest Du mit einem englischsprachigen Excel. Welche Version?
Ich hab eine deutschsprachige Excel2016-Version im Einsatz. Mit dieser kann ich interaktiv den Import nicht so vornehmen, wie von Dir aufgezeigt. Das hatte ich gestern Abend nicht richtig gescheckt, was mich auf die Schnelle zu einer falschen Aussage verleidete, sorry.
Wenn ich meinen M-Code für den Schritt "Quelle" im PQ-Editor anpasse, komme ich auch zur gekürzten Lösung, was damit meinen bisherigen kleinen Umweg überflüssig macht. Konntest Du in Deiner Version den Import interaktiv vornehmen oder hast Du den Code im PQ-Editor auch entsprechend angepasst?
Gruß Werner
.. , - ...
Anzeige
AW: dazu festgestellt und nachgefragt ...
05.06.2022 12:25:51
Eifeljoi5
Hallo Werner
Nein ich arbeite mit deutschem Microsoft 365 als 32 und 64 bit Version als Abo und umgestellt auf Betakanal so das ich auch die neuen Formeln mir an schauen kann.
Aber ich habe aus Absicht immer im PQ Editor auf englisch umgestellt. Mein M-Code ist aus faulheit nicht bearbeitet, ich weiß es tun einige ihn bearbeiten.
Mein Code ist länger als deiner weil ich noch die fehlenden Spalten gesplittet habe. Mein M-Code müsste auch so laufen bei dir ohne Umstellung.
AW: hierzu ...
05.06.2022 14:02:27
neopa
Hallo Eifeljoi5,
... ja natürlich läuft Dein M-Code auch bei mir in meiner deutschsprachigen XL2016 mit deutschsprachigen PQ-Editor.
Aber mit dieser Basiseinstellung gelang es mir bisher nicht, standardmäßig das Einlesen der CSv-Datei so vorzunehmen, dass alle Datensätze der CSV-Datei automatisch in nur eine Spalte eingelesen werden.
Nach Deiner heute Mittag getätigten Aussage, habe ich nun nochmal nach einer Lösung gesucht, auch ohne Manipulation im PQ-Editor auszukommen. Ich konnte feststellen, dass es genau genommen recht einfach ist. Man muss halt beim Import nur als Trennzeichen, eins auswählen, welches in den Datensätzen nicht vorhanden ist. Im vorliegenden Beispiel entweder das Semikolon, wie Du es genommen hast oder den Doppelpunkt.
Gruß Werner
.. , - ...
AW: dann importiere und trenne mit PQ ...
03.06.2022 16:14:59
neopa
Hallo Herbert,
... der M-Code dazu, sieht bei mir z.B. wie folgt aus (ersetze darin die... durch Deinen Usernamen):

let
Quelle = Csv.Document(File.Contents("C:\Users\...\Downloads\Velar Excel Format.csv"),[Delimiter=",", Columns=14, Encoding=65001, QuoteStyle=QuoteStyle.None]),
#"Geänderter Typ" = Table.TransformColumnTypes(Quelle,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}, {"Column8", type text}, {"Column9", type text}, {"Column10", type text}, {"Column11", type text}, {"Column12", type text}, {"Column13", type text}, {"Column14", type text}}),
#"Zusammengeführte Spalten" = Table.CombineColumns(#"Geänderter Typ",{"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Zusammengeführt"),
#"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Zusammengeführte Spalten", "Benutzerdefiniert", each if [Column1]="Startdatum" then [Column1]&","&[Zusammengeführt] else [Column1]),
#"Entfernte Spalten" = Table.RemoveColumns(#"Hinzugefügte benutzerdefinierte Spalte",{"Column1", "Zusammengeführt"}),
#"Spalte nach Trennzeichen teilen1" = Table.SplitColumn(#"Entfernte Spalten", "Benutzerdefiniert", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Benutzerdefiniert.1", "Benutzerdefiniert.2", "Benutzerdefiniert.3", "Benutzerdefiniert.4", "Benutzerdefiniert.5", "Benutzerdefiniert.6", "Benutzerdefiniert.7", "Benutzerdefiniert.8", "Benutzerdefiniert.9", "Benutzerdefiniert.10", "Benutzerdefiniert.11", "Benutzerdefiniert.12", "Benutzerdefiniert.13", "Benutzerdefiniert.14"}),
#"Höher gestufte Header" = Table.PromoteHeaders(#"Spalte nach Trennzeichen teilen1", [PromoteAllScalars=true]),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Höher gestufte Header",{{"Startdatum", type text}, {"Startzeit", type text}, {"Enddatum", type text}, {"Endzeit", type text}, {"Startort", type text}, {"Startkoordinaten", type text}, {"Zielort", type text}, {"Zielkoordinaten", type text}, {"Dauer (HH:MM)", type text}, {"Abstand(km)", type text}, {"Leistungsfähigkeit(l/100 km)", type text}, {"Durchschnittsgeschwindigkeit(km/h)", type text}, {"PHEV Fuel efficiency(l/100 km)", type text}, {"EV Distance(km)", type text}})
in
#"Geänderter Typ1"
Gruß Werner
.. , - ...
AW: dann importiere und trenne mit PQ ...
03.06.2022 16:17:49
Herbert_Grom
Hallo Werner,
vielen Dank für deinen Tipp, doch kenne ich mich mit PQ überhaupt nicht aus. Könntest Du mir da bitte noch eine deutlichere Anleitung geben?
Servus
AW: dafür ...
03.06.2022 16:31:40
neopa
Hallo Herbert,
... solltest Dir heute oder Pfingsten mal ein paar Stündchen Zeit nehmen und Dich mal zunächst z.B. hier: https://excelhero.de/power-query/power-query-ganz-einfach-erklaert/ etwas einzulesen. Mit Deinen Vorkenntnissen wirst Du Dich da schnell rein finden und wirst danach sicherlich auch zumindest angenehm überrascht sein, was damit alles möglich ist. Du brauchst zunächst auch keine neue Programmiersprache erlernen. Der von mir dargestellte M-Code ist im wesentlichen durch interaktiv auszuführende Mausaktivitäten als "Nebenprodukt" erstanden (also in etwa vergleichbar wie ein VBA-Code mit dem Makrorekorder).
Die notwendigen "Schritte" per Maus, die ich hier vorgenommen habe, könnte ich Dir auch verbal beschreiben. Besser ist es mE allerdings, wenn Du Dir zuvor schon mal über den angegeben Link etwas Einblick verschafft hast.
Gruß Werner
.. , - ...
AW: dafür ...
03.06.2022 16:39:12
Herbert_Grom
Hallo Werner,
vielen Dank, ich hab's schon gefunden und es funzt prima!!!
Servus, in die neue, europäische Kulturhauptstadt 2025!
AW: bitteschön, freut mich owT
03.06.2022 16:51:48
neopa
Gruß Werner
.. , - ...
AW: bitteschön, freut mich owT
04.06.2022 13:00:57
Herbert_Grom
Hallo Werner,
eine Frage habe ich noch: In der letzten Spalte werden in der CSV die Zahlen mit dem Dezimalpunkt angezeigt, z. B. 22.2! Wenn ich diese Spalte auf Dezimal umstelle, wird diese Zahl so an Excel übergeben: 222! Gibt es da eine Möglichkeit, diese Zahlen schon beim Import durch 10 zu teilen?
Servus
AW: ja, natürich ...
04.06.2022 20:05:42
neopa
Hallo Herbert,
... nachdem Du das Format geändert hast, aktiviere im Startmenü im Bereich [Zahlenspalte] die Funktionsgruppe [Standard] und dort [Dividieren]. und ... ferdsch ;-)
Gruß Werner
.. , - ...
AW: ja, natürich ...
05.06.2022 09:22:06
Herbert_Grom
Hallo Werner,
vielen Dank für deine Info, doch leider finde ich bei mir den Bereich [Zahlenspalte] nicht, s. Bild. Oder was mache ich da falsch?
Userbild
Servus
AW: ja, natürich ...
05.06.2022 09:47:58
Herbert_Grom
Hallo Werner,
Entwarnung, ich habs gefunden! Vielen Dank!
Schöne Pfingsten
Servus
AW: bitteschön und wünsche gleiches Dir owT
05.06.2022 12:05:57
neopa
Gruß Werner
.. , - ...
AW: dafür ...
03.06.2022 20:07:45
Luschi
Hallo Herbert,
du siehst, auch wir kommen an diesem PQ-Thema nicht mehr vorbei. Ich lasse dafür den neumodischen Kram (E-365-Beta-Kanal) so gut wie links liegen, PQ kann das schon lange. Nur die Formel-Bsp. von {Boris} nehme ich in die Excel-Schatzkiste auf - ansonsten freie Fahrt für PQ/P-Pvt.
Gruß von Luschi
aus klein-Paris
AW: dafür ...
04.06.2022 10:11:26
Herbert_Grom
Hallo Luschi,
du hast ja so recht. Was war das doch zu Excel 2003-Zeiten für eine schöne Zeit. Man wusste, was alles nicht geht (und das war eine Menge!) und man arrangierte sich damit. Der Datenimport war eine einfache, aber komplizierte, Angelegenheit. Aber ich sollte mich wahrscheinlich noch mehr mit PQ auseinander setzen. Doch, ganz ehrlich, es fehlt mir etwas an der Motivation. Mal sehen, wie es wird. Und es beruhigt mich, dass du das auch so empfindest. Vielen Dank für deine Aufmunterung!
Servus, nach "klein-Paris", wo ich mit Wastl und P@ulchen zusammen, 2006, nach "Ziegenrück", eine Stadtrundfahrt gemacht und anschließend noch das Völkerschlacht-Denkmal besichtigt habe! Ein Highlight!
Servus
AW: dafür ...
06.06.2022 06:40:47
Luschi
Hallo Herbert,
hier mal meinen Senf zu Deinem M-Problem bei der eingestellten CSV-Datei:

let
//mein Dateipfad zur csv-Datei
Pfad = "E:\Daten\Excel\PowerQuery\Neopa_PQ\07\CSV",
Quelle = Csv.Document(File.Contents(Pfad & "\Velar Excel Format.csv"),[Delimiter=",", Columns=14, Encoding=65001,
QuoteStyle=QuoteStyle.None]),
#"Höher gestufte Header" = Table.PromoteHeaders(Quelle, [PromoteAllScalars=true]),
//Namensliste der neuen Spaltenüberschriften
SpaltenNamensListe = Table.ColumnNames(#"Höher gestufte Header"),
//nur 1. Spalte behalten
#"Andere entfernte Spalten" = Table.SelectColumns(#"Höher gestufte Header",{SpaltenNamensListe{0}}),
//alle "-Zeichen in der Spalte entfernen
#"Ersetzter Wert" = Table.ReplaceValue(#"Andere entfernte Spalten","""","",Replacer.ReplaceText,{"Startdatum"}),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Andere entfernte Spalten", "Startdatum",
Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), SpaltenNamensListe),
//Transformieren-Datentyp erkennen
#"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen", {{"Startdatum", type date},
{"Startzeit", type time}, {"Enddatum", type date}, {"Endzeit", type time}, {"Startort", type text},
{"Startkoordinaten", type text}, {"Zielort", type text}, {"Zielkoordinaten", type text},
{"Dauer (HH:MM)", type time}, {"Abstand(km)", Int64.Type}, {"Leistungsfähigkeit(l/100 km)", Int64.Type},
{"Durchschnittsgeschwindigkeit(km/h)", Int64.Type}, {"PHEV Fuel efficiency(l/100 km)", Int64.Type},
{"EV Distance(km)", Int64.Type}})
in
#"Geänderter Typ"
Gruß von Luschi
aus klein-Paris
AW: Dein hier aufgezeigter "Weg nach Rom" ..
06.06.2022 08:13:36
neopa
Hallo Luschi,
... ist interessant, zeigt aber auch einen "Umweg" auf, der dazu zumindest für mich noch "beschwerlicher zu begehen" ist, als der in meiner zuerst eingestellten Lösung. Jedoch Deine Vorabdefinition des Quellpfades halte ich für sinnvoll.
Überzeugt durch die Beiträge von Eifeljoi5, halte ich die Übernahme der Daten in nur eine Spalte als momentan einfachste und schnellste Lösung. Mein M-Code sieht deshalb aktuell wie folgt aus:

let
Quelle = Csv.Document(File.Contents("C:\Users\...\Downloads\Velar Excel Format.csv"),[Delimiter=";", Columns=1, Encoding=65001, QuoteStyle=QuoteStyle.None]),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(Quelle, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10", "Column1.11", "Column1.12", "Column1.13", "Column1.14"}),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Column1.1", type text}, {"Column1.2", type text}, {"Column1.3", type text}, {"Column1.4", type text}, {"Column1.5", type text}, {"Column1.6", type text}, {"Column1.7", type text}, {"Column1.8", type text}, {"Column1.9", type text}, {"Column1.10", type text}, {"Column1.11", type text}, {"Column1.12", type text}, {"Column1.13", type text}, {"Column1.14", type text}}),
#"Höher gestufte Header" = Table.PromoteHeaders(#"Geänderter Typ", [PromoteAllScalars=true]),
#"Geänderter Typ1" = Table.TransformColumnTypes(#"Höher gestufte Header",{{"Startdatum", type date}, {"Startzeit", type time}, {"Enddatum", type date}, {"Endzeit", type time}, {"Startort", type text}, {"Startkoordinaten", type text}, {"Zielort", type text}, {"Zielkoordinaten", type text}, {"Dauer (HH:MM)", type time}, {"Abstand(km)", Int64.Type}, {"Leistungsfähigkeit(l/100 km)", Int64.Type}, {"Durchschnittsgeschwindigkeit(km/h)", Int64.Type}, {"PHEV Fuel efficiency(l/100 km)", Int64.Type}, {"EV Distance(km)", Int64.Type}}),
Divisionsspalte = Table.TransformColumns(#"Geänderter Typ1", {{"EV Distance(km)", each _ / 10, type number}})
in
Divisionsspalte
Gruß Werner
.. , - ...
AW: Dein hier aufgezeigter "Weg nach Rom" ..
06.06.2022 09:33:18
Herbert_Grom
Hallo Luschi & Werner,
ich danke euch für euere Vorschläge. Bitte seid mir aber nicht böse, aber ich behalte jetzt die Version bei, die ich bereits eingebaut habe, da sie bestens funktioniert.
Schönen Feiertag noch euch Beiden!
Servus
AW: Dein hier aufgezeigter "Weg nach Rom" ..
06.06.2022 10:36:55
Luschi
Hallo Werner,
bei mir sieht der M-Code inzwischen so aus:

let
PfadDatei = "E:\Daten\Excel\PowerQuery\Neopa_PQ\07\CSV\Velar Excel Format.csv",
Quelle = Csv.Document(File.Contents(PfadDatei),[Delimiter=";", Columns=1, Encoding=65001,
QuoteStyle=QuoteStyle.None]),
//Spaltenamen als List-Objekt aus der 1. Datenzeile von Quelle erstellen
/* so
aa1=Quelle{0},
aa2= Record.ToList(aa1),
aa3=List.First(aa2),
SpaltenNamenListe=Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv)(aa3),
//oder so - alles in einem PQ-Schritt
SpaltenNamenListe = Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv)
(List.First(Record.ToList(Quelle{0}))),
#"Gefilterte Zeilen" = Table.SelectRows(Quelle, each (Text.Start([Column1], 10)  "Startdatum")),
#"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Gefilterte Zeilen", "Column1",
Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), SpaltenNamenListe),
#"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",
{{"Startdatum", type date}, {"Startzeit", type time}, {"Enddatum", type date},
{"Endzeit", type time}, {"Startort", type text}, {"Startkoordinaten", type text},
{"Zielort", type text}, {"Zielkoordinaten", type text}, {"Dauer (HH:MM)", type time},
{"Abstand(km)", Int64.Type}, {"Leistungsfähigkeit(l/100 km)", Int64.Type},
{"Durchschnittsgeschwindigkeit(km/h)", Int64.Type},
{"PHEV Fuel efficiency(l/100 km)", Int64.Type}, {"EV Distance(km)", Int64.Type}}),
Divisionsspalte = Table.TransformColumns(#"Geänderter Typ", {{"EV Distance(km)", each _ / 10, type number}})
in
Divisionsspalte
Gruß von Luschi
aus klein-Paris
AW: Dein hier aufgezeigter "Weg nach Rom" ..
06.06.2022 11:57:13
Luschi
Hallo Herbert,
mein Wahlspruch:
Nichts ist so gut, daß man es nicht noch verbessern könnte - und ich verbessere - bis nix mehr geht!
Gruß von Luschi
aus klein-Paris
AW: dies ist aber mE nur ein kürzerer "Umweg" owT
06.06.2022 12:55:42
neopa
Gruß Werner
.. , - ...
AW: die Spaltenformate natürlich noch anpassen owT
03.06.2022 16:20:01
neopa
Gruß Werner
.. , - ...

338 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige