Warum zeigt LÄNGE() manchmal mehr Zeichen an als vorhanden?

Für eine Tabelle mit Zeiten (u. a. Biathlonstaffeln) erstellte ich u. a. auch das Uhrzeitformat H:MM:SS,0. Da auch andere Werte vorkommen, gliederte ich die anschließende Berechnung nach ihrer Länge, zumindest war das der Plan [WENN(LÄNGE(H54)=9;…;…)]. Wenn ich nun aber diesen Befehl anwende, wird Falsches errechnet. Mit LÄNGE(H54) gibt er an, dass dies 18 Zeichen wären, obwohl ja nur die Hälfte davon zu sehen ist.
Wäre ich sicher, dass das immer so ist, könnte ich damit leben, aber irgendwie verwundert es mich dann doch.
Kann mir bitte jemand erklären, wie es dazu kommt?

Ergänzend zu @anon73440385 und @RobertG:
Vielleicht solltest du die Daten schlicht sortieren…anstatt zu versuchen Länge auf Fliesskommazahlen anzuwenden.

Die Funktion “LÄNGE” erwartet einen Text. Wenn ich in den Funktionsassistenten gehe, dann steht das dabei. Ansonsten gibt sie eben die Anzahl der einzelnen Ziffern wieder.

=LÄNGE(TEXT(A1;"[H]:MM:SS"))

Das gibt dann die tatsächliche Länge der angegebenen Zeit wieder. Es ermittelt für eine Zeit wie 9:00:00 die Länge 7. Es ermittelt auch für eine Zeitanzeige von 09:00:00 die Länge 7, weil das in der Formel angegebene Format zählt.

Da ich die Berechnung auch für Felder mit Zeiten im Bereich unter einer Stunde (welche ich irrtümlich zwei Zeichen kürzer wähnte) anwenden wollte, hilft mir dieser Tipp leider nicht direkt weiter. Aber ich kann beim Eingeben ja ein Apostroph davorsetzen (und es so zum Text machen), was die Verarbeitung auch nur geringfügig aufwändiger gestaltet.
Vielen Dank für Ihre Bemühung.

@Hrolf

Aber ich kann beim Eingeben ja ein Apostroph davorsetzen

Das ist eine ganz schlechte Idee, denn dann ist eine Zeit keine Zeit im Sinne von Calc mehr, sondern bloßer Text mit dem nicht mehr gerechnet werden kann. Wenn Du dann die Zeiten aus zwei Riesenslalom-Durchgängen addieren willst dann … Nada, niente, das geht dann nicht mehr.


Die Idee dieser Antwort ist aber grade aus dem **Inhalt** der Zelle über die Funktion `TEXT()` und die darin enthaltene Formatangabe `"[H]:MM:SS"` einen Text **fester** Länge (=7) zu machen. Damit ist im Sinne meiner Antwort oben, genau das erreicht was dort steht: ***Falls der Inhalt der Zelle eine Formel ist, siehst Du als LÄNGE() die Länge des echten Ergebnisses der Formelauswertung***. Eine andere Frage bleibt, ob Du einen andere Formatangabe benötigst die z.B. auch Zehntelsekunden (`"[H]:MM:SS,0"` - Länge=9) und/oder Hundertstel-Sekunden (`"[H]:MM:SS,00"` - Länge=10) enthalten soll.

Hallo,

Da solltest Du uns eine kleine Beispieldatei hier hochladen, dann kann Dir das sicher jemand am Beispiel erklären: Grundsätzlich kann man folgendes sagen: Eine Formatierung (z.B eben das H:MM:SS,0 ) bestimmt nicht den Inhalt einer Zelle, sondern nur wie Du den Inhalt angezeigt bekommst. Den Inhalt siehst Du so nicht, sondern den siehst Du in der Eingabezeile, wenn die Zelle ausgewählt ist. Und die Funktion LÄNGE() bestimmt die Länge des Inhaltes der Zelle und nicht der formatierten Anzeige. Falls der Inhalt der Zelle eine Formel ist, siehst Du als LÄNGE() die Länge des echten Ergebnisses der Formelauswertung und nicht die des formatierten Ergebnisses (oder gar die Länge der Formel).

Ein Beispiel zu der Antwort (die ich auch geben wollte).

Bildbeschreibung