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

Forumthread: Makro mit großen Zahlen

Makro mit großen Zahlen
15.07.2016 10:11:51
Alifa
Hallo,
wie kann man mit Zahlen, die mehr als 15 Ziffern beinhalten rechnen? 20 stellige Zahlen, die mit 2 beginnen und mit 5 aufhören sollen mit 1.8 multipliziert und dazu 32 addiert werden. x=z*1.8+32. Das Ergebnis wird anschließend auf eine Bedingung geprüft. Ist das mit VBA überhaupt möglich?
Gruß, Alifa
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro mit großen Zahlen
15.07.2016 10:17:56
Christian
Schau mal hier:
https://msdn.microsoft.com/de-de/library/office/gg251528.aspx
Rechnen mit großen Zahlen
17.07.2016 17:03:27
Michael
Hi,
zum Rechnen mit sehr großen Zahlen eignet sich der "Karatsuba"-Algorithmus.
In mehreren Schritten, die je aufeinander aufbauen, wird die Addition, Subtraktion und Multiplikation hier
http://www.excel-ticker.de/in-excel-mit-sehr-grossen-zahlen-rechnen-teil-1-addition/
vorgestellt.
Lege ein neues Modul (in VBA: Einfügen/Modul) an, kopiere die 3 Makros rein und rufe die Multiplikation mit 1,8 dann z.B. in G2 auf mit =mlfhMultiply(E2;18) (wenn der Wert in E2 steht).
Die Multiplikation erfolgt ohne Nachkommastellen, weil wir ja 18 statt 1,8 verwendet haben: mit der 5 am Ende kommt sowieso immer ein ganzzahliger Wert heraus, so daß die letzte Stelle eine 0 ist. Weil die erste Ziffer eine 2 ist, kann das Ergebnis auch nicht mehr als 20 Stellen haben, so daß Du dann in einer weiteren Zelle die 0 abschneiden kannst, z.B. in J2: =LINKS(G2;20).
Dazu addierst Du dann die 32: =mlfhAdd(J2;32)
Die Funktionen laufen nicht vom Fleck weg, d.h. VBA meckert die nicht vorhandene Variable mlcpNumbersPrecision an (zumindest, wenn Du option explicit verwendest, was Du auch unbedingt tun solltest). Die entspricht der vorhandenen Rechengenauigkeit und ist "frei wählbar": ich habe zum Testen eine entsprechende Konstante vorangestellt, gefolgt von den drei reinkopierten Functions (übrigens enthält die Anzeige auf der Seite Zeilennummern, die so nicht sinnvoll kopiert werden können: dafür ist je direkt über dem Code ein link "codefenster", bei dem der Code ohne Nummern gezeigt wird):
Option Explicit
Const mlcpNumbersPrecision = 10
' Add two numbers...
Private Function mlfhAdd(x As String, y As String) As String
' usw., usf.
Schöne Grüße,
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Makro für das Rechnen mit großen Zahlen


Schritt-für-Schritt-Anleitung

Um mit großen Zahlen, wie beispielsweise einer 18-stelligen Zahl, in Excel zu rechnen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und gehe zum Reiter "Entwicklertools". Falls dieser nicht sichtbar ist, aktiviere ihn in den Excel-Optionen.

  2. Klicke auf "Visual Basic". Dies öffnet den VBA-Editor.

  3. Erstelle ein neues Modul: Gehe zu "Einfügen" > "Modul".

  4. Füge den folgenden VBA-Code ein:

    Option Explicit
    Const mlcpNumbersPrecision = 10
    
    ' Add two numbers...
    Private Function mlfhAdd(x As String, y As String) As String
       ' Implementiere die Addition hier
    End Function
    
    Private Function mlfhMultiply(x As String, y As String) As String
       ' Implementiere die Multiplikation hier
    End Function
  5. Implementiere die Funktionen für Addition und Multiplikation, die für große Zahlen geeignet sind.

  6. Speichere dein Modul und schließe den VBA-Editor.

  7. Verwende die Funktionen in Excel. Zum Beispiel, um eine große Zahl in Zelle E2 mit 1,8 zu multiplizieren, schreibe:

    =mlfhMultiply(E2; 18)
  8. Füge anschließend 32 hinzu:

    =mlfhAdd(J2; 32)

Häufige Fehler und Lösungen

  • Fehler: "Variable nicht definiert": Stelle sicher, dass du Option Explicit verwendest. Dies zwingt dich dazu, alle Variablen zu deklarieren.
  • Fehler bei der Multiplikation: Achte darauf, dass du die 18 für die Multiplikation verwendest, um Nachkommastellen zu vermeiden. Dies hilft beim Rechnen mit großen Zahlen.
  • Ergebnis ist nicht korrekt: Überprüfe die Implementierung der Funktionen, um sicherzustellen, dass sie richtig mit großen Zahlen multiplizieren.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch Excel-Funktionen wie TEXT oder LINKS verwenden. Allerdings sind diese Methoden beschränkt, wenn es um die Genauigkeit bei der Handhabung von mehr als 15 Ziffern geht.

Eine andere Möglichkeit ist, die Excel Add-Ins für wissenschaftliche Berechnungen zu verwenden, die in der Lage sind, mit großen Zahlen zu arbeiten.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Funktionen verwenden kannst:

  • Beispiel 1: Multipliziere eine 18-stellige Zahl in Zelle E2:

    =mlfhMultiply(E2; 18)
  • Beispiel 2: Addiere 32 zu dem Ergebnis:

    =mlfhAdd(J2; 32)

Diese Beispiele zeigen, wie man mit großen Zahlen multiplizieren und die Ergebnisse weiterverarbeiten kann.


Tipps für Profis

  • Achte darauf, dass du die Rechengenauigkeit in deinen Funktionen anpasst, je nachdem, mit welchen großen Zahlen du arbeitest.
  • Nutze die VBA-Debugging-Tools, um sicherzustellen, dass deine Funktionen korrekt arbeiten, insbesondere wenn du mit großen Zahlen multiplizieren möchtest.
  • Verwende die Debug.Print-Anweisung, um Zwischenergebnisse beim Rechnen mit großen Zahlen zu überprüfen.

FAQ: Häufige Fragen

1. Wie viele Ziffern kann ich in Excel bearbeiten? Excel kann normalerweise bis zu 15 Ziffern genau darstellen. Für Zahlen mit mehr als 15 Ziffern solltest du VBA verwenden.

2. Kann ich auch mit Dezimalzahlen arbeiten? Ja, du kannst auch mit Dezimalzahlen arbeiten, jedoch musst du sicherstellen, dass deine Implementierung korrekt ist, um Rundungsfehler zu vermeiden.

3. Wie kann ich sicherstellen, dass mein Makro funktioniert? Teste dein Makro mit verschiedenen großen Zahlen und überprüfe die Ergebnisse sorgfältig.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige