Código EAN-13

Me gustaría saber si EXCEL tiene algún complemento o algo que calcule el dígito de control de un código de barras EAN-13; es decir, que si le introduzco los 12 primeros dígitos me devuelva el 13, esto es, el dígito de control.
Gracias mil
Tengo la misma pregunta y he encontrado esta fórmula que hace exactamente lo que buscas - PERO - viene escrita para Excel en alemán en http://www.herber.de/forum/archiv/844to848/t844166.htm:
Si en A1 tenemos los 12 dígitos del ean13:
=10-REST(SUMMENPRODUKT((0&TEIL($A1;SPALTE(1:1);1))*(REST(SPALTE(1:1);2)=0))*3+SUMMENPRODUKT((0&TEIL($A1;SPALTE(1:1);1))*REST(SPALTE(1:1);2));10)
no lo tengo claro, pero me da que es una "formula matricial", {=...}
Lo que se consigue con un shift+control+enter en vez de solo enter
Para que no de como resultado un "10" (lo cual es incorrecto):
=RECHTS(T(...),1)
¿Quién sabe traducirla al Excel español?

1 respuesta

Respuesta
2
Toda la explicación que te será más utili que traducir del alemán al español:
Partiendo de la definición de Wilkipedia:
Dígito de control. Para comprobar el dígito de control (por ejemplo, por el ordenador y el escáner de código de barras), se suman los dígitos de las posiciones pares, el resultado se multiplica por 3, se le suman los dígitos de las posiciones impares y este resultado se le resta a su múltiplo de 10 más próximo. El resultado final ha de coincidir con el dígito de control.
Por ejemplo, para 123456789041 el dígito de control será:
Suma de los números en los lugares pares: 2+4+6+8+0+1 = 21
Multiplicado x 3: 21 x 3 = 63
Suma de los números en los lugares impares: 1+3+5+7+9+4 = 29
Suma total: 63 + 29 = 92
Próximo múltiplo de 10 = 100
Dígito de control: 100 - 92 = 8
Hacemos lo siguiente:
Supongamos que en A2 está el numero inicial o sea:
123456789041
En la celda B2 colocas:
=(VALOR(EXTRAE(A2;2;1))+
VALOR(EXTRAE(A2;4;1))+
VALOR(EXTRAE(A2;6;1))+
VALOR(EXTRAE(A2;8;1))+
VALOR(EXTRAE(A2;10;1))+
VALOR(EXTRAE(A2;12;1)))*3+
(VALOR(EXTRAE(A2;1;1))+
VALOR(EXTRAE(A2;3;1))+
VALOR(EXTRAE(A2;5;1))+
VALOR(EXTRAE(A2;7;1))+
VALOR(EXTRAE(A2;9;1))+
VALOR(EXTRAE(A2;11;1)))
En la celda C2 colocas:
=TRUNCAR(B2;-1)+10
En la celda D2 colocas:
=C2-B2
En la celda E1 colocas:
=A2&D2
Espero que te sirva, si es así puntúa y finaliza la consulta, un comentario siempre es bienvenido. Gracias
>Un saludo
>Julio
PD:http://es.wikipedia.org/wiki/European_Article_Number
Gracias!
Esta solución es la que uso - con el problema del "10"
Si alguien sabe "traducierlo": bienvenida sea la solución
Vamos a ver la página que pusiste (en alemán, son buenos) traduciendo el asunto existen más formas para calcular el dígito de control incluso para el caso de que el resultado de la fórmula nos salga 10, es una simple condición, si el resultado es 10 utilizaremos solo el ultimo dígito de 10 (0) porque es divisible por 10, si no es así utilizaremos el que salga, te explico:
Numero que vamos a utilizar para dígito de control diferente de 0:
123456789041 Lo colocamos en A1, en B1 ponemos esta fórmula:
=(VALOR(EXTRAE(A1;1;1))*1+VALOR(EXTRAE(A1;2;1))*3+VALOR(EXTRAE(A1;3;1))*1+VALOR(EXTRAE(A1;4;1))*3+VALOR(EXTRAE(A1;5;1))*1+VALOR(EXTRAE(A1;6;1))*3+VALOR(EXTRAE(A1;7;1))*1+VALOR(EXTRAE(A1;8;1))*3+VALOR(EXTRAE(A1;9;1))*1+VALOR(EXTRAE(A1;10;1))*3+VALOR(EXTRAE(A1;11;1))*1+VALOR(EXTRAE(A1;12;1))*3)
Lo que vamos haciendo es:
1º dígito lo mutiplicamos por 1
2º dígito lo multiplicamos por 3 (y sumamos el resultado al anterior)
3º dígito lo multiplicamos por 1 (y sumamos el resultado a la suma anterior)
Osea 1º*1+ 2º*3+ 3º*1+4º*3.........+9º*3 (por 1 por 3 por1 por 3...)
Esto nos dará un resultado en este caso 92, en la celda C1 ponemos esta formula:
=TRUNCAR(B1;-1)+10
Nos dará el resultado de 100, y en la celda D1 ponemos esta formula:
=D1-B1
Nos dará el resultado 8
Y en la celda E1 ponemos esta otra que corregirá si el resultado es 10 (divisible por 10 que el dígito sería 0:
=SI(E1=10;A1&EXTRAE(E1;2;1);A1&E1)
El resultado sería 1234567890418
Si ahora utilizas el numero 978382731710
El resultado en E1 será:
9783827317100
Mira a ver si soluciona tu problema, si es así comenta, puntúa y finaliza tu consulta.
>Un saludo
>Julio
PD: En fórmulas no soy muy bueno, me defiendo mejor con macros pero en este caso creo que podría valerte.
Me olvidé de darte la página en alemán que te calcula el dígito el solo empleando la fórmula directamente, copias tu numero y lo pegas en la ultima celda activando la casilla de EAN y te sale el dígito en automático, puede servirte:
http://www.arndt-bruenner.de/mathe/scripts/pruefziffern.htm

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas