Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Auf,- und Abrunden auf Ganzzahl 5 oder 9 mit Schwellenwert

Auf,- und Abrunden auf Ganzzahl 5 oder 9 mit Schwellenwert
19.09.2023 09:41:17
Hubertus
Guten Morgen,

Preis en sollte aufgerundet werden auf 5 oder 9
aber alle preise ab 100 wobei Schwellengrenze 35 ist also 135 oder 235, 335 sollte abgerundet werden auf nächste volle 99

Betrag Auf,- und Abrunden
135 99 schwellenwert 35 Abrunden auf nächste 99
136 139
141 145
146 149

225 199

wie kann man dies umsetzen

beste grüße
Hubertus

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auf,- und Abrunden auf Ganzzahl 5 oder 9 mit Schwellenwert
19.09.2023 10:10:33
Yal
Hallo Hubertus,

probiere
=RUNDEN((A1+15)/100;0)*100-1

135 wird damit schon auf 199 umgestellt. Wenn es "nach unten" gehen soll, dann 14,5 anstatt 15.

VG
Yal
AW: Auf,- und Abrunden auf Ganzzahl 5 oder 9 mit Schwellenwert
24.09.2023 10:10:46
GerdL
Wenn Hans Hubertus schon Yal's schöne Funktion für schräge Rundungen hat.
Public Function SpezRund(ByVal Target As Range)

If Target.Value = 35 Then 'Fall 1: Preis unter oder gleich 35
SpezRund = "-"
ElseIf Target.Value Mod 10 = 0 Then '40..50 ..100 ..110 bleibt
SpezRund = Target.Value
ElseIf CLng(Right(CLng(Target.Value), 2)) = 35 Then 'Fall 2: letzte 2 Stellen = 35
SpezRund = Round(Target.Value / 100) * 100 - 1
ElseIf CLng(Right(CLng(Target.Value), 1)) = 5 Then 'Fall 3: Letzte Stelle = 5
SpezRund = Target.Value
ElseIf CLng(Right(CLng(Target.Value), 1)) 5 Then 'Fall 4: Letzte Stelle 5
SpezRund = Round(Target.Value / 10) * 10 + 5
Else 'Fall 5: Letzte Stelle > 5
SpezRund = Round(Target.Value / 10) * 10 - 1
End If
End Function

Gruß Gerd
Anzeige
AW: Auf,- und Abrunden auf Ganzzahl 5 oder 9 mit Schwellenwert
24.09.2023 17:22:47
Hubertus
Hallo...

Ja ist wirklich so
es geht um abrunden ab ein Schwellenwert =35 ab Zahl 100 (kann sein das es Wort Schwellenwert nicht richtig ist, hab kein andere Beschreibung dafür)
Wert 100 bis 135 wird 99
Wert 200 bis 235 wird 199
Wert 300 bis 235 wird 299
Etc.

alle andere Aufrundungen bleiben wie gehabt
Ich weiß nicht wie ich es anders verdeutlichen kann

Beste grüße
Hans / Hubertus
AW: nachgefragt ...
25.09.2023 17:17:58
neopa C
Hallo Hubertus,

warum hast den thread als offen gekennzeichnet? Nach oberflächlichen Lesen der Beiträge im thread ist mir so, als ob Deine Frage für Dich schon gelöst ist. Oder?

Gruß Werner
.. , - ...
Anzeige
Nachgefragt, Danke und kann geschlossen werden
25.09.2023 22:04:38
Hubertus
Hallo Werner,

Ja, eigentlich im Grundsatz beantwortet, hatte noch ein Zusatz fragen aber diese kann ich besser in ein neue tread stellen, das macht es übersichtlicher.
Möchte mir bei alle vom Herzen bedanken für deren konstruktive Lösungen.
Und ich muss zukünftig meinen Frage strukturierter Stellen, tja die deutsche sprache :-)
Bg Hubertus
Eleganter: =RUNDEN((A1+14,99);-2)-1 owT
19.09.2023 10:23:39
Yal
AW: Eleganter: =RUNDEN((A1+14,99);-2)-1 owT
19.09.2023 11:54:36
Hubertus
Hallo

