Cálculo dígito control

En la celda a1 tengo un número de 12 cifras. Necesito añadirle un cifra más (de ese modo tendré un número de 13 cifras) que es un dígito de control. Este dígito de control debe calcularse del siguiente modo:
1º sumo los productos de las cifras en lugar impar (1ª, 3ª, 5ª...) empezando por la derecha, multiplicadas por 1.
2º ídem pero las cifras pares multiplicadas por 3.
3º sumo ambos resultados.
4º del resultado obtenido, busco la decena inmediatamente superior (es decir, si el resultado ha sido 102, la decena inmed. Sup. Sería 110), y le resto el propio resultado (el obtenido en 3º).
¿Cómo puedo hacerlo de un modo sencillo?

1 Respuesta

Respuesta
1
Tengo alguna duda...
¿Puedes explicar mejor el punto 1? ¿En qué influye que se empiece por la derecha?
Hola javigo:
Si tengo por ejemplo el número 976842,
las cifras 1ª, 3ª y 5ª (puestos impares) empezando por la derecha son el 2, el 8 y el 7, mientras que empezando por la izquierda serían el 9, el 6 y el 4.
Espero haber aclarado tu duda.
Gracias
He supuesto que cuando la suma de dígitos es p.e. 100 al restarle la decena superior quiere que devuelva 0 en vez de 10.
Vamos por partes:
Para extraer los números pares o impares y suponiendo que el valor original está en A1 habría que usar una fórmula del tipo:
=VALOR(EXTRAE($A$1;2;1))
Lo que hago después de extraer los números que indicas y multiplicarlos es seleccionar el último dígito resultante, p.e. de 108 selecciono 8, lo resto de 10 y vuelvo a seleccionar el último dígito para evitar los resultados tipo 110-100.
Para hacer esto convierto el resultado (108) en texto (función TEXTO), selecciono el último carácter (función DERECHA) y lo vuelvo a convertir en número (función VALOR)
Todo esto lo meto en una sola fórmula y quedaría un chorizo tal que así:
=VALOR(DERECHA((10-VALOR(DERECHA(TEXTO((VALOR(EXTRAE($A$1;2;1))+VALOR(EXTRAE($A$1;4;1))+VALOR(EXTRAE($A$1;6;1))+VALOR(EXTRAE($A$1;8;1))+VALOR(EXTRAE($A$1;10;1))+VALOR(EXTRAE($A$1;12;1)))*1+(VALOR(EXTRAE($A$1;1;1))+VALOR(EXTRAE($A$1;3;1))+VALOR(EXTRAE($A$1;5;1))+VALOR(EXTRAE($A$1;7;1))+VALOR(EXTRAE($A$1;9;1))+VALOR(EXTRAE($A$1;11;1)))*3;0);1)));1))
Bueno, haz la prueba y me dices si es lo que necesitabas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas