Frage von KaiserWilhelmXL, 77

Hi, ich möchte gerne bei Excel immer bei einem bestimmten Nachkommawert runden.Geht das?

Immer bei einer Daueranfrage von ...,29 soll ich die nächst höhere Zahl sein, unter ...,29 die vordere Zahl stehen bleiben.

Z.B. 1:29 (m:ss) -> 2:00 (m:ss) 3:27 (m:ss) -> 3:00 (m:ss)

Und alles unter 0:29 ist immer 1:00

Vielen Dank.

Antwort
von Ghanasoccer, 77

Dein Format kannst du noch einstellen:

=TEXT(RUNDEN(31*(1/24/60/60)+A1;8);"m")

Und fals die Anzahl der Nachkommastellen nicht reicht darfst du das natürlich erweiter :)

Kommentar von iMPerFekTioN ,

@Ghanasoccer,

kannst du mir mal deine Formel erklären? Ich steig nicht dahinter =D

Würde mich aber echt interessieren =)

Grüße,

iMPerFekTioN

Kommentar von Ghanasoccer ,

Du wagst es ;)

Weißt man denn immer in xl was man da gerade eigentlich schreibt? Ich muss zugeben, dass ich das in letzter Zeit immer mehr bezweifele.

Runden wir viele nachkommastellen brauchen wir immernoch genügend, damit die Rechnung genau genug durchgeführt wird, deswegen die 8. Die 1/24/60/60 ist, wie du sicherlich nachvollziehen konntest eine 1 sec als Zahl.

Wenn man RUNDEN verwendet beachtet man nur einen Punkt. Ab wann wird auf- bzw. abgerundet. Wenn man diesen Richtwert mit den errechneten Sec verschiebt... das ist alles

Kommentar von iMPerFekTioN ,

Ich wage es richtig ;)

Danke dir :p

Kommentar von KaiserWilhelmXL ,

Wie könnte ich dann, dass Ergebnis umwandeln:

Zum Beispiel:

00:02:00 -> 2,00

00:01:00 -> 1,00

usw.

Kommentar von Ghanasoccer ,

momentan steht "m" als Einheit/Form. entweder lass es weg und formatier es ganz normal wie dus kennst oder du machst andere tollere Sachen draus. am/pm hh:mm:ss usw.

Expertenantwort
von Suboptimierer, Community-Experte für Excel, 31

Würdest du bei 30 Sekunden runden, wäre es einfach:

=VRUNDEN(A1;1/24/60)

So könnte man die Sekunde vor der 30 als Sonderfall einführen:

=VRUNDEN(A1+(SEKUNDE(A1)=29)/24/60;1/24/60)
Kommentar von Suboptimierer ,

Achso, verstehe. Immer wenn die Sekunden kleiner 29 sind, soll 1 Minute zurück gegeben werden, sonst auf die nächst größere Minutenzahl aufgerundet werden.

=WENN(SEKUNDE(A1)<29;1/24/60;ZEIT(STUNDE(A1);MINUTE(A1);0)+1/24/60)
Kommentar von iMPerFekTioN ,

Profi :p, dann fehlt nur noch das die 3:00 in 3,00 umgewandelt wird oder die 1:00 in 1,00!

Kommentar von Suboptimierer ,

Diese intranparenten Rechnungen (1/24/60/60,...) könnte man sich noch als benamte Konstanten einrichten (Min, Sek,...) ;)

Kommentar von iMPerFekTioN ,

Bekommt man dann sicher auch irgendwie mit =ERSETZEN oder =WECHSELN oder =TEXT hin ...

Kein Wort verstanden von dem was du gemeint hast :d

Kommentar von Suboptimierer ,

Formeln → Namensmanager → Neu...

Name: Sek
Formel: = 1/24/60/60

In Formel oben: 

=VRUNDEN(A1;Min)
=VRUNDEN(A1+(SEKUNDE(A1)=29)*Min;Min)
=WENN(SEKUNDE(A1)<29;Min;ZEIT(STUNDE(A1);MINUTE(A1);0)+Min)
Kommentar von iMPerFekTioN ,

Jetzt versteh ich erst recht nichts mehr....

Man sieht, ich hab noch viel zu lernen =D

Kommentar von Suboptimierer ,

Hier ist noch Platz. Was verstehst du nicht?

Ich habe im Namensmanager einen Alias für 1/24/60 namens Min geschaffen. In Formeln wird dann überall, wo Min steht, dieser Alias intern rückübersetzt in den Zahlenwert 1/24/60.

Kommentar von iMPerFekTioN ,

