Inicio › Dígito de control

Dígito de control EAN y UPC: cómo se calcula

El último número de un código de barras no es decorativo: sirve para detectar errores. Aquí lo calculamos paso a paso, con ejemplos resueltos, y vemos qué errores detecta y cuáles se le escapan.

  • Tus datos no salen de tu navegador
  • PDF en milímetros reales
  • Dígito de control automático
  • Modelos Avery A4 y Carta
Todo se procesa en tu navegador
¿Qué etiqueta quieres hacer?

Elige el tipo y todo se configura solo (código, tamaño de hoja y diseño). Después puedes cambiar lo que quieras.

Tipo de código

Para hacer varias etiquetas distintas (por ejemplo, varios productos con su precio) en la misma hoja.

Imprime al 100 % · «Tamaño real». Nunca «Ajustar a la página».

¿Varias etiquetas distintas en la misma hoja? Añadir otra etiqueta

Etiqueta seleccionada:

Tus listas de productos, precios y logos nunca se suben a ningún servidor. El PDF, el PNG, el SVG y el ZIP se crean en tu propio dispositivo. Para no perder el trabajo, se guarda una copia solo en este navegador (puedes borrarla con «Borrar todo»).

Qué es el dígito de control y para qué sirve

El último dígito de un EAN-13, un EAN-8, un UPC-A o un ITF-14 se llama dígito de control. No identifica nada del producto: se calcula a partir de todos los demás y sirve para que el lector de la caja pueda comprobar, en una fracción de segundo, que ha leído bien el código. Si un número falla, la caja rechaza la lectura en vez de cobrar el producto equivocado.

Para ti, como quien genera códigos, significa dos cosas: que no puedes inventar el último dígito (si no es el correcto, el lector rechazará el código) y que, si escribes los demás, puede calcularse solo. Eso es lo que hace GeneraEtiquetas: si escribes los 12 primeros dígitos de un EAN-13, añade el último.

El algoritmo paso a paso (EAN-13)

Los cuatro formatos usan el mismo algoritmo, llamado módulo 10 de GS1. Para un EAN-13 se parte de los 12 primeros dígitos:

  1. Numera los dígitos de derecha a izquierda, empezando por el último de esos 12 (el que quedará pegado al dígito de control).
  2. Multiplica por 3 los de posición impar (1.º, 3.º, 5.º…) y por 1 los de posición par (2.º, 4.º, 6.º…).
  3. Suma todos los resultados.
  4. Calcula lo que falta para llegar a la siguiente decena. Si la suma ya acaba en 0, el dígito de control es 0.

Ejemplo con 590123412345:

Posición (desde la derecha)123456789101112
Dígito543214321095
Peso313131313131
Producto15492349230275

La suma es 15 + 4 + 9 + 2 + 3 + 4 + 9 + 2 + 3 + 0 + 27 + 5 = 83. La siguiente decena es 90, así que faltan 7. El EAN-13 completo es 5901234123457.

El mismo algoritmo en UPC-A, EAN-8 e ITF-14

Con los otros formatos, el procedimiento es idéntico: se numera desde la derecha, empezando por el último dígito del cuerpo (sin contar el de control), con peso 3 para el primero y alternando 3 y 1. Solo cambia cuántos dígitos tiene el cuerpo:

FormatoCuerpoSumaControlCódigo completo
EAN-13590123412345 (12)8375901234123457
UPC-A03600029145 (11)582036000291452
EAN-89638507 (7)86496385074
ITF-141001234567890 (13)88210012345678902

Observa que el algoritmo siempre pone el peso 3 en el dígito más cercano al de control. Por eso, si conviertes un UPC-A en EAN-13 añadiendo un cero delante (0036000291452), el dígito de control sigue siendo el mismo, 2: el cero no suma nada y los pesos del resto no cambian.

Cómo comprobar un código que ya tienes

Hay una forma rápida de validar un código completo: multiplica sus dígitos, de izquierda a derecha, por los pesos 1, 3, 1, 3… (en un EAN-13; el último, el de control, queda con peso 1) y suma. Si el resultado es un múltiplo de 10, el código es válido. Con 5901234123457: 5×1 + 9×3 + 0×1 + 1×3 + 2×1 + 3×3 + 4×1 + 1×3 + 2×1 + 3×3 + 4×1 + 5×3 + 7×1 = 90. Es múltiplo de 10, así que el código es válido.

En un EAN-8 o un UPC-A, que tienen un número par de dígitos, los pesos de izquierda a derecha empiezan por 3 (3, 1, 3, 1…). La forma más fiable de no equivocarte es contar siempre desde la derecha.

Cómo calcularlo en Excel

Si tienes una columna de códigos de 12 dígitos guardados como texto en la celda A1, esta fórmula de Excel devuelve el dígito de control de un EAN-13:

=MOD(10-MOD(SUMPRODUCT(--MID(A1,{1,2,3,4,5,6,7,8,9,10,11,12},1),{1,3,1,3,1,3,1,3,1,3,1,3}),10),10)

Multiplica los dígitos, de izquierda a derecha, por 1, 3, 1, 3…, suma y calcula lo que falta para la decena. Para un código completo, puedes pegar la columna en GeneraEtiquetas y dejar que lo valide y lo corrija.