mit
=RUNDEN((A1+14,99);-2)-1
rundet er auf 99 ab
ABER :-)
Aber alles über 35 Schwelle wert sollte auf 5 oder 9 aufgerundet werden
Richtig das klappt
135 wird 99
234 wird 199

aber z.B.
136 wird 139
139 bleibt 139
140 wird 145
242 wird 245
etc.

und das in ein Formel

Beste grüße
Hans
Anzeige
Hmm...
19.09.2023 13:38:25
Yal
da muss man zusätzlich einen Wenn um die Fälle "letzte 2 Stellen unter 35" und in Fall "drüber" auch eine Rundungsmechanismus in 5er Schritt:

=WENN(REST(A1/100;1)=0,35;RUNDEN((A1+14,99);-2)-1;RUNDEN(A1*2+5;-1)/2)

(funktioniert nicht für Preise unter 35: ergibt -1!)

VG
Yal



AW: Hmm...
19.09.2023 20:35:28
Hubertus
dein Formel tut genau das was erwünscht :-)

mein alte Formel war so
=WENN(A4=0;"-";AUFRUNDEN((A4*E$1)+$E$2;0)+WAHL(RECHTS(AUFRUNDEN((A4*E$1)+$E$2;0);1)+1;0;4;3;2;1;0;3;2;1;0))

wenn Zelle Leer A4 Leer dann habe ich ein "-" , Zeichen, bei deine Formel wie Du erwähnst (funktioniert nicht für Preise unter 35: ergibt -1!)
Gibt es möglicherweise doch noch ein Ansatz um Leere Zelle oder wert Null "-" einzugeben.

Bg Hubertus
Anzeige
AW: Hmm...
20.09.2023 09:53:38
Yal
Da mit "Frage noch offen" angezeichnet, muss ich davon ausgehen, dass etwas unvollständig ist.
Ich kann jedoch in deiner letzten Kommunikation keine Frage entdecken.

Eine mögliche Kombination wäre:
= WENN (A1 = 35; "-"; WENN(REST(A1/100;1)=0,35;RUNDEN((A1+14,99);-2)-1;RUNDEN(A1*2+5;-1)/2))


Also Preise unter 35,01 wären zu "-" umgewandelt.

VG
Yal
AW: Hmm...
21.09.2023 20:16:54
Hubertus
Hallo Yal,

Da habe ich nicht richtig formuliert, deutsch ist nicht mein Mutterspräche...

dein Formel
= WENN (A1 = 35; "-"; WENN(REST(A1/100;1)=0,35;RUNDEN((A1+14,99);-2)-1;RUNDEN(A1*2+5;-1)/2))
löst Problem mit leer Zelle und Nullwert.

aber beim testen ist mich doch noch etwas aufgefallen.
Preis-1 | dein Formel
135 | 99 richtig
137 | 140 sollte 139 sein
138 | 140 sollte 139 sein
150 | 155 sollte 149 sein
151 | 155 richtig
153 | 155 richtig
165 | 170 sollte 169 sein
170 | 175 sollte 170 ein
175 | 180 sollte 175 sein
180 | 185 sollte 180 sein
185 | 190 sollte 185 sein
210 | 199 richtig
235 | 199 richtig
236 | 240 sollte 239 sein

Frage, aufrunden auf 5 oder 9 nach Schema oben
Preisen zwischen 0 und 5 auf 5 rundem
Preisen zwischen 5 und 9 auf 9 runden
volle betragen bleiben volle betragen 140 bleibt 140

ich hoffe dass ich es gut geschrieben haben

Wie kann man eigentlich ein Excel Bereich als HTML Tabelle in Forum einfügen?

Vg Hubertus

Anzeige
AW: Hmm...
22.09.2023 15:29:35
Yal
Hallo Hubertus,

dann trifft es auch gut zu: ich habe auch Deutsch erst mit 26 gelernt.

Es gibt einige Widersprüche:
"Preisen zwischen 0 und 5 auf 5 rundem"
und
"150 | 155 sollte 149 sein"
aber auch
"170 | 175 sollte 170 ein"

was nun?

Im allgemein steigt die Komplexität so, dass eine normale Formel nicht mehr sinnvoll ist. Schwierig ist u.a., dass 0:5 auf 5 und 5,1:9,9 auf 9 nicht "linear" ist, also mathematisch schwer zu erfassen.
In solchen Fälle erzeuge ich gern eine UDF (User Defined Function). Es handelt sich um einen kurzes VBA-Code, der in das Arbetisblatt als Formel verwendet wird.

_ drücke Alt+F11. Du bist im VB-Editor (es beisst nicht)
_ Menü "Einfügen", "Modul"
_ im jetztigen "Modul1" folgende Code copy-pasten:
Public Function SpezRund(ByVal Target As Range)

If Target.Value = 35 Then 'Fall 1: Preis unter oder gleich 35
SpezRund = "-"
ElseIf CLng(Right(CLng(Target.Value), 2)) = 35 Then 'Fall 2: letzte 2 Stellen = 35
SpezRund = Round(Target.Value / 100) * 100 - 1
ElseIf CLng(Right(CLng(Target.Value), 1)) = 5 Then 'Fall 3: Letzte Stelle = 5
SpezRund = Target.Value
ElseIf CLng(Right(CLng(Target.Value), 1)) 5 Then 'Fall 4: Letzte Stelle 5
SpezRund = Round(Target.Value / 10) * 10 + 5
Else 'Fall 5: Letzte Stelle > 5
SpezRund = Round(Target.Value / 10) * 10 - 1
End If
End Function

_ dann zurück aufs Blatt,
_ Formel "=SpezRund(A1)" eintragen

Die Datei muss als "Excel-Arbeitsmappe mit Makros (*.xlsm)" gespeichert werden.

VG
Yal
Anzeige
Zahlen in Zehnerschritten (40, 50, 60, 70, 80, 90, 100, 110
22.09.2023 19:29:28
Hubertus
Hallo Yal,

Code lauft und funktioniert :-) das geht echt einfach

kurz noch zum Widerspruch, das hast du recht mit ich glaube ich war da schön zu müde

Frage:
alle Zahlen in Zehnerschritten (40, 50, 60, 70, 80, 90, 100, 110 etc.)
sollte im zehnerschritt erhalten bleiben (40, 50, 60, 70, 80, 90, 100, 110 etc.)
kannst du das noch bitte im Code mit einbauen
VG
Hans