Gut, verstanden hab ich es schon, ich bin eher "verwirrt" weil du als Name: Sek geschrieben hast =D

Entweder versteh ich doch etwas nicht ODER du hast dich verschrieben =D

Kommentar von Suboptimierer ,

Sek ist kein reserviertes Wort. Du kannst auch IMPERFEKTION als Namen festlegen und überall in Formeln würde dann für IMPERFEKTION der Zahlenwert 1/24/60 eingesetzt werden.

Ganz Faule würden nur h, m und s nehmen. Das ist dann aber nicht mehr gaaanz so sprechend. 

Sek sollte nur ein Beispiel sein. Das funktioniert mit Min für Minute natürlich genauso ;) Einfach einmal weniger durch 60 teilen.

Kommentar von iMPerFekTioN ,

Ja das hab ich verstanden :D

Aber, du hast in der Formel stehen:

=VRUNDEN(A1;Min)
=VRUNDEN(A1+(SEKUNDE(A1)=29)*Min;Min)
=WENN(SEKUNDE(A1)<29;Min;ZEIT(STUNDE(A1);MINUTE(A1);0)+Min)

sollte das dann nicht so in etwa heißen?

=VRUNDEN(A1;Sek)
=VRUNDEN(A1+(SEKUNDE(A1)=29)*Min;Min)
=WENN(SEKUNDE(A1)<29;Sek;ZEIT(STUNDE(A1);MINUTE(A1);0)+Sek)

Vielleicht täusche ich mich auch, aber das hätte ich jetzt aus deinem Kommentar raus gelesen :o

Kommentar von Suboptimierer ,

Mein Fehler war anscheinend, dass ich Sek als Namen definiert habe und Min in der Formel verwandt habe. Der Fragesteller will aber auf Minuten runden 1:00 m:ss. Deswegen muss überall Min hin.

Beispiel letzte Formel

=WENN(SEKUNDE(A1)<29;1/24/60;ZEIT(STUNDE(A1);MINUTE(A1);0)+1/24/60)

1/24/60 bedeutet 1 Minute, also muss überall Min hin.

Wenn die Sekunden < 29 sind, schreib 1 Min. (00:01:00) in die Zelle, sonst runde auf die nächste Minute auf. Das wird gemacht, indem zur aktuellen Zeit in A1 ohne Sekunden eine Minute aufaddiert wird.

Kommentar von iMPerFekTioN ,

Jaaa das hab ich auch verstanden, also die Funktionalität,

aber ich war verwirrt wegen deinem Formel Namensmanager Dings da... und der Namensvergebung und der nachstehen Formel die  ohne diese genutzt wurde obwohl das davor ja festgelegt wurde =D Das hat mich irgendwie verwirrt weil ich dachte du willst jetzt ein Beispiel mit Sek machen :p

Kommentar von Suboptimierer ,

Ja sorry dafür. Wie gesagt hätte ich Min als Namen definieren müssen. Hättest du bestimmt aber auch hin gekriegt ;P

Ich wollte dich (niemanden) verwirren.

Kommentar von iMPerFekTioN ,

Ich kann dir nur sagen, danke und ich weiß mindestens Doppelt so viel wie davor =D, die Dias, die könnn's einfach =)

Antwort
von iMPerFekTioN, 62

Also ich hätte da Folgende Formel:

Du überprüfst die letzte Zahl (die erste von Rechts) ob es eine 9 ist oder nicht,

Falls ja, wird aufgerundet, falls nicht wird abgerundet.

Dazu dann die Formel:
In meinem Beispiel steht die Uhrzeit in A1 und die Formel in B1

=WENN(RECHTS(A1;1)="9";AUFRUNDEN(A1*24;0)/24;ABRUNDEN(A1*24;0)/24)

Grüße,

iMPerFekTioN

Kommentar von KaiserWilhelmXL ,

Klingt gut. Aber es soll erst ab 29 gerundet werden und nicht wenn immer eine 9 hinten steht, z.B. bei 19.

Und könntest du noch mit einbauen, dass immer unter 0:29 -> 1:00 ist. Du bist klasse! Danke

Kommentar von iMPerFekTioN ,

ist ja ganz einfach =), man ändert von RECHTS 1 auf RECHTS 2 und überprüft auf die 29 =)
Also so:

=WENN(RECHTS(A1;2)=>"29";AUFRUNDEN(A1*24;0)/24;ABRUNDEN(A1*24;0)/24)
Kommentar von KaiserWilhelmXL ,

Perfekt. Dankeschön.

Wenn jetzt z.B. als Ergebnis kommt 00:01:00. Würde das gehen, dass dan dort 1,00 steht?

