Blog

Cálculo del Dígito de Control en Código de Barras EAN a través de EXCEL

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