En esta práctica explicamos que es el valor CAS y cómo se calcula el dígito de control. Es importante tener claro este primer paso para poder entender el funcionamiento de esta verificación.
El objetivo es verificar el valor del dígito de control de un código CAS completo. Por ejemplo si queremos verificar el código CAS del agua: 7732-18-5 deberíamos utilizar la función:
=SI(RESIDUO(EXTRAE(A1;LARGO(A1)-2;1)*1+EXTRAE(A1;LARGO(A1)-3;1)*2
+EXTRAE(A1;LARGO(A1)-5;1)*3+EXTRAE(A1;LARGO(A1)-6;1)*4
+SI.ERROR(EXTRAE(A1;LARGO(A1)-7;1);0)*5+SI.ERROR(EXTRAE(A1;LARGO(A1)-8;1);0)*6
+SI.ERROR(EXTRAE(A1;LARGO(A1)-9;1);0)*7+SI.ERROR(EXTRAE(A1;LARGO(A1)-10;1);0)*8
+SI.ERROR(EXTRAE(A1;LARGO(A1)-11;1);0)*9
+SI.ERROR(EXTRAE(A1;LARGO(A1)-12;1);0)*10;10)
=VALOR(EXTRAE(A1;LARGO(A1);1));"CAS Correcto";"CAS Incorrecto")
La primera parte del SI realizaremos el cálculo del dígito de control a partir de los dígitos del CAS. Este valor lo deberemos comparar con el dígito de control del CAS que hemos introducido. Es por eso que utilizaremos nuevamente la función EXTRAE para obtener el dígito de control EXTRAE(A1;LARGO(A1);1 el único inconveniente es que el valor que hemos conseguido no es un número, es un dato alfanumérico, con lo que deberemos convertirlo en número con la función VALOR de la siguiente forma: VALOR(EXTRAE(A1;LARGO(A1);1))
Ahora solo nos quedará indicar que queremos que se muestre en caso que el valor sea correcto o incorrecto. En un primer caso mostraremos los mensajes "CAS Correcto" y "CAS Incorrecto"
.
Si queremos que aparezca el dígito de control correcto, en la parte del SI del [Valor_si_falso] deberemos introducir nuevamente el cálculo del dígito de control.
La fórmula quedará muy larga, pero realizará el cálculo que deseamos correctamente y cumplirá tanto el caso de validación del dígito de control, como mostrar el valor correcto en caso que< sea incorrecto.
=SI(RESIDUO(EXTRAE(A1;LARGO(A1)-2;1)*1+EXTRAE(A1;LARGO(A1)-3;1)*2
+EXTRAE(A1;LARGO(A1)-5;1)*3+EXTRAE(A1;LARGO(A1)-6;1)*4
+SI.ERROR(EXTRAE(A1;LARGO(A1)-7;1);0)*5+SI.ERROR(EXTRAE(A1;LARGO(A1)-8;1);0)*6
+SI.ERROR(EXTRAE(A1;LARGO(A1)-9;1);0)*7+SI.ERROR(EXTRAE(A1;LARGO(A1)-10;1);0)*8
+SI.ERROR(EXTRAE(A1;LARGO(A1)-11;1);0)*9+SI.ERROR(EXTRAE(A1;LARGO(A1)-12;1);0)*10;10)
=VALOR(EXTRAE(A1;LARGO(A1);1));"CAS Correcto";RESIDUO(EXTRAE(A1;LARGO(A1)-2;1)*1+EXTRAE(A1;LARGO(A1)-3;1)*2
+EXTRAE(A1;LARGO(A1)-5;1)*3+EXTRAE(A1;LARGO(A1)-6;1)*4
+SI.ERROR(EXTRAE(A1;LARGO(A1)-7;1);0)*5+SI.ERROR(EXTRAE(A1;LARGO(A1)-8;1);0)*6
+SI.ERROR(EXTRAE(A1;LARGO(A1)-9;1);0)*7+SI.ERROR(EXTRAE(A1;LARGO(A1)-10;1);0)*8
+SI.ERROR(EXTRAE(A1;LARGO(A1)-11;1);0)*9++SI.ERROR(EXTRAE(A1;LARGO(A1)-12;1);0)*10;10))
Si lo que deseamos es que no solo nos muestre el dígito de control, si no lo que queremos es que muestre todo el número CAS deberemos extraer del primer valor toda la parte correcta, menos el dígito de control y unirlo al nuevo cálculo. Para eso volveremos a utilizar la función EXTRAE pero empezando desde la primera posición y extrayendo todo el tamaño del campo menos 1, que es el dígito de control y a continuación unir de nuevo el cálculo del dígito de control.<
La fórmula final quedará de la siguiente forma:
=SI(RESIDUO(EXTRAE(A1;LARGO(A1)-2;1)*1+EXTRAE(A1;LARGO(A1)-3;1)*2
+EXTRAE(A1;LARGO(A1)-5;1)*3+EXTRAE(A1;LARGO(A1)-6;1)*4
+SI.ERROR(EXTRAE(A1;LARGO(A1)-7;1);0)*5+SI.ERROR(EXTRAE(A1;LARGO(A1)-8;1);0)*6
+SI.ERROR(EXTRAE(A1;LARGO(A1)-9;1);0)*7+SI.ERROR(EXTRAE(A1;LARGO(A1)-10;1);0)*8
+SI.ERROR(EXTRAE(A1;LARGO(A1)-11;1);0)*9++SI.ERROR(EXTRAE(A1;LARGO(A1)-12;1);0)*10;10)
=VALOR(EXTRAE(A1;LARGO(A1);1));"CAS Correcto";EXTRAE(A1;1;LARGO(A1)-1)&RESIDUO(EXTRAE(A1;LARGO(A1)-2;1)*1
+EXTRAE(A1;LARGO(A1)-3;1)*2+EXTRAE(A1;LARGO(A1)-5;1)*3
+EXTRAE(A1;LARGO(A1)-6;1)*4+SI.ERROR(EXTRAE(A1;LARGO(A1)-7;1);0)*5
+SI.ERROR(EXTRAE(A1;LARGO(A1)-8;1);0)*6+SI.ERROR(EXTRAE(A1;LARGO(A1)-9;1);0)*7
+SI.ERROR(EXTRAE(A1;LARGO(A1)-10;1);0)*8+SI.ERROR(EXTRAE(A1;LARGO(A1)-11;1);0)*9
+SI.ERROR(EXTRAE(A1;LARGO(A1)-12;1);0)*10;10))
Deja una respuesta