AW: Zahlen in Zehnerschritten (40, 50, 60, 70, 80, 90, 100, 110
23.09.2023 10:34:33
GerdL
Moin,

erste Codezeile:
If Target Mod 10 = 0 Then SpezRund = Target: Exit Function


Gruß Gerd
AW: Zahlen in Zehnerschritten (40, 50, 60, 70, 80, 90, 100, 110
23.09.2023 14:03:48
Hubertus
Hallo Gerd

eingebaut und voilà geht,
hat schon Probiert mit
ElseIf CLng(Right(CLng(Target.Value), 1)) = 0 Then.. aber das hat nicht funktioniert

aber doch noch ein Frage:
- aber wenn Zelle Leer oder Null (0) dann ist dann noch gerne "-"
- wie kann ich Berechnung mit Makro ausführen

Hab Beispieldatei gemacht vergleich das Makro und Formel den ich hatten
https://www.herber.de/bbs/user/163058.xlsm

Beste Grüße
Hans


Anzeige
AW: Zahlen in Zehnerschritten (40, 50, 60, 70, 80, 90, 100, 110
24.09.2023 07:09:37
Oberschlumpf
Hi,

hier, versuch mal
https://www.herber.de/bbs/user/163070.xlsm

Weil ich NULL SICHER bin, obs dir hilft, HABE ICH NUR erst mal...

1) die Formel in B11, B23 geändert...
aus...
=WENN(A11=0;"-";...
wird...
=WENN(A11=0;0;...

(das Gleiche für B23 )


2) das Zahlenformat in B11, B23, D11, D23, H7:H13 geändert...
aus...
Format Standard
wird...
Format Buchhaltung, kein Währungssymbol, keine Dezimalstellen nach dem Komma

(das Gleiche für B23, D11, D23, H7:H13)


3) die VBA-Funktion =SpezRund(...) angepasst...
aus...


If Target.Value = 35 Then 'Fall 1: Preis unter oder gleich 35
SpezRund = "-"

wird...


If Target.Value = 35 Then 'Fall 1: Preis unter oder gleich 35
SpezRund = 0



Erklärung:

Vorteil
Wenn das Ergebnis aus Formel/VBA-Funktion nicht mehr "-", sondern 0 ist, dann erscheint in Spalte D nicht mehr #WERT!, sondern das gewünschte -
"-" ist und bleibt Text = mit Texten kann man nicht rechnen
Das anstelle von 0 gezeigte - wird, wegen Buchhaltungsformat, aber weiterhin als 0 verwendet (aber eben nicht als 0 angezeigt!)

Nachteil (vielleicht)
Zahlen im Buchhaltungsformat können in Excel nicht zentriert dargestellt werden (ich hab zumindest, auch mit Google-Hilfe, keine Lösung dafür gefunden)
Außerdem sind die Werte bei "Währungssymbol=ohne" nicht ganz rechtsbündig, weil "Platzhalter-frei" wegen fehlendem Währ.symbol; so erklär ich mir das zumindest.

Wenn du also in Spalte B unbedingt eine zentrierte Darstellung möchtest, dann hilft meine Idee nicht.
Da aber alle anderen Spalten auch nicht zentriert sind, ist dir das Zentrieren in B vielleicht ja nicht so wichtig.

Hilfts?
Wenn ja, musst du, wie angedeutet, noch alle anderen Formeln/Formate in Spalte B anpassen.

Ciao
Thorsten
Anzeige
Formel oder Makro
24.09.2023 12:18:23
Hubertus
Hi Thorsten

Ne zahlen müssen nicht zentriert dargestellt werden, ich haben mit bedingte Formatierung hinterlegt " _-* #.##0,- €_-;-* #.##0,- €_-;_-* "-"?? _-;_-@_-" ist für ein Preisliste
=WENN(A11=0;0;... wider dazu gelernt

VBA verstanden und nachvollziehbar

ABER jetzt Frage
kann man in der Formel Schwellenwert einbauen wie beim MAKRO
beim 100 schritten bis =135 runden auf 99 Beispiel 135 wird 99, 234 wird 199, 235 wird 299, und 237 wird 239

Oder wenn Formel nicht geht kann man beim Makro die Berechnung mit einbauen von Zelle B2, B3 und B4

Möchte nur gerne ein der beiden varianten einsetzen Makro oder Formel.......!

Bg
Hans
Anzeige
bitte wer anders
24.09.2023 15:12:42
Oberschlumpf
Hi Hans,

sorry, da kann ich dir leider nicht weiterhelfen.
Ich hatte nur die Idee mit der Formatierung für Buchhaltung, so dass ein - gezeigt wird, wenn der Wert = 0 ist.

Ciao
Thorsten
Ist das wirklich so?
24.09.2023 15:51:32
lupo1
135 wird 99,
234 wird 199,
235 wird 299, und
237 wird 239

(habe ich nur wiederholt)

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige