Hallo Leute,
Folgendermaßen schauen meine Rohdaten aus:
% Time (s), X-Axis, Y-Axis, Z-Axis
Code:
0,-1472,1088,15808
0,01,-896,704,15872
0,02,-704,320,15808
0,03,-576,192,15872
Ich versuche aktuell meine Daten in Spalten aufzuteilen und so zu formatieren, dass eine neue Spalte bei einem Komma angelegt wird, außer bei dem ersten Komma der Zeile. Da das erste Komma noch zu meiner Sekundenazeige gehört darf diese nicht fehlen. AUch existiert folgendes "Problem":
Die Sekunde 0, wird nicht als 0,00 angezeigt, somit sind zu ganzen Sekunden nur, 3 Kommas in der Struktur und keine 4. Deshalb komme ich mit der Idee: "Trenne immer ab dem 2 Komma bis Ende" nicht an mein Ziel, da zu ganzen Sekunden falsch getrennt wird.
Ich hoffe jemand könnte mir weiter helfen. Gewünschtes Format wäre:
% Time (s), X-Axis, Y-Axis, Z-Axis
0,00 | -1472 | 1088 | 15808
0,01 | -896 | 704 | 15872
etc.
Hinweis: Die 2. Spalte beinhaltet nur negative Zahlen.
Liebe Grüße
Alex
Kannst Du Deine erste Spalte bitte genau beschreiben? Kann sie wie folgt aussehen:
0
0,01
1
12,1
12,12
usw?
Das Problem ist bei so etwas, dass man NIEMALS gleiche Trenner (also nur Komma, statt Komma+Leerzeichen) und Dezimalzeichen nehmen darf! Dadurch, dass die 2. Spalte negativ ist, erreichst Du diese Bedingung am Ende aber noch.
Jetzt habe ich es trotzdem:
=--WENN(SPALTE(A1)=1;
TEIL($A1;1;SUCHEN(",-";$A1)-1);
GLÄTTEN(TEIL(WECHSELN(TEIL($A1;SUCHEN(",-";$A1);99);",";WIEDERHOLEN(" ";99));SPALTE(A1)*99-98;99)))
nach rechts und unten kopieren
Hallo Alex,
per Formel, ohne VBA, ist das schon ne harte Nuss. Ich denke, dass Du hier mit Hilfsspalten am übersichtlichsten fährst.
Hier mein Vorschlag (Wenn deine Daten in A1 beginnen):
In B1:
PHP-Code:
=WENN(LÄNGE($A1)-LÄNGE(WECHSELN($A1;",";))=4;WECHSELN($A1;",";"~";2);WECHSELN($A1;",";"~"))
Diese Formel bis Spalte D nach rechts und unten ziehen. Danach dann Text in Spalten über Spalte D mit ~ als Trenner laufen lassen.
Hi,
entweder so:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| G | H | I |
2 | 0,-1472,1088,15808 | 0 | -1472,1088,15808 |
3 | 0,01,-896,704,15872 | 0,01 | -896,704,15872 |
4 | 0,02,-704,320,15808 | 0,02 | -704,320,15808 |
5 | 0,03,-576,192,15872 | 0,03 | -576,192,15872 |
Zelle | Formel |
H2 | =LINKS(G2;SUCHEN(",-";G2)-1) |
I2 | =WECHSELN(G2;H2&",";"") |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Bei der zweiten Spalte dann mit kopieren, Inhalte einfügen, Werte die Daten fixieren. Anschließen mit Daten, Text in Spalten auftrennen.
andere Variante:
Daten, Text in Spalten zuerst mit "-" als Trennzeichen, danach mit Komma.
oder:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| G | H |
8 | 0,-1472,1088,15808 | 0.0,-1472,1088,15808 |
9 | 0,01,-896,704,15872 | 0.01,-896,704,15872 |
10 | 0,02,-704,320,15808 | 0.02,-704,320,15808 |
11 | 0,03,-576,192,15872 | 0.03,-576,192,15872 |
Zelle | Formel |
H8 | =WECHSELN(WECHSELN(G8;"0,-";"0,0,-");",";".";1) |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
wieder kopieren, Inhalte einfügen, Werte. Daten, Text in Spalten, Trennzeichen ","
In der ersten Spalte noch die Punkte durch Kommata ersetzen!
Moin Alex,
da du ja 2016 hast hier eine Lösung mit Formeln (und meinem Lieblings-Tool :05:)...
(07.08.2017, 14:32)lupo1 schrieb: [ -> ]Jetzt habe ich es trotzdem:
=--WENN(SPALTE(A1)=1;
TEIL($A1;1;SUCHEN(",-";$A1)-1);
GLÄTTEN(TEIL(WECHSELN(TEIL($A1;SUCHEN(",-";$A1);99);",";WIEDERHOLEN(" ";99));SPALTE(A1)*99-98;99)))
nach rechts und unten kopieren
Danke euch allen für den Klasse Support. Deine Lösung habe ich letzten Endes verwendet, funktioniert Prima
(07.08.2017, 14:35)Jonas0806 schrieb: [ -> ]PHP-Code:
=WENN(LÄNGE($A1)-LÄNGE(WECHSELN($A1;",";))=4;WECHSELN($A1;",";"~";2);WECHSELN($A1;",";"~"))
Diese Formel bis Spalte D nach rechts und unten ziehen. Danach dann Text in Spalten über Spalte D mit ~ als Trenner laufen lassen.
Auch die Lösung hab ich ausprobiert. Klappt auch einwandfrei :D
Vielen lieben Dank
BoskiBiatis Lösung war zwar etwas umständlicher, aber nach langer Fummelei hat auch diese zum Erfolg geführt.
(07.08.2017, 17:52)GMG-CC schrieb: [ -> ]...
da du ja 2016 hast hier eine Lösung mit Formeln (und meinem Lieblings-Tool :05:)...
4 von 4 Beträgen funktionieren alle Lösungswege. Ich danke euch vielmals für eure Unterstützung. Klasse Forum hier
Liebe Grüße Alex
Ein Lob an Dich: Du sagst nicht nur, was Du verwendet hast, sondern hast sogar mehrere Lösungen ausprobiert. Das ist die absolute Ausnahme bei Fragern.
Leute, wieder ein ähnliches Problem...
Dieses Male beinhaltet die 2. Spalte keine negativen Zahlen mehr, sodass die vorherigen Lösungen nicht mehr funktionieren.
Wie meine Messdaten aussehen, habe ich mal hochgeladen in einer .csv
So sehen Sie diesmal aus:
Zeit,Rot,Infrarot,Grün,
0,389,294,68,
0,01,391,289,67,
0,02,380,294,70,
0,03,389,289,68,
Wenn ich in der Lage wäre, den Text von Rechts aus bis zum 4. Komma trennen könnte, dann hätte ich bereits mein Ziel erreicht oder?
Auch hier ist das erwünschte Format:
0 | 389 | 294 | 68|
0,01 | 391 | 289 | 67
Vielen Dank nochmals.
PS: Die Lösung von Jonas klappt nicht für das alte Problem
Eben habe ich Dich noch gelobt. Jetzt muss ich an den Mittelteil von #2 erinnern!
Aber zum Glück geht es trotzdem:
=WENN(SPALTE(A2)=6;
WENNFEHLER($H2&","&$G2;$G2);
GLÄTTEN(TEIL(WECHSELN($A2;",";WIEDERHOLEN(" ";99));(LÄNGE($A2)-LÄNGE(WECHSELN($A2;",";))+2-SPALTE(A2))*99-98;99)))
Fülle jetzt in 6 Spalten aus. Dann verwendest Du Spalte 1,2,3 und 6 fürs Diagramm, nachdem Du vor die Formeln für diese Spalten noch ein -- vorangesetzt hast.
Spalte 4 und 5 nicht!
in VBA:
Code:
Sub M_snb()
[B1:B100] = Application.Transpose(Split(Replace(Join([transpose(A1:A100)], "_"), "_0,", "_0."), "_"))
[B1:B100].TextToColumns , , , , 0, 0, -1, 0, 0
End Sub