En una entrada anterior con este nombre, ya vimos una manera de verificar la letra del DNI. Aquí vamos a ver cómo Excel nos puede ayudar a construir una comprobación mucho más robusta, aunque no signifique que ya estamos libres de errores mediante la técnica de validación de datos y una fórmula de condiciones anidadas (tendremos cuatro). Fundamentalmente, lo que quiero mostrar es la potencia de la opción Personalizada de la validación de datos. Por otra parte, el uso de condiciones anidadas nos permite lograr muy buenos resultados aunque pueda resultar, en ocasiones, complicado de seguir.
Validación de datos
Para el ejemplo propuesto, he creado una tabla de dos columnas
En la primera he creado una validación de datos Personalizada para que el primer carácter de la entrada tenga que comenzar por un número, la letra “X”, la “Y” o la “Z”. Vamos a Validación de datos, Datos – Validación de datos, y seleccionamos Validación de datos-validación de datos.
En la pestaña Configuración, he elegido Personalizado en el cuadro de lista Permitir, y he escrito la siguiente fórmula en el cuadro Fórmula
Consejo: Como la fórmula es más larga que el cuadro, si hubiera errores, tendría que borrarla y volver a empezar. Para evitar ese problema, la he hecho en Excel y la he comprobado varias veces para ver que funciona correctamente. Después la he copiado en el cuadro. No se mueven las referencias por lo que este método funciona perfectamente.
Veamos la fórmula de derecha a izquierda:
- La función Izquierda(c3)=”Z” me dice que el primer dígito del DNI debe ser la letra “Z” ( o la “Y” o la “X” en los casos siguientes). La función izquierda tiene dos argumentos: el primero es la referencia de celda o el literal del que quiero tomar la información y el segundo es el número de carácteres que quiero tomar. Si este argumento no lo escribo (como en el ejemplo) la función toma 1 por defecto.
- La otra posibilidad de un DNI es que comience por un número. Eso es lo que compruebo con la función Esnumero. Como la función IZQUIERDA devuelve texto, lo que tendré que hacer será convertirlo a número para que la función Esnumero funcione correctamente.
- Con Largo(c3)=9 estoy comprobando que el número de caracteres sea 9. Ni más ni menos. De esa manera se evita lo que he visto tantas veces: DNIs sin los ceros de la izquierda, un espacio o un guión antes de la letra de la derecha, un espacio o un guión después de laletra de la izquierda en el caso de los NIEs, etc.
Condición anidada
En la columna Verificación he escrito una condición anidada. He tomado la fórmula que ya vimos en la entrega anterior sobre este tema y he añadido las diferentes posibilidades de DNI que tenemos. Evidentemente, tendremos una fórmula condicional muy larga pero las basees para su elaboración ya las tenemos. La he troceado para que se pueda analizar sin dificultad.
Archivo de ejemplo de validación de datos y condición anidada