Qué errores detecta y cuáles no

El dígito de control es muy eficaz, pero no es infalible. Detecta:

  • Cualquier error de un solo dígito. Si cambias un 4 por un 7 en cualquier posición, la suma cambia y el control deja de cuadrar. Es el error más habitual al teclear.
  • La mayoría de los intercambios de dos dígitos contiguos. Por ejemplo, 12 escrito como 21.

Lo que no detecta es el intercambio de dos dígitos contiguos que se diferencian en exactamente 5 (0 y 5, 1 y 6, 2 y 7, 3 y 8, 4 y 9). La razón es matemática: al intercambiarlos, la suma cambia en 2 × (a − b), y si la diferencia es 5, ese cambio es 10, que no altera el dígito de control. Un ejemplo real: 1234056789018 y 1234506789018 son dos EAN-13 válidos distintos, con el mismo dígito de control, y se confundirían si alguien intercambia el 0 y el 5. En cambio, si en 1234126789016 se intercambian el 1 y el 2 (queda 1234216789016), el control ya no cuadra, porque le correspondería un 8, y el error se detecta.

Tampoco detecta errores que se compensan entre sí (dos dígitos equivocados que anulan el cambio de la suma), aunque son poco frecuentes. Y, sobre todo, el dígito de control no garantiza que el código exista ni que sea tuyo: un número con el control correcto puede estar sin asignar o pertenecer a otro producto. Eso solo lo garantiza GS1.

Los códigos que no usan este dígito

  • Code 128 lleva su propio carácter de control (módulo 103), que añade el codificador y que ni siquiera se imprime en texto legible. No tienes que calcularlo.
  • Code 39 no lleva dígito de control obligatorio (existe una variante opcional, módulo 43).
  • QR usa códigos de corrección de errores Reed-Solomon, mucho más potentes: pueden reconstruir parte del dibujo si está dañado.
  • ISBN-13 (libros) usa exactamente el mismo algoritmo que el EAN-13, porque es un EAN con prefijo 978 o 979.

Errores habituales al calcularlo (y cómo evitarlos)

  • Excel te borra los ceros iniciales. Un código como 036000291452 pasa a 36000291452 y deja de ser válido. Formatea la columna como Texto antes de escribir o pegar.
  • Contar los pesos desde la izquierda en formatos de longitud par. En EAN-8 y UPC-A, el primer dígito tiene peso 3, no 1. Cuenta siempre desde la derecha.
  • Incluir el dígito de control en la suma al calcularlo. Al calcular, solo se usa el cuerpo. El control se incluye únicamente al validar.
  • Confundir 12 y 13 dígitos. Un EAN-13 se escribe con 12 dígitos más el control; un UPC-A, con 11 más el control. Si escribes 12 en un UPC-A, sobra un dígito.

Cómo lo hace GeneraEtiquetas

Elige un tipo numérico (EAN-13, EAN-8, UPC-A o ITF-14) en el paso 1 y escribe el código:

  • Si escribes el cuerpo sin el dígito de control, lo calcula y lo añade, y te lo indica.
  • Si escribes el código completo y el último dígito no cuadra, te dice cuál debería ser y te ofrece corregirlo con un clic.
  • En el modo de varias etiquetas, marca cada fila con error y puedes corregir todas de golpe.
  • Con las series automáticas en formatos numéricos, rellena con ceros y añade el dígito de control a cada código.

Cómo hemos comprobado que el cálculo es correcto se explica en Cómo verificamos las medidas y los códigos.

Preguntas frecuentes

¿Qué pasa si el dígito de control de mi código es incorrecto?

El lector de la caja rechazará la lectura (o, en algunos sistemas, dará un error), porque el último número no cuadra con los anteriores. GeneraEtiquetas te avisa antes de imprimir y te indica el dígito correcto.

¿Puedo elegir yo el dígito de control?

No. Se calcula siempre a partir de los demás dígitos; si pones otro, el código no será válido. Lo único que se puede elegir son los dígitos anteriores, que en un EAN oficial los asigna GS1.

¿El dígito de control garantiza que el código es único?

No. Solo comprueba que el número está bien formado. Un código con el control correcto puede estar sin asignar o pertenecer a otro producto. La unicidad mundial solo la garantiza GS1.

¿Se calcula igual en EAN-13 que en UPC-A?

Sí: es el mismo algoritmo (módulo 10 de GS1). Se numera desde la derecha, se multiplica por 3 y por 1 alternando, se suma y se calcula lo que falta para la decena. Solo cambia la longitud del cuerpo (12 dígitos en EAN-13, 11 en UPC-A).

¿Por qué mi Excel me da un código distinto?

Lo más habitual es que Excel haya quitado los ceros iniciales (formatea la columna como Texto) o que se estén contando los pesos desde el lado equivocado. Pega los códigos en GeneraEtiquetas y compara con el que calcula.

Más guías

Hojas más consultadas: Avery 3474 · Avery L7162 · Avery 5162 / 8162 · Avery 3422 · Avery L7165 · Avery 5160 / 8160