Kommentar von iMPerFekTioN ,

BZW. du willst das wenn die Zahl 0:18 ist eine 1:00 stehen haben?
Was ist wenn du 2:28 stehen hast? Willst du dann eine 2:00 stehen haben oder auch eine 1:00?

Kommentar von DeeDee07 ,

Du musst da sehr aufpassen mit Textfunktionen (RECHTS) bei Nicht-Textformaten (Uhrzeit).

Wenn in A1 z.B. 00:29 steht (als Uhrzeit), dann liefert die Formel =RECHTS(A1;2) den Wert 89.
Warum? Zeiten sind in Excel als fortlaufende Zahl formatiert. Eine Tageslänge = 1.
00:29 sind 29 Minuten, also 29 / 1440 = 0,020138889

Kommentar von iMPerFekTioN ,

@DeeDee07

Funktioniert aber :o... Trotzdem Danke!

@KaiserWilhelmXL

Versuchs mal so:

=WENN(RECHTS(A1;2)>="29";VERKETTEN(TEXT(AUFRUNDEN(A1*24;0)/24;"0,00")*25;",00");VERKETTEN(TEXT(ABRUNDEN(A1*24;0)/24;"0,00")*25)
Expertenantwort
von Ninombre, Community-Experte für Excel, 67

Uhrzeit runden hat mich selbst interessiert
http://praxistipps.chip.de/excel-uhrzeit-auf-und-abrunden_33975

=WENN(SEKUNDE(A1)>=29;AUFRUNDEN(A1*1440;0)/1440;ABRUNDEN(A1*1440;0)/1440)
Kommentar von KaiserWilhelmXL ,

Super, es funktioniert. Kann ich Formal noch ergänzt, sodass ein Wer unter 0,29 immer bei 1 liegt? Danke

Kommentar von iMPerFekTioN ,
=WENN(RECHTS(A1;1)="9";AUFRUNDEN(A1*24;0)/24;ABRUNDEN(A1*24;0)/24)

Grüße,

iMPerFekTioN

Kommentar von Ninombre ,
=MAX("00:01:00";WENN(SEKUNDE(H28)>=29;AUFRUNDEN(H28*1440;0)/1440;ABRUNDEN(H28*1440;0)/1440))
Kommentar von KaiserWilhelmXL ,

@Ninombre:

Danke für deine Hilfe.

Kommentar von KaiserWilhelmXL ,

Super. Dankeschön.

Wenn jetzt z.B. als Ergebnis kommt 00:01:00. Würde das gehen, dass dan dort 1,00 steht?

Kommentar von Ninombre ,

wenn die Zelle als Uhrzeit formatiert ist, geht das mit dem Minimum so nicht, aber mit einer Wenn-Bedingung:

=WENN(ABRUNDEN(H28*1440;0)/1440>0;WENN(SEKUNDE(H28)>=29;AUFRUNDEN(H28*1440;0)/1440;ABRUNDEN(H28*1440;0)/1440);"1,00")
Kommentar von KaiserWilhelmXL ,

Tut mir leid, ich hab mich wahrscheinlich falsch ausgedrückt.

Ich meinte eine "einfache" Formatänderung:

00:02:00 -> 2,00

00:01:00 -> 1,00

usw.

Kommentar von iMPerFekTioN ,

Versuchs mal so:

=WENN(RECHTS(A1;2)>="29";VERKETTEN(TEXT(AUFRUNDEN(A1*24;0)/24;"0,00")*25;",00");VERKETTEN(TEXT(ABRUNDEN(A1*24;0)/24;"0,00")*25))
Kommentar von KaiserWilhelmXL ,

Danke für harte Arbeit. Leider bekomme ichimmer nur 1,00

Kommentar von Ninombre ,

Dann würde ich es wiederum ganz anders machen: (Zelle als Zahl formatieren)


=MAX(WENN(SEKUNDE(A1)>=29;MINUTE(A1+"00:01");MINUTE(A1));1)
Kommentar von KaiserWilhelmXL ,

Oh das sieht gut au!!!! Ihr seit die Besten.

Kommentar von iMPerFekTioN ,

Bei mir klappt die Formel nicht :X Was macht die denn genau?

Kommentar von iMPerFekTioN ,

Jetzt klappts =) Danke, hatte ein Denkfehler,

@ Ninombre, deine Formel hab ich mal so erweitert, damit auch die nachher eine Zahl wie ",00" raus kommt und nicht nur die ganz Zahl:

=MAX(WENN(SEKUNDE(A1)>=29;MINUTE(A1+"00:01");MINUTE(A1));1)&",00"

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten