Clever-Excel-Forum

Normale Version: Suche Lösung für Formel zur Quersumme
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

Arbeitsblatt mit dem Namen 'Tabelle1'
 EF
14447806517517257

ZelleFormel
F14=10-REST(SUMMENPRODUKT(KÜRZEN(TEIL(E14;SPALTE(A1:N1);1)*(2-REST(SPALTE(A1:N1);2))/10;)+REST(TEIL(E14;SPALTE(A1:N1);1)*(2-REST(SPALTE(A1:N1);2))/10;1)*10);10)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
@Josef B
Ich möchte die Prüfziffer einer IMEI Nummer berechnen.
Als Vorlage dazu diente mir genau die Angabe aus dem Link, den auch WilliWissen hier im 4. Post genannt hatte.

Das hab ich versucht in einer Formel nachzustellen.
Meiner Formel aus Post 5 fehlt mindestens die korrekte Rechnung der Quersumme (Das Problem dazu steht detailliert in Post 1)
Da es fürs Verständnis dieses Problems ausgereicht hat, die Werte zu vereinfachen hatte ich eigene Werte (mit denen ich mich in Excel an die Lösung herangetastet hatte) hier verwendet.

Im Link von RPP63 bin ich fündig geworden, was das letztendliche Ergebnis angeht - also grundsätzlich fertig sozusagen :)
(Ist eine ähnliche Lösung wie BoskoBiati eben genannt hat)

Aber es ist ein komplett anderer Ansatz an die Prüfziffer zu kommen, als den, den ich zuerst verfolgt hatte. Und wenn ich mal die Gewichtung (siehe dazu WilliWissens Link!) anders haben will funktioniert dieser Ansatz nicht mehr. Dafür fällt mir zwar momentan kein konkretes Beispiel ein, aber wenn ich schon mal drann bin mich damit auseinanderzusetzen...

Außerdem würde ich das ursprünglich benannte Problem gerne lösen können; Einfach weil ich da nun mal drauf gestoßen bin und mich eine Lösung dazu interessiert.
Wenn ich die hätte, könnte ich auch wieder "meine" Lösung implementieren :)
Hallo


Eine Lösung für deine Frage aus Post 1 könnte etwa so aussehen.

=SUMMENPRODUKT(--(TEIL((TEIL(A1;ZEILE(INDIREKT("1:"&LÄNGE(B1)));1)*TEIL(B1;ZEILE(INDIREKT("1:"&LÄNGE(A1)));1))&0;{1.2};1)))

Hier werden die zweistelligen Ergebnisse des Produktes einfach  nochmals aufgeteilt, und erst nachher die Summe gebildet.

Gruss Sepp
Hi,

hier mal ein paar Berechnungen von Prüfziffern:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGH
1NameMusterPrüfziffern     
2IMEI447806517517258     
3EAN7622200004607     
4ISBN3-88229-192-37     
5VISA4509 4721 4054 90066     
6Bahncardwie VISA    SummeEinzeln
7Perso alt2406055684 6810203 0705109 6439641111
8Perso neuT406055683681020307051090339041111

ZelleFormel
C2=10-REST(SUMMENPRODUKT(KÜRZEN(TEIL(B2;SPALTE($A$2:$M$2);1)*(2-REST(SPALTE($A$2:$M$2);2))/10;)+REST(TEIL(B2;SPALTE($A$2:$M$2);1)*(2-REST(SPALTE($A$2:$M$2);2))/10;1)*10);10)
C3=10-REST(SUMMENPRODUKT(TEIL(B3;SPALTE($A$2:$K$2);1)*(3-REST(SPALTE($A$2:$K$2);2)*2));10)
C4=WECHSELN(WECHSELN(11-REST(SUMMENPRODUKT(TEIL(WECHSELN(B4;"-";"");SPALTE(A2:H2);1)*(11-SPALTE(A2:H2)));11);10;"X");11;0)
C5=10-REST(SUMMENPRODUKT(KÜRZEN(TEIL(WECHSELN(B5;" ";"");SPALTE($A$2:$N$2);1)*(2-(REST(SPALTE($A$2:$N$2);2)=0))/10;)+REST(TEIL(WECHSELN(B5;" ";"");SPALTE($A$2:$N$2);1)*(2-(REST(SPALTE($A$2:$N$2);2)=0))/10;1)*10);10)
C7=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10)
D7=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(L2:Q2);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10)
E7=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(T2:Y2);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10)
F7=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B7;SPALTE(L:R);1)*(8/2^REST(SPALTE(A:G);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B7;SPALTE(T:Z);1)*(8/2^REST(SPALTE(B:H);3)-1);10));10)
G7=(TEIL(B7;10;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10))+(TEIL(B7;18;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(L2:Q2);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))+(TEIL(B7;26;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(T2:Y2);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))+(RECHTS(B7;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B7;SPALTE(L:R);1)*(8/2^REST(SPALTE(A:G);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B7;SPALTE(T:Z);1)*(8/2^REST(SPALTE(B:H);3)-1);10));10))*1
H7=(TEIL(B7;10;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10))*1&(TEIL(B7;18;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(L2:Q2);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))*1&(TEIL(B7;26;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(T2:Y2);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))*1&(RECHTS(B7;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B7;SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B7;SPALTE(L:R);1)*(8/2^REST(SPALTE(A:G);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B7;SPALTE(T:Z);1)*(8/2^REST(SPALTE(B:H);3)-1);10));10))*1
C8=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10)
D8=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10)
E8=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10)
F8=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(A:F);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(B:G);3)-1);10));10)
G8=(TEIL(B8;10;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10))+(TEIL(B8;17;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))+(TEIL(B8;24;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))+(RECHTS(B8;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(A:F);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(B:G);3)-1);10));10))*1
H8=(TEIL(B8;10;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10))*1&(TEIL(B8;17;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))*1&(TEIL(B8;24;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))*1&(RECHTS(B8;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(A:F);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(B:G);3)-1);10));10))*1
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Die Systematik kann man nachlesen. Beim Perso, dessen Nummer in der alten Version mit den Leerzeichen einzugeben ist,  sind die vier Prüfziffern in C bis F, in G eine Kontrolle, ob alle 4 Prüfziffern stimmen und in in H eine Kontrolle mit Auflistung der vier Prüfziffern der Reihe nach. Bei Fehlern würde das z.B. so aussehen:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGH
8Perso neuT406055683681020207051091339021010

ZelleFormel
G8=(TEIL(B8;10;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10))+(TEIL(B8;17;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))+(TEIL(B8;24;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))+(RECHTS(B8;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(A:F);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(B:G);3)-1);10));10))*1
H8=(TEIL(B8;10;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:I);1)*(8/2^REST(SPALTE(C:K);3)-1);10)*1);10))*1&(TEIL(B8;17;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))*1&(TEIL(B8;24;1)*1=REST(SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(C:H);3)-1);10)*1);10))*1&(RECHTS(B8;1)*1=REST(SUMMENPRODUKT(REST(TEIL(WECHSELN(B8;LINKS(B8;1);REST(CODE(B8)-55;10));SPALTE(A:J);1)*(8/2^REST(SPALTE(C:L);3)-1);10)*1)+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(K:P);1)*(8/2^REST(SPALTE(A:F);3)-1);10))+SUMMENPRODUKT(REST(TEIL(B8;SPALTE(R:W);1)*(8/2^REST(SPALTE(B:G);3)-1);10));10))*1
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

die 2.Prüfziffer ist falsch.
Hallo

Zur Formel: =10-REST(SUMMENPRODUKT(xy);10)

gibt es folgendes zu bedenken. Was ist, wenn der Rest 0 ergibt?

Ich weiss, das kann man leicht abfangen, aber warum macht das niemand?

Gruss Sepp
Hi Josef,

guter Einwand. In einem Fall ist das klar vorgegeben, ansonsten müsste man wirklich noch um die entsprechenden Formeln noch mal einen Rest drum bauen.
Hallo Edgar

Zitat:ansonsten müsste man wirklich noch um die entsprechenden Formeln noch mal einen Rest drum bauen

Oder einfach =REST(-SUMMENPRODUKT(xy);10)

Gruss Sepp
Seiten: 1 2