Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1588to1592
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

NVE Prüfnummer errechnen

NVE Prüfnummer errechnen
07.11.2017 17:39:59
Dirk
Hallo zusammen,
bei der 12 Stelligen Nummer kann man per Excel wie folgt die Prüfziffer errechnen:
Für eine 12-stellige EAN (Europäische Artikel Nummer) ist als 13. Stelle eine Prüfziffer zu berechnen.
Die einzelnen Ziffern der EAN werden von rechts nach links - also von hinten nach vorne - abwechselnd mit den Faktoren 3 und 1 multipliziert, wobei stets mit Faktor 3 begonnen wird. Die Summe dieser einzelnen Produkte (Produktsumme) ist zu ermitteln. Die Differenz zwischen der Produktsumme und dem nächsten vollen "Zehner" (Aufrundung) ergibt die Prüfziffer. Ergibt sich eine durch 10 teilbare Produktsumme, so ist die Prüfziffer gleich Null.
In A1 steht die 12-stellige Zahl. Die Prüfziffer ergibt:
=RECHTS(10-REST(SUMMENPRODUKT(TEIL(A1;ZEILE(1:12);1)*(1+2*REST(ZEILE(2:13);2)));10))
Wie sieht es bei einer 17 stelligen aus (18. Stelle die Prüfziffer) ?
Vielen Dank
Dirk

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 17 Stellen = Text
07.11.2017 17:50:55
Fennek
Hallo,
xl stellt keine 17-stelligen Zahlen dar, also müssen sie als Text eingegeben werden.
Die Formel könnte durch eine UDF ersetzt werden, die jeden Buchstaben einzeln ausliest und in eine Zahl wandelt.
Zum Testen eineer Funktion sollten 3-4 Beispiele einer korrekten Prüfsumme gezeigt werden.
mfg
AW: VBA
07.11.2017 18:06:10
Fennek
Hallo,
teste mal, ob dieer Code passt, sowohl für 12 als auch für 17 stellige Werte.

Sub iFen()
Dim Bo As Boolean
Tx = Cells(1, 1)
For i = Len(Tx) To 1 Step -1
F = IIf(Bo, 1, 3)
NVE = NVE + Mid(Tx, i, 1) * F
Bo = Not Bo
Next i
up = WorksheetFunction.RoundUp(NVE, -1)
Debug.Print NVE, up, up - NVE
End Sub
Falls ja, kann das in eine UDF umgeschrieben werden.
mfg
Anzeige
AW: NVE Prüfnummer errechnen
07.11.2017 19:22:33
onur
Teste mal:
Public Function PrüfZ(x As String)
Dim le, n, p, su
le = Len(x)
If le  17 And le  12 Then
PrüfZ = "Falsche Länge"
Exit Function
End If
For n = le To 1 Step -1
p = Val(Mid(x, n, 1))
If (n Mod 2) = 1 Then p = p * 3
su = su + p
Next n
PrüfZ = (10 - (su Mod 10)) Mod 10
End Function

Für 17 Stellen muss die EAN als Text formattiert sein.
AW: NVE Prüfnummer errechnen
07.11.2017 19:53:23
Dirk
Hallo Vielen Dank zusammen,
irgendwie klappt das nicht....irgendwie schmeißt Excel Ergebnis aus !
Hier einige Zahlen
34037497026835101 Prüfziffer 7
34037497026835201 4
34037497026835401 8
Anzeige
splitte Deine funktionierende Formel
07.11.2017 21:12:04
WF
Hi,
ohne groß nachzudenken;
=10-REST(SUMMENPRODUKT(TEIL(RECHTS(A1;12);ZEILE(1:12);1)*(1+2*REST(ZEILE(2:13);2))) +SUMMENPRODUKT(TEIL(0&LINKS(A1;5);ZEILE(1:5);1)*(1+2*REST(ZEILE(2:6);2)));10) -1
Für die 3 Beispiele stimmt's.
WF
AW: ohne groß nachzudenken
08.11.2017 21:47:50
Josef
Hallo WF
wenigstens bist du ehrlich.
Deine Splittung bringt so nicht immer das richtige Ergebnis.
Wenn man die 17 Zahlen richtig mit 1 oder 3 multipliziert und anschliessend summiert, muss man niemals minus 1 rechnen.
Gruss Sepp
Kundenwunsch
09.11.2017 08:03:28
wf
Hi,
-1 ist natürlich Blödsinn, da unlogisch.
Ohne käme man aber nicht auf die 3 vorgegebenen Beispielergebnisse.
WF
Anzeige
AW: NVE - function
07.11.2017 21:28:06
Fennek
Hallo,
bei diesen Beispielen scheint es zu klappen.

function NVE_r(rng as range) as integer
Tx = rng.value
dim Bo as boolean
For i = Len(Tx) To 1 Step -1
F = IIf(bo, 1, 3)
NVE = NVE + Mid(Tx, i, 1) * F
Bo = Not Bo
Next i
up = WorksheetFunction.RoundUp(NVE, -1)
NVE_r = up - NVE
End function
mfg
AW: NVE - function - FUNKTIONIERT
08.11.2017 07:25:14
Dirk
Hallo Fennek,
super hat funktioniert....Vielen lieben Dank
Dirk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige