Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mod

Forumthread: Mod

Mod
17.08.2019 08:57:59
markus_tirol
Hallo Community!
Habe da ein Problem mit Mod.
im Excelarbeitsblatt erscheint bei der Berechnung 15.08.2019 - 105,6213922
1. 43692 - 105,6213922 danach das
2. Ergebnis 43586,3786 mit der Formel =REST(43586,3786; 29,530588) + 1
3. Ergebnis 29,7613078.
Gebe ich diese Formel in VBA im Direktbereich ein
1. ?43692 - 105.6213922 Ergebnis 43586,3786078 danach
2. ?(43586.3786078 Mod 29.530588) + 1 und plötzlich erhalte ich das
3. Ergebnis 27 und auch noch ohne Nachkommastellen
Kann mir vielleicht jemand helfen warum das passiert?
Vielen Dank
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mod
17.08.2019 09:31:59
Hajo_Zi
schaue in die Hilf MOD ist eine ganze Zahl.
"Der Operator "Modulus" oder "Rest" dividiert number1 durch number2 (Rundung von Gleitkommazahlen in ganze Zahlen) "

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Mod
17.08.2019 12:52:21
markus_tirol
Hallo Hajo,
Warum wird aber bei der Formeleingabe im Tabellenblatt REST() eine Gleitkommazahl angezeigt?
IEEE754
17.08.2019 13:26:52
{Boris}
Hi,
google mal nach IEEE754. Ist die Basis der Berechnungen.
VG Boris
AW: Mod
17.08.2019 13:35:15
Daniel
Hi
lies doch mal in der Hilfe zu REST und MOD nach.
dann wirst du erkennen, dass es einen Unterschied zwischen der Excel-Funktion REST und dem VBA-Operator
MOD gibt:
bei Mod steht da noch ein entscheidender Satz: "rundet dabei Fließkommawerte zu ganzen Zahlen " (Quelle: Offlinehilfe Excel 2010)
dh MOD rechnet hier 43568 MOD 30
während REST mit den ungerundeten Kommazahlen arbeitet.
Gruß Daniel
Anzeige
Daneben gibt's noch mehr Unterschiede ...
17.08.2019 20:05:19
Luc:-?
…zwischen VB(A) und Xl, Markus;
1. die Operanden dürfen in VBA nicht beliebig groß wdn, nicht mal so groß wie in Xl zulässig;
2. Xl verwendet das mathematische Modulo, VB(A) den symmetrischen Divisionsrest. Insofern ist die dt Bezeichnung in Xl unglücklich gewählt und die in VBA ohnehin, denn in PgmmierSprachen, zumindest denen die beides anbieten, heißt das meist Rem bzw Remainder. Den Unterschied bemerkt man aber erst, wenn einer der beiden Operanden <0 ist.
https://de.wikipedia.org/wiki/Division_mit_Rest#Modulo
https://de.wikipedia.org/wiki/Liste_von_Operatoren_f%C3%BCr_den_Rest_einer_Division
Das hatte ich schon mal ausgeführt, aber nur die Wenigsten wdn es gelesen haben…
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
;
Anzeige

Infobox / Tutorial

Modulo in Excel: Unterschiede zwischen Excel und VBA verstehen


Schritt-für-Schritt-Anleitung

  1. Excel Modulo Funktion verwenden: Um die =MOD Funktion in Excel zu verwenden, gib die Formel wie folgt ein:

    =MOD(Zahl1; Zahl2)

    Beispiel: =MOD(10; 3) ergibt 1, da 10 durch 3 geteilt 3 Rest 1 hat.

  2. Excel REST Funktion: Diese funktioniert ähnlich, aber sie gibt die Gleitkommazahl zurück. Die Eingabe erfolgt mittels:

    =REST(Zahl1; Zahl2)

    Beispiel: =REST(10; 3) gibt auch 1 zurück, aber wenn du mit Dezimalzahlen arbeitest, kannst du andere Ergebnisse erhalten.

  3. Verwendung in VBA: Wenn du in VBA den Modulo Operator verwenden möchtest, verwende das folgende Format:

    Dim Ergebnis As Double
    Ergebnis = Zahl1 Mod Zahl2

    Beispiel: Ergebnis = 10 Mod 3 ergibt 1, aber die Berechnung könnte anders ausfallen, wenn du Gleitkommazahlen verwendest.


Häufige Fehler und Lösungen

  • Problem: Du erhältst unterschiedliche Ergebnisse zwischen =MOD in Excel und Mod in VBA.

    • Lösung: Achte darauf, dass Excel mit Gleitkommazahlen arbeitet, während VBA bei Mod ganze Zahlen verwendet. Das bedeutet, dass Fließkommawerte in VBA gerundet werden.
  • Problem: Die Excel Formel =REST zeigt unerwartete Ergebnisse.

    • Lösung: Überprüfe, ob du die richtigen Werte und Datentypen verwendest. Achte darauf, dass die Argumente korrekt sind.

Alternative Methoden

  • Verwendung von Excel Formeln: Du kannst auch die Division ohne Rest in Excel nutzen, um das Ergebnis zu ermitteln, und dann selbst den Rest berechnen:

    =Zahl1 - (GANZZAHL(Zahl1 / Zahl2) * Zahl2)
  • VBA Division ohne Rest: In VBA kannst du den Operator \ verwenden, um die Division ohne Rest durchzuführen und anschließend den Rest manuell berechnen.


Praktische Beispiele

  • Beispiel 1: Berechnung des Monatsrestes

    =MOD(A1; 30)

    Hier wird das Datum in Zelle A1 verwendet, um den Rest nach 30 Tagen zu ermitteln.

  • Beispiel 2: Unterschiedliche Ergebnisse in Excel und VBA

    Dim ErgebnisExcel As Double
    Dim ErgebnisVBA As Double
    ErgebnisExcel = WorksheetFunction.Mod(43586.3786078, 29.530588)
    ErgebnisVBA = 43586.3786078 Mod 29.530588

    Hierbei erhältst du in Excel möglicherweise einen anderen Wert als in VBA.


Tipps für Profis

  • Kennst du den Unterschied zwischen MOD und REST?: Nutze die MOD Funktion in Excel, wenn du mit ganzen Zahlen arbeitest. Wenn du jedoch mit Fließkommazahlen arbeitest, verwende REST in Excel, um exakte Werte zu erhalten.

  • VBA und Excel kombinieren: Oft kann es sinnvoll sein, Excel-Funktionen in VBA zu verwenden, um spezifische Berechnungen durchzuführen. Überlege, wie du beide Ansätze kombinieren kannst, um effizientere Ergebnisse zu erzielen.


FAQ: Häufige Fragen

1. Warum gibt es unterschiedliche Ergebnisse zwischen Excel und VBA beim Modulo?
Excel verwendet Gleitkommazahlen, während VBA bei der Verwendung des Mod-Operators ganze Zahlen verwendet.

2. Wie kann ich sicherstellen, dass ich die richtige Funktion verwende?
Wenn du mit Gleitkommazahlen arbeitest, verwende die REST Funktion in Excel. Für ganzzahlige Berechnungen ist die MOD Funktion geeignet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige