Formatierung in Excel

bits'bytes

Level-1
Beiträge
348
Reaktionspunkte
53
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

wenn ich aus einer Text-Datei Inhalte nach Excel kopiere habe ich folgendes Verhalten

Code:
2012-05-16 15:17:44.281   122 
[COLOR=#ff0000]2012-05-16 15:18:22.033    98 
2012-05-16 15:18:25.026   100 
[/COLOR]


Wenn in der Text-Datei (letzte 2 Zeilen) die Hunderstel Sekundenangabe mit 0 beginnt, Formatiert Excel dass als Text anstatt als Uhrzeit.

Möchte ich dann die Zeitdifferenz berechnen, bringt das natürlich einen Fehler .
siehe Beispiel hier

Code:
16.05.2012 15:16 100  
16.05.2012 15:17  80  00:42,0
16.05.2012 15:17 100  00:03,0
16.05.2012 15:17 122  00:03,0
[COLOR=#ff0000][B]2012-05-16 15:18:22.033 98  #WERT!
2012-05-16 15:18:25.026 100  #WERT!
2012-05-16 15:18:28.027 122  #WERT!
[/B][/COLOR]16.05.2012 15:19 98  #WERT!
16.05.2012 15:19 100  00:03,0
16.05.2012 15:19 122  00:03,0
16.05.2012 15:19  98  00:40,0

Weiss vielleicht jemand wie man das abstellen kann ?

Danke schön
bg
bb
 
Hallo,
nach meinem Kenntnisstand kann Excel nur Sekunden als kleinste Einheit erkennen. Das Time-Format selber wird allerdings als Dezimal-Tag dargestellt (also 12:00 uhr entspricht 0,5). Millisekunden kennt Excel nicht. Du könntest jetzt natürlich hergehen und dir mit einer selbstgeschriebenen Funktion (in VB-Script) den übergebenen Wert in ein Millisekunden-Format umrechnen (wie in der SPS) und diese Werte dann subtrahieren um die Differenz zu bilden und dann diese wieder in Excel darstellen. Etwas anderes fällt mir dazu aber jetzt nicht ein ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Larry,

Hallo,
nach meinem Kenntnisstand kann Excel nur Sekunden als kleinste Einheit erkennen.

ja tatsächlich, sieht so aus. Bei meinen Berechnungen ist die 1/100 Sekunden Zahl immer 0. Ist mir noch gar nicht aufgefallen :)

Das heißt: ich habe 2 Probleme...

Aber momentan würde mir eine Auflösung von 1 Sekunde eigentlich reichen.

Bleibt das zweite Problem: warum macht Excel eine TEXT Formatierung für den Eintrag wenn die Hundertstel mit 0 beginnen (also z.B. 15:18:22.033 ). Dann funktioniert natürlich meine Formel für die Differenzberechnung nicht, da diese einfach so lautet : =A5 - A4 (zum Beispiel)

Das ganze ist nicht so wichtig dass ich hier Aufwand betreiben möchte - ich hätte das halt manchmal benötigt. Programmieren möchte ich deswegen nicht ....

Danke
bg
bb
 
Hallo bits'bytes,

Meinst du so? Leider konnte ich keine Excel Datei hochladen, daher nur ein Screenshot.
Zeitdifferenz.png

Unter der Voraussetzung dass in einer Zelle folgendes "Format" steht : hh:mm:ss.xxx wobei xxx = Millisekunden sind. (Die Zelle hat bei mir Standardformat)

Über eine Hilfstabelle könntest du dir nun aus der jeweiligen Zelle immer die Teilstrings ziehen (kannst die Spalten ja ausblenden) => Funktion Teil(Text,Erstes Zeichen, Anzahl Zeichen)
Damit kannst du dir dann die Differenz bilden. Damit du immer einen positiven Wert bekommst solltest du die Funktion ABS benutzen die gibt dir dann immer den Betrag zurück!

Zu guter letzt musst du dann natürlich die einzelnen Strings wieder zu einen Gesamtstring zusammenfassen, das geht u.a. so: A1&":"&B1&":"&C1&"."&D1&E1&F1
Achja damit die Zahlen mit führenden Nullen ergänzt werden musst du bei der Differenzbildung noch diese Funktion anwenden TEXT(ABS(Zahl);"00") bedeutet wenn die Differenz z.B. 1 beträgt steht dann in der Zelle 01!

mfg

PS: Excel 2007
 
Hallo Nutellahase,


danke für die Mühe - aber genau das wollte ich vermeiden - ist einfach umständlich. Dann müsste ich immer die Vorlage bei der Hand haben. Überigens hat sich bei dir schon ein Fehler eingeschlichen. 7 - 8 = 59 nicht 1 (bei den Millisekunden).

Genau deswegen möchte ich dass Excel das macht. Excel macht es ja auch gut. Nur - und hier meine Ausgangsfrage - wenn bei den Hundertstel eine Null am Anfang steht glaubt Excel dass es Text ist, ansonsten alles paletti (wenn man von der Sekunden-Genauigkeit absieht).

Wieso glaubt Excel dass das Text ist ? Keine Ahnung.

Danke jedenfalls.
bg
bb
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo bb,
Excel glaubt das, weil es das immer so macht wenn es das Format nicht identifizieren kann. Uhrzeit ist für Excel "hh:mm:ss" - alles andere kennt es nicht.
Unabhängig von dem Vorschlag von Nutellahase würde ich aber (wie schon erwähnt) zu einer Function tendieren - etwas anderes wird wohl nicht gehen (außer die Berechnung kommt schon aus der SPS in die Tabelle.

Gruß
Larry
 
Hmm ok dann hätte ich noch was gefunden...
Da ich nicht weiß ob du das bereits schon getan hast, hier mal ein weiterer Lösungsansatz (allerdings kommst du ohne Hilfstabellen bei reiner Excel Lösung nicht drumherum!):

Ich nehme mal an die Millisekunden werden durch einen Punkt getrennt also so
Code:
hh:mm:ss[COLOR=#ff0000][B].[/B][/COLOR]ms ms ms

Wenn es durch ein Komma getrennt wäre, würde es funktionieren! Also in diesem Format:
Code:
hh:mm:ss[B][COLOR=#ff0000],[/COLOR][/B]ms ms ms

Hierzu musst du ein benutzerdefiniertes Format anlegen hh:mm:ss,000 => Excel kann scheinbar nur mit Komma rechnen:

Zeitdifferenz.jpg

In Spalte A ersetzt du den Punkt durch ein Komma.
In Spalte B errechnest du dir die Differenz und wandelst sie ins Format hh:mm:ss,000
In Spalte C ersetzt du das Komma durch den Punkt! (falls nötig)

Wieso kann man eigentlich keine Excel Dateien hochladen oder bin ich nur zu blöd dazu?? :confused:
 
Hallo,

danke für den Versuch, der Screenshot sieht gut aus. Bei mir stellt sich leider Excel total blöd an.

Sobald ich die Zwischenablage einfüge, wird sofort alles was nach hh:mm ist sofort verschmissen. Das anfängliche Problem besteht, d.h beim einfügen habe ich dann Teile als Datum/Uhrzeit, andere wieder als Text.

Also, ich habe keine Lust mehr - kann man vergessen.

bg
bb

PS: Excel ist offensichtlich gesperrt, eh kein Wunder bei dem Risiko-Level den diese Dateien für die Gesundheit der Nutzer darstellen.
 
Hallo Larry,

da gibts ein Programm "PLTrend", das macht das eben momentan nicht. Wäre aber eine Überlegung Wert..... :)

bg
bb
 
Zurück
Oben