Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

EAN 13 Prüfzifferberechnung

EAN 13 Prüfzifferberechnung
28.03.2024 18:31:49
Jo65
Hallo,
ich habe folgenden Code im Internet gefunden, um die Prüfziffer
in Access zu berechnen.
Gibt es eine möglichkeit, den Code umzuschreiben das der für Excel funktioniert?
Also wenn ich z.B. in A1 12 Zahlen eingebe das dann die 13. Stelle in A2 erscheint.
Hier der Access Code:
Public Function ean13pruefziffer(ean)
'
' EAN-13 Prüfziffer errechnen
'
Dim I As Long, Sum As Long, Fak As Long
ean13pruefziffer = Null
If IsNull(ean) Then Exit Function
If Len(ean) > 12 Then Exit Function
Sum = 0: Fak = 3
For I = Len(ean) To 1 Step -1
Sum = Sum + (Asc(Mid(ean, I, 1)) - Asc("0")) * Fak
If Fak = 3 Then
Fak = 1
Else
Fak = 3
End If
Next I
ean13pruefziffer = (10 - Sum Mod 10) Mod 10
End Function

Danke

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EAN 13 Prüfzifferberechnung
28.03.2024 19:24:23
Oppawinni
Naja,
In A1 die ean rein schreiben
In A2 = ean13pruefziffer(A1)
Die Funktion musst du natürlich vorher in ein Code Modul setzen
AW: die Formel kann man noch etwas kürzen ..
30.03.2024 09:05:42
neopa C
Hallo Jo 65,

... folgende wäre auch ausreichend: =REST(10-REST(SUMME(TEIL(B2;{1.3.5.7.9.11};1)+3*(TEIL(B2;{2.4.6.8.10.12};1)));10);10)

Gruß Werner
.. , - ...
AW: die Formel kann man noch etwas kürzen ..
30.03.2024 12:39:15
Oppawinni
Dazu kann man allerhand finden. Ich fand da z.B.
=REST(-SUMME(TEIL(TEXT(C3;"00000000000\0");{1.3.5.7.9.11;2.4.6.8.10.12};1)*{3;1});10)
was das taugt, k.A. sieht aber übersichtlich aus.
Anzeige
AW: Deine Frml ermittelt andere (falsche?) Ergebniswerte ...
30.03.2024 13:23:05
neopa C
Hallo,

... als die anderen. Welche Ergebniswerte korrekt sind, will und werde ich nicht beurteilen, weil ich lediglich die zuvor vorhandenen (außer der XL365er) ausgewertet hatte.
Mit meiner Formel ermittelte ich gleiche Ergebnis wie diese. Insofern betrachtet ich erst einmal meine als nicht unstimmig. In der von Dir aufgezeigten Formel müßte nur {3;1} in {1;3} getauscht werden, um auf die gleichen Ergebnisse wie mit meiner zu kommen.

So gesehen kann ich meine Formel nochmal etwas kürzen zu: =REST(10-REST(SUMME(TEIL(B2;{1.3.5.7.9.11;2.4.6.8.10.12};1)*{1;3});10);10)
wobei darin {1;3} in {3;1} getauscht, das gleiche Ergebnis wie mit der von Dir aufgezeigten Formel ergibt.

Gruß Werner
.. , - ...
Anzeige
AW: Deine Frml ermittelt andere (falsche?) Ergebniswerte ...
30.03.2024 19:08:54
Oppawinni
so gesehen könnte man dann auch noch verkürzen auf:
{=REST(-SUMME(TEIL(C3;{1.3.5.7.9.11;2.4.6.8.10.12};1)*{1;3});10)}
AW: ja, auch das ist so noch möglich owT
30.03.2024 20:54:47
neopa C
Gruß Werner
.. , - ...
AW: Danke an alle für die super Hilfe
30.03.2024 21:47:19
Jo65
Vielen Dank
wieso weiter offen, wenn erledigt? owt
31.03.2024 05:38:14
Oberschlumpf
AW: EAN 13 Prüfzifferberechnung
28.03.2024 19:33:34
Jo65
Danke,
wusste nicht, dass ich den Code aus Access in Excel benutzen kann.
Vielen Dank funktioniert super.
Lg
AW: EAN 13 Prüfzifferberechnung
29.03.2024 02:26:58
Onur
Hab´s doch noch hingekriegt. Sollte auf 2019 laufen - ggf Formeln als Matrixformel abschliessen (STRG-SHIFT-ENTER).
https://www.herber.de/bbs/user/168396.xlsx
AW: EAN 13 Prüfzifferberechnung
29.03.2024 02:39:47
Onur
Etwas kürzer (EAN in B2) - ggf als Matrixfunktion abschliessen:
=REST(10-REST(SUMME(1*(TEIL(B2;{1.3.5.7.9.11};1)))+3*SUMME(1*(TEIL(B2;{2.4.6.8.10.12};1)));10);10)
Anzeige
AW: EAN 13 Prüfzifferberechnung
29.03.2024 02:59:09
Onur
Noch eine Version:
=REST(10-REST(SUMME(WENN(REST(ZEILE($A$1:$A$12);2)=0;3;1)*(TEIL(B2;ZEILE($A$1:$A$12);1)));10);10)
AW: EAN 13 Prüfzifferberechnung
29.03.2024 20:02:03
Jo65
Hallo Onur,
in deiner Beispieltabelle funktioniert das wunderbar,
wenn ich die Formel aber in meiner Tabelle benutze geht das nicht.
Was mache ich falsch?
Lg
Danke für die Hilfe
AW: EAN 13 Prüfzifferberechnung
29.03.2024 20:18:52
Onur
Keine Ahnung. Poste sie mal.
AW: Danke es funktioniert
29.03.2024 20:19:09
Jo65
Danke es funktioniert,
manchmal steht man echt auf dem Schlauch.
Lg
Gerne !
29.03.2024 20:20:06
Onur
AW: EAN 13 Prüfzifferberechnung
28.03.2024 19:55:33
Onur
Public Function eanpz(ByVal ean)

Dim i, x
ean = CStr(ean)
If Len(ean) > 12 Then eanpz = "Ungültig": Exit Function
For i = 1 To 12
x = CInt(Mid(ean, i, 1))
eanpz = eanpz + x * (1 + ((i + 1) Mod 2) * 2)
Next i
eanpz = 10 - eanpz Mod 10: If eanpz = 10 Then eanpz = 0
End Function
Anzeige
AW: EAN 13 Prüfzifferberechnung
28.03.2024 21:38:02
Onur
Hier eine Formelversion, aber leider nur für 365:
=REST(10-REST(SUMME(ZAHLENWERT(TEIL($B4;SEQUENZ(6;1;1;2);1)))+3*SUMME(ZAHLENWERT(TEIL($B4;SEQUENZ(6;1;2;2);1)));10);10)
AW: EAN 13 Prüfzifferberechnung
28.03.2024 21:47:59
Jo65
Vielen Dank für die Hilfe
Warum funktioniert das nur in 365?
Und nicht in der 2019 Version
Lg
AW: EAN 13 Prüfzifferberechnung
28.03.2024 21:49:35
Onur
Weil 2019 einige Funktionen weniger hat, z.B. "SEQUENZ".

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige