Registriert seit: 10.04.2014
Version(en): Office 2019
12.05.2018, 12:58
(Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2018, 12:58 von Jockel.)
(12.05.2018, 07:33)BeginnerBUS schrieb: Meintest du die myrecords.txt Datei oder die xlsx ? Falls es die txt Datei war: ja, die liefert ja "bescheuerte" Datenformatierung und ist der Grund weshalb ich hier herkam :) Denn ich will eine Möglichkeit finden, diese schlecht formatierten Rohdaten in eine schöne Tabelle zu bekommen, ohne den Rohdatensatz dabei jedesmal von Hand editieren zu müssen. ... Es kommen künftig aber noch Datensätze in dem selben Format von anderen Personen. Es interessiert mich deshalb wirklich sehr, wie du diese Tabelle "Auswertung" mit PowerQuery erstellst... Hallo, ich meinte, dass der Anfang mit Time beginnen sollte, nicht mit einem Rest von einem Datensatz; dass man nicht zweimal innerhalb einer Minute auf das Gerät steigt, sodass Nullwerte entstehen. Ansonsten geht doch das ganz gut... Ich schaue mir jetzt noch deine "neuen" Dateien an. Aber myrecords.txt geht prima, wie man sieht... Oder ist Time gar nicht der Beginn des Datensatz', sondern Muscle Mass...!?!?! Ist doch sehr unwahrscheinlich...!!!
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 12.04.2014
Version(en): Office 365
(12.05.2018, 12:58)Jockel schrieb: Oder ist Time gar nicht der Beginn des Datensatz', sondern Muscle Mass...!?!?! Ist doch sehr unwahrscheinlich...!!! Ich habe den ersten Datensatz mit dem ersten Wert beginnen lassen. Komischerweise heißt es dort noch Mass und später dann Muscle Mass. Aber deine Variante ist auch möglich. Der erste Datensatz beginnt mit dem ersten Timestamp. Dann müsste ich meine Lösung noch mal überarbeiten.
Wir sehen uns! ... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 12.04.2014
Version(en): Office 365
(12.05.2018, 07:33)BeginnerBUS schrieb: Es kommen künftig aber noch Datensätze in dem selben Format von anderen Personen. Stehen die dann die Daten aller Personen in einer Datei oder hat jede Person eine separate Datei?
Wir sehen uns! ... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 10.04.2014
Version(en): Office 2019
12.05.2018, 13:50
(Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2018, 13:50 von Jockel.)
DD - Danke Detlef, für den (versteckten) Tipp mit einer Index-Spalte. Die Lösung mit PQ wird für mich immer besser..! Ich bin jetzt hier... (mit Att_1_myrecords.txt )Arbeitsblatt mit dem Namen 'Tabelle1' | | A | B | C | D | E | F | G | H | I | J | 1 | Date | Time | Weight | Body water | Body fat | Bone Mass | Visceral fat | BMR | Muscle Mass | BMI | 2 | 19.04.2018 | 13:18 | 77,6 kg | 56,4% | 17,8% | 3,2 kg | 8,0 | 1907,0 | 60,7 kg | 24,2 | 3 | 16.04.2018 | 11:39 | 78,3 kg | 56,2% | 18,0% | 3,2 kg | 8,0 | 1920,0 | 61,0 kg | 24,4 | 4 | 12.04.2018 | 11:56 | 74,0 kg | 57,7% | 15,9% | 3,1 kg | 8,0 | 1845,0 | 59,1 kg | 23,1 | 5 | 11.04.2018 | 00:35 | 77,5 kg | 56,2% | 18,1% | 3,1 kg | 8,0 | 1906,0 | 60,3 kg | 24,2 | 6 | 10.04.2018 | 07:50 | 76,5 kg | 56,7% | 17,4% | 3,1 kg | 8,0 | 1888,0 | 60,1 kg | 23,9 | 7 | 07.04.2018 | 21:08 | 77,8 kg | 56,6% | 17,5% | 3,2 kg | 8,0 | 1911,0 | 61,0 kg | 24,3 | 8 | 31.03.2018 | 09:08 | 78,2 kg | 56,4% | 17,9% | 3,2 kg | 8,0 | 1918,0 | 61,1 kg | 24,4 | 9 | 30.03.2018 | 09:19 | 77,4 kg | 56,5% | 17,6% | 3,1 kg | 8,0 | 1904,0 | 60,6 kg | 24,2 | 10 | 29.03.2018 | 09:16 | 76,5 kg | 56,8% | 17,2% | 3,1 kg | 8,0 | 1888,0 | 60,2 kg | 23,9 | 11 | 28.03.2018 | 20:11 | 76,7 kg | 56,9% | 17,1% | 3,1 kg | 8,0 | 1892,0 | 60,5 kg | 23,9 | 12 | 28.03.2018 | 09:48 | 75,6 kg | 57,1% | 16,8% | 3,1 kg | 8,0 | 1873,0 | 59,8 kg | 23,6 | 13 | 27.03.2018 | 00:30 | 77,1 kg | 56,5% | 17,7% | 3,1 kg | 8,0 | 1899,0 | 60,3 kg | 24,1 | 14 | 25.03.2018 | 23:50 | 78,4 kg | 55,8% | 18,7% | 3,1 kg | 8,0 | 1921,0 | 60,6 kg | 24,5 | 15 | 23.03.2018 | 15:41 | 76,2 kg | 56,9% | 17,1% | 3,1 kg | 8,0 | 1883,0 | 60,1 kg | 23,8 | 16 | 22.03.2018 | 08:32 | 77,3 kg | 56,4% | 17,7% | 3,1 kg | 8,0 | 1902,0 | 60,5 kg | 24,1 | 17 | 21.03.2018 | 14:47 | 76,5 kg | 57,0% | 16,9% | 3,1 kg | 8,0 | 1888,0 | 60,4 kg | 23,9 | 18 | 21.03.2018 | 12:02 | 78,8 kg | 55,9% | 18,6% | 3,2 kg | 8,0 | 1928,0 | 61,0 kg | 24,6 | 19 | 21.03.2018 | 12:02 | 78,8 kg | 0,0% | 0,0% | 0,0 kg | 0,0 | 0,0 | 0,0 kg | 24,6 | 20 | 21.03.2018 | 11:23 | 78,5 kg | 56,2% | 18,1% | 3,2 kg | 8,0 | 1923,0 | 61,1 kg | 24,5 | 21 | 21.03.2018 | 11:00 | 77,2 kg | 56,6% | 17,4% | 3,1 kg | 8,0 | 1900,0 | 60,6 kg | 24,1 | 22 | 21.03.2018 | 10:56 | 77,3 kg | 56,7% | 17,4% | 3,2 kg | 8,0 | 1902,0 | 60,7 kg | 24,1 | 23 | 21.03.2018 | 10:54 | 77,2 kg | 56,7% | 17,3% | 3,2 kg | 8,0 | 1900,0 | 60,7 kg | 24,1 |
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2010 | Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg |
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 10.05.2018
Version(en): office 365
(12.05.2018, 13:50)Jockel schrieb: DD - Danke Detlef, für den (versteckten) Tipp mit einer Index-Spalte. Die Lösung mit PQ wird für mich immer besser..! Ich bin jetzt hier... (mit Att_1_myrecords.txt ) Also du hast das mit der Rohdatei und mit PQ gemacht? Das sieht so toll aus. Erfahre ich wie es gemacht wird? Könnte ich die Datei haben und den, ich nenne es mal Importcode in PQ, sehen um ihn nachvollziehen zu können? Ich habe inzwischen etwas mit vba angefangen und werde wohl noch etwas brauchen, bis ich sowas alleine zustande bekomme. Künftige Datensätze von anderen Personen kommen in einer seperaten Datei, aber in derselben Formatierung.
Registriert seit: 10.04.2014
Version(en): Office 2019
Ja, klar später ich muss gleich wech... aber gegen Mittag... Bis dahin.
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 10.04.2014
Version(en): Office 2019
14.05.2018, 12:42
(Dieser Beitrag wurde zuletzt bearbeitet: 14.05.2018, 12:42 von Jockel.)
Hallo, ich habe eine leere Datei --> Power Query aus Datei --> deine Datei hatte ich vorher abgespeichert... ... und dann sukzessive folgende Schritte durchgeführt (davon sind zwei oder drei Schritte selbst "programmiert" bzw. geschrieben...: Du nimmst eine leere Datei her. Neue Abfrage --> Ansicht --> Erweiterter Editor und code einfügen... Fertisch...! "Meine" Datei macht da wenig Sinn, wil da alles genau so drin ist... Du musst die Tabelle nachher nur noch nach "gut dünken" formatieren... PHP-Code: let Quelle = Table.FromColumns({Lines.FromBinary(File.Contents("C:\DatenBank\Att_1_myrecords.txt"), null, null, 1252)}), #"Entfernte oberste Zeilen" = Table.Skip(Quelle,3), #"Gefilterte Zeilen" = Table.SelectRows(#"Entfernte oberste Zeilen", each true), #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Gefilterte Zeilen", "Column1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, true), {"Column1.1", "Column1.2"}), #"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Column1.1", type text}, {"Column1.2", type text}}), #"Spalte nach Trennzeichen teilen1" = Table.SplitColumn(#"Geänderter Typ", "Column1.2", Splitter.SplitTextByDelimiter("/", QuoteStyle.Csv), {"Column1.2.1", "Column1.2.2", "Column1.2.3"}), #"Geänderter Typ1" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen1",{{"Column1.2.1", Int64.Type}, {"Column1.2.2", Int64.Type}, {"Column1.2.3", Int64.Type}}), #"Neu angeordnete Spalten" = Table.ReorderColumns(#"Geänderter Typ1",{"Column1.1", "Column1.2.2", "Column1.2.1", "Column1.2.3"}), #"Zusammengeführte Spalten" = Table.CombineColumns(Table.TransformColumnTypes(#"Neu angeordnete Spalten", {{"Column1.2.2", type text}, {"Column1.2.1", type text}, {"Column1.2.3", type text}}, "de-DE"),{"Column1.2.2", "Column1.2.1", "Column1.2.3"},Combiner.CombineTextByDelimiter(".", QuoteStyle.None),"Zusammengeführt"), #"Spalte nach Trennzeichen teilen2" = Table.SplitColumn(#"Zusammengeführte Spalten", "Column1.1", Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false), {"Column1.1.1", "Column1.1.2"}), #"Geänderter Typ2" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen2",{{"Column1.1.1", type text}, {"Column1.1.2", type text}}), #"Entfernte Spalten" = Table.RemoveColumns(#"Geänderter Typ2",{"Column1.1.2"}), #"Spalte nach Trennzeichen teilen3" = Table.SplitColumn(#"Entfernte Spalten", "Column1.1.1", Splitter.SplitTextByEachDelimiter({":"}, QuoteStyle.Csv, false), {"Column1.1.1.1", "Column1.1.1.2"}), #"Geänderter Typ3" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen3",{{"Column1.1.1.1", type text}, {"Column1.1.1.2", type text}}), #"Spalte nach Trennzeichen teilen4" = Table.SplitColumn(#"Geänderter Typ3", "Column1.1.1.2", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.1.1.2.1", "Column1.1.1.2.2", "Column1.1.1.2.3", "Column1.1.1.2.4", "Column1.1.1.2.5"}), #"Geänderter Typ4" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen4",{{"Column1.1.1.2.1", type text}, {"Column1.1.1.2.2", type text}, {"Column1.1.1.2.3", type text}, {"Column1.1.1.2.4", type text}, {"Column1.1.1.2.5", type text}}), #"Entfernte Spalten1" = Table.RemoveColumns(#"Geänderter Typ4",{"Column1.1.1.2.2", "Column1.1.1.2.3", "Column1.1.1.2.4", "Column1.1.1.2.5"}), #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Entfernte Spalten1", "Benutzerdefiniert", each if [Column1.1.1.1] = "Time" then [Column1.1.1.2.1] else ""), #"Ersetzter Wert" = Table.ReplaceValue(#"Hinzugefügte benutzerdefinierte Spalte","..","",Replacer.ReplaceText,{"Zusammengeführt"}), #"Geänderter Typ5" = Table.TransformColumnTypes(#"Ersetzter Wert",{{"Benutzerdefiniert", type time}}), #"Zusammengeführte Spalten1" = Table.CombineColumns(Table.TransformColumnTypes(#"Geänderter Typ5", {{"Benutzerdefiniert", type text}}, "de-DE"),{"Zusammengeführt", "Benutzerdefiniert"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Datum Uhrzeit"), #"Geänderter Typ6" = Table.TransformColumnTypes(#"Zusammengeführte Spalten1",{{"Datum Uhrzeit", type datetime}}), #"Nach unten gefüllt" = Table.FillDown(#"Geänderter Typ6",{"Datum Uhrzeit"}), #"Umbenannte Spalten" = Table.RenameColumns(#"Nach unten gefüllt",{{"Column1.1.1.2.1", "Werte"}, {"Column1.1.1.1", "Was"}}), #"Neu angeordnete Spalten1" = Table.ReorderColumns(#"Umbenannte Spalten",{"Datum Uhrzeit", "Was", "Werte"}), #"Hinzugefügter Index" = Table.AddIndexColumn(#"Neu angeordnete Spalten1", "Index", 1, 1), #"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügter Index", "Benutzerdefiniert", each [Index]/9), #"Aufrundung eingefügt" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte1", "Aufrunden", each Number.RoundUp([Benutzerdefiniert]), Int64.Type), #"Entfernte Spalten2" = Table.RemoveColumns(#"Aufrundung eingefügt",{"Index", "Benutzerdefiniert"}), #"Neu angeordnete Spalten2" = Table.ReorderColumns(#"Entfernte Spalten2",{"Aufrunden", "Datum Uhrzeit", "Was", "Werte"}), #"Pivotierte Spalte" = Table.Pivot(#"Neu angeordnete Spalten2", List.Distinct(#"Neu angeordnete Spalten2"[Was]), "Was", "Werte"), #"Entfernte Spalten3" = Table.RemoveColumns(#"Pivotierte Spalte",{"Aufrunden"}), #"Extrahiertes Datum" = Table.TransformColumns(#"Entfernte Spalten3",{{"Datum Uhrzeit", DateTime.Date, type date}}), #"Umbenannte Spalten1" = Table.RenameColumns(#"Extrahiertes Datum",{{"Datum Uhrzeit", "Date"}}), #"Geänderter Typ7" = Table.TransformColumnTypes(#"Umbenannte Spalten1",{{"Time", type time}}), #"Ersetzter Wert1" = Table.ReplaceValue(#"Geänderter Typ7","kg","",Replacer.ReplaceText,{"Weight", "Bone Mass", "Muscle Mass"}), #"Ersetzter Wert2" = Table.ReplaceValue(#"Ersetzter Wert1","%","",Replacer.ReplaceText,{"Body water", "Body fat"}), #"Ersetzter Wert3" = Table.ReplaceValue(#"Ersetzter Wert2",".",",",Replacer.ReplaceText,{"Weight", "Body water", "Body fat", "Bone Mass", "Visceral fat", "BMR", "Muscle Mass", "BMI"}), #"Geänderter Typ8" = Table.TransformColumnTypes(#"Ersetzter Wert3",{{"Weight", type number}, {"Body water", type number}, {"Body fat", type number}, {"Bone Mass", type number}, {"Visceral fat", type number}, {"BMR", type number}, {"Muscle Mass", type number}, {"BMI", type number}}), Divisionsspalte = Table.TransformColumns(#"Geänderter Typ8", {{"Body fat", each _ / 100, type number}}), Divisionsspalte1 = Table.TransformColumns(Divisionsspalte, {{"Body water", each _ / 100, type number}}) in Divisionsspalte1
Ändere die Quelle und es sollte passen... Viel Erfolg...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:1 Nutzer sagt Danke an Jockel für diesen Beitrag 28
• BeginnerBUS
Registriert seit: 29.09.2015
Version(en): 2030,5
Wenn ich das nun sehe scheint mir PQ gar nicht (far from) 'sexy' zu sein....
Registriert seit: 10.04.2014
Version(en): Office 2019
Hallo, ich weiß zwar nicht was du (damit) genau meinst, aber das sind (fast) alles (selbsterklärende) Klicks... ... diesen code könnte man noch kommentieren, aber dazu hatte ich weder Lust noch Zeit. Und: Dir muss es ja nicht gefallen... Aber das ist nur meine persönliche Meinung. Wahrscheinlich aber auch, weil ich keine Ahnung von VBA habe...
Gruß Jörg stolzes Mitglied im ----Excel-Verein Freund einer excellenten Power Query-Abfrage
Registriert seit: 10.05.2018
Version(en): office 365
Ich kann damit aber jetzt erstmal gut arbeiten, weil die Tabelle von Jockel genau so aussieht wie ich sie mir vorstelle. Ich bedanke mich dafür, ich habe etwas gelernt und werde mich künftig mit VBA weiter beschäftigen.
Werde zunächst höchstwahrscheinlich stumm hier im Forum mitlesen, um Excel weiter und besser kennezulernen!
:15:
|