Después de un buen rato buscando información por internet, de ver los tres pasos para la realización de este cálculo y ver como alguno ofrece alguna solución para Excel que no es correcta, a continuación pongo mi fórmula de EXCEL para el cálculo del dígito de control de los códigos de barra EAN-13. Se supondrá que el número de 12 dígitos estará en la casilla B8 y en la C8 o D8 pondremos la fórmula que ella, en sí misma nos ofrecerá el código de barras completo:
=CONCATENAR(B8;MULTIPLO.SUPERIOR((VALOR(EXTRAE(TEXTO(B8;0);1;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);2;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);3;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);4;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);5;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);6;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);7;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);8;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);9;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);10;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);11;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);12;1))*3);10)-((VALOR(EXTRAE(TEXTO(B8;0);1;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);2;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);3;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);4;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);5;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);6;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);7;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);8;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);9;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);10;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);11;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);12;1))*3)))
En caso de querer el dígito de control aislado:
=(VALOR(EXTRAE(TEXTO(B8;0);1;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);2;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);3;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);4;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);5;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);6;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);7;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);8;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);9;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);10;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);11;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);12;1))*3)-MULTIPLO.SUPERIOR((VALOR(EXTRAE(TEXTO(B8;0);1;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);2;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);3;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);4;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);5;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);6;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);7;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);8;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);9;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);10;1))*3)+(VALOR(EXTRAE(TEXTO(B8;0);11;1))*1)+(VALOR(EXTRAE(TEXTO(B8;0);12;1))*3);10)
Ahí queda eso y ahora un poco de teoría.
El proceso de cálculo es muy sencillo, basta con seguir tres puntos:
*Numerando el código de Derecha a Izquierda, se multiplican por 1 los
dígitos que ocupan posición par, y por tres los dígitos que ocupan posición
impar.
*Se suman los valores de los productos obtenidos.
*Se busca la decena superior al resultado de la suma anterior y se restan
estos dos valores. El resultado obtenido es el dígito de control.
Ejemplo práctico:
(12) (11) (10) (9) (8) (7) (6) (5) (4) (3) (2) (1) Numeración
8 4 1 2 3 4 5 6 7 8 9 1 Código EAN-13 sin dígito de Control
1 3 1 3 1 3 1 3 1 3 1 3 Primer Paso (el multiplicador para cada posición)
8 12 1 6 3 12 5 18 7 24 9 3 Resultados (de la multiplicación)
8+12+1+6+3+12+5+18+7+24+9+3 = 108 Segundo Paso (suma de todas las multiplicaciones)
Valor de la decena Superior ………………. 110
Valor del resultado obtenido ………………. 108
Diferencia = 2
Resultado de la Resta : 2 DÍGITO DE CONTROL
EL CÓDIGO COMPLETO ES: 84 12345 67891 2
Hola Men, agradezco esta solucion, me salvaste la vida solo hay que hacerle una pequeña modificacion a la formula para que jale perfecto, en lugar de ocupar «;», ocupamos «,», de lo contrario marca error excel al intentar ejecutar la funcion. Por lo que queda asi:
=CONCATENAR(B8,MULTIPLO.SUPERIOR((VALOR(EXTRAE(TEXTO(B8,0),1,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),2,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),3,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),4,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),5,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),6,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),7,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),8,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),9,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),10,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),11,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),12,1))*3),10)-((VALOR(EXTRAE(TEXTO(B8,0),1,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),2,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),3,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),4,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),5,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),6,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),7,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),8,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),9,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),10,1))*3)+(VALOR(EXTRAE(TEXTO(B8,0),11,1))*1)+
(VALOR(EXTRAE(TEXTO(B8,0),12,1))*3)))…..Saludos Marco..
Hola eso está muy bien, eres un genio.
Un pregunta, ¿esto mismo se puede aplicar para que lo haga en toda una columna de números de 12 dígitos? Es para generar muchos códigos de barra a la vez. Gracias
Muchas Gracias
Marco y Eduardo
funciona muy bien….
Saludos
David