Supportnet / Forum / Tabellenkalkulation
Prüfziffer des EAN8 Code berechnen
Frage
wie kann ich die Prüfziffer des EAN 8 code mit Excel berechnen ?
Antwort 1 von Saarbauer
Antwort 2 von rainberg
Hallo jek,
in A1 steht eine 7-stellige Zahl.
Folgende Formel berechnt Dir die Prüfziffer derselben.
Gruß
Rainer
in A1 steht eine 7-stellige Zahl.
Folgende Formel berechnt Dir die Prüfziffer derselben.
=10-REST(SUMMENPRODUKT((0&TEIL($A1;SPALTE(8:8);1))*(REST(SPALTE(8:8);2)=0))*3+SUMMENPRODUKT((0&TEIL($A1;SPALTE(8:8);1))*REST(SPALTE(8:8);2));10)Gruß
Rainer
Antwort 3 von jek
Hallo Rainer,
danke für die Formel, aber da muss noch ein Fehler drin sein.
Wenn ich in A1 4205104 eingebe bekomme ich aus Prüfziffer eine 10 ( entspricht der 0).
Die Prüfziffer ist aber bei diesem EAN 6.
mit dem EAN 4204871 klappt die Formel. (Prüfziffer 8).
danke für die Formel, aber da muss noch ein Fehler drin sein.
Wenn ich in A1 4205104 eingebe bekomme ich aus Prüfziffer eine 10 ( entspricht der 0).
Die Prüfziffer ist aber bei diesem EAN 6.
mit dem EAN 4204871 klappt die Formel. (Prüfziffer 8).
Antwort 4 von rainberg
Hallo jek,
hier die überarbeitete Formel:
Gruß
Rainer
hier die überarbeitete Formel:
=10-REST(SUMMENPRODUKT((0&TEIL($B8;{1.3.5.7};1))*1)*3+SUMMENPRODUKT((0&TEIL($B8;{2.4.6};1))*1);10)Gruß
Rainer
Antwort 5 von rainberg
Hallo jek,
bei Interesse kannst Du auch folgende Benutzerdefinierte Funktion verwenden.
Option Explicit
Public Function EAN8(Eingabe As String) As Variant
If Not IsNumeric(Eingabe) Or Len(Eingabe) <> 7 Then
MsgBox "Nur 7-stellige Zahlen eingeben!"
EAN8 = CVErr(xlErrNA)
Exit Function
End If
Dim i As Integer, n As Integer
i = 3
For n = Len(Eingabe) To 1 Step -1
EAN8 = EAN8 + Val(Mid(Eingabe, n, 1)) * i
If i = 3 Then
i = 1
Else
i = 3
End If
Next n
EAN8 = Eingabe & (10 - EAN8 Mod 10) Mod 10
End Function
Diese rufst Du auf mit
=ean8(A1)
wenn die 7-stellige Zahl in A1 steht.
Gruß Rainer
bei Interesse kannst Du auch folgende Benutzerdefinierte Funktion verwenden.
Option Explicit
Public Function EAN8(Eingabe As String) As Variant
If Not IsNumeric(Eingabe) Or Len(Eingabe) <> 7 Then
MsgBox "Nur 7-stellige Zahlen eingeben!"
EAN8 = CVErr(xlErrNA)
Exit Function
End If
Dim i As Integer, n As Integer
i = 3
For n = Len(Eingabe) To 1 Step -1
EAN8 = EAN8 + Val(Mid(Eingabe, n, 1)) * i
If i = 3 Then
i = 1
Else
i = 3
End If
Next n
EAN8 = Eingabe & (10 - EAN8 Mod 10) Mod 10
End Function
Diese rufst Du auf mit
=ean8(A1)
wenn die 7-stellige Zahl in A1 steht.
Gruß Rainer
Antwort 6 von jek
Hallo Rainer,
Danke für die Tipps. Klappt super !!
Gruß Jens
Danke für die Tipps. Klappt super !!
Gruß Jens
Antwort 7 von rainberg
Hallo Jens,
hatte gerade noch mal getestet, die obige Formel gibt die Prüfziffer 10 statt 0 aus.
Folgende Anpassung ist nötig.
Gruß Rainer
hatte gerade noch mal getestet, die obige Formel gibt die Prüfziffer 10 statt 0 aus.
Folgende Anpassung ist nötig.
=REST(10-REST(SUMMENPRODUKT((0&TEIL($B8;{1.3.5.7};1))*1)*3+SUMMENPRODUKT((0&TEIL($B8;{2.4.6};1))*1);10);10)Gruß Rainer

