Am 09.01.2014 17:26, schrieb E.J.Minhorst:
>
> ... schön wär's! Leider kann CALC mit solchen großen Zahlen keine
> Moduloberechnungen anstellen - jetzt wird's doch etwas komplizierter:

Mit sooo großen nicht, das ist richtig; aber bis 18 signifikante Stellen
kann man rechnen , auch wenn die Darstellung selbst nur 15 signifikante
Stellen ermöglicht; und selbst die reichen gut für die BKZ und die
Kontonummer (zumindest in DE und vielen anderen Ländern).

Daher halte ich es für viel einfacher, die schrittweise Modulo-Operation
direkt auf BKZ, Kontonummer und Länderkennzeichen an zu wenden:

[A1] = Länderkürzel <Text>
[B1] = Bankleitzahl <Zahl>
[C1] = Kontonummer[1] <Zahl>
[D1] = aufbereitete Länderkennzahl <Zahl; für DE immer 131400>
        =(((CODE(TEIL(A1;1;1))-55)*100) + (CODE(TEIL(A1;2;1))-55))*100
[E1] = Prüfziffer[2] <Zahl>
        =98 - REST((REST(REST(B1;97)*10^10+C1;97)*10^6)+D1;97)
[F1] = IBAN <Text>
        =A1 & TEXT(E1;"00") & TEXT (B1;"00000000") & TEXT (C1;"0000000000")

[1] Der erste Buchstabe des Länderkürzels ("TEIL(A1;1;1)") wird in den
zugehörigen Ascii-Wert umgewandelt, und davon 55 abgezogen (bsp. "A" hat
den ASCII-Wert 65; um daraus den erforderlichen Wert 10 zu erhalten,
muss man eben jene 55 abziehen); das Ergebnis wird um 2 Dezimalstellen
nach links verschoben ("*100"), der auf gleiche Weise umgerechnete Wert
des zweiten Buchstabens dazu addiert, und das ganze nochmals um 2
Stellen verschoben, um den Platzhalter für die Prüfziffer zu erzeugen.

[2] die BLZ aus B1 wird Modulo 97 genommen ("REST(B1;97)"), und das
Ergebnis um 10 Dezimalstellen aka die Soll-Länge der Kontonummer nach
links verschoben ("*10^10"); dazu wird dann die Kontonummer aus C1
addiert, das ganze wider Modulo 97 genommen, und um diesmal 6 Stellen
aka die Länge der aufbereiteten Länderkennzahl (inklusive Platzhalter
"00" für die Prüfziffer) verschoben; schließlich wird diese auch noch
aus E1 dazu addiert, und das ganze nochmal Modulo 97 genommen; das
Ergebnis muss dann nur noch von 98 abgezogen werden.

Wolfgang
-- 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-de-unsubscr...@openoffice.apache.org
For additional commands, e-mail: users-de-h...@openoffice.apache.org

Antwort per Email an