Vamos a calcular la letra de nuestro DNI con Microsoft Excel

Como todos sabéis, o no, el NIF es el resultado de añadirle una letra al DNI, pero ¿a que no sabéis cómo se realiza el cálculo de esa letra?

Todo viene de un algoritmo llamado “módulo 23”. Éste módulo 23 es el número entero que obtenemos como resto de la división entera del DNI entre 23. Al utilizar el módulo 23, el resto resultante estará entre el 0 (cero) y el 22. ¿Liado? gráficamente lo verás mejor.

Y ahora… con ese 14, ¿qué hacemos? Por ahora, ¡clic!
Ese número 14 es el que define la letra que tendrá nuestro NIF; y aquí viene una incógnita, pues el orden en el que tenemos que colocar las letras es el siguiente:

TRWAGMYFPDXBNJZSQVHLCKE

¿Por qué este orden? No tengo ni idea, ni he encontrado la respuesta en Internet… será un secreto de estado… 🙂

No se utilizan las letras: I, Ñ, O, U. La I y la O se descartan para evitar confusiones con otros caracteres, como 1, l, 0…

La Ñ no se utiliza por no existir en otros países, y la U no tengo ni idea de por qué no se utiliza… será por no confundirla con la V.

Sigamos: si cogemos el 14 y empezamos a contar posiciones, nos dice que para el DNI “12345678” su letra es la J, verdad? ERROR! tenemos que empezar a contar desde el 0, y no desde el 1 y como resultado tendremos el correcto, que es la Z.

Ahora veamos cómo podemos convertir este “tocho” en una sencilla fórmula de Excel a la que le podemos sacar mucha utilidad si trabajamos con bases de datos de personas, clientes, etc. (Nota, este cálculo basado en el “módulo 23” es sólo válido para el cálculo del NIF, no de un CIF o de un NIE, aunque para este último hay un truquito del que hablaremos al final).

Supuesto práctico: Pongámonos en situación, trabajamos en una oficina y tenemos un listado de personas a los que enviar una documentación rápidamente, pero nuestra base de datos sólo localiza personas buscando por su NIF completo. Pero tenemos un problemón… ¡nos han enviado el listado de los NIF sin la letra! Podemos ir a Internet y buscar una calculadora e ir uno por uno… solución útil si tenemos una lista corta de personas o mucho tiempo libre… pero si tenemos una lista de 1000 DNI a los que poner letra… ya tenemos más pereza…

Abramos nuestro listado de DNI y al lado de la columna de los números, creemos una para la Letra.


Vamos a calcular ahora la letra con una sencilla fórmula de Excel utilizando únicamente los datos que ya sabemos: módulo 23, orden de las letras.

=EXTRAE(“TRWAGMYFPDXBNJZSQVHLCKE”;RESIDUO(A2;23)+1;1)

Que leído sería algo como: “Quiero que me des el resto de la división entera de la celda A2 entre 23, y que le sumes uno, y que me digas a qué letra corresponde de la lista anterior.

La función “RESIDUO()” es la que nos calcula, automáticamente, el resto de la división entera del DNI/23. Y Recuerda: el +1 viene por tener que empezar a contar desde 0. Excel empieza siempre desde 1.

Ahora ya tenemos nuestra letra.

Vamos a hacerlo un poco más creativo y sencillo… Utilizando la fórmula que ya tenemos, vamos a concatenarla con el DNI, de la siguiente manera:

=CONCATENAR(A2;EXTRAE(“TRWAGMYFPDXBNJZSQVHLCKE”;RESIDUO(A2;23)+1;1))

Ahora deberíamos verlo así


Y listo, ahora sólo tendríamos que arrastrar nuestra fórmula a lo largo de la lista de DNI.

No era tan difícil, ¿verdad?

pd.- ¿sabías que el numerito que viene detrás de tu DNI después de las <<<< es el número de personas que se llaman y apellidan igual que tú? Pues deja de saberlo, es mentira… no es más que un dígito de control que verifica que el número largo anterior es correcto. Hala, has aprendido 2 cosas y serás el rey del Trivial esta noche!

pd2.- me olvidaba del NIE… Si el NIE empieza por X, se calcula despreciando la X y utilizando los 7 dígitos. En el caso de que el NIE empiece por Y, se cambia la Y por el número 1, si el NIE empieza por Z, cambia la letra Z por el número 2 y realiza el mismo cálculo. ^^

27 Comentarios

  • Como algo anecdótico queda bien este artículo, pero yo me pregunto si alguien se va a dedicar a realizar estas operaciones para saber de donde llegó la letra que le asociaron a su DNI…

    • Hola Marisa,

      En primer lugar, gracias por comentar. Y en segundo, este post va más allá de jugar con excel para ver de dónde viene la letra de tu DNI. Simplemente fíjate en el caso práctico.

      Yo vengo de un trabajo donde estaba trabajando constantemente con bases de datos de clientes, muchos miles de clientes (trabajo de telemárketing).

      La tónica habitual era la siguiente: El Cliente X contrata una campaña de telemárketing a la empresa Y donde yo trabajo, y me facilita para la campaña una base de datos de 100.000 clientes a los que vender un nuevo producto, con sus nombres, DNI’s y direcciones. Si el cliente contrataba, los daba de alta en el programa de facturación de la compañía X… pero para activarle los servicios necesitaba el NIF (DNI+Letra), y la base de datos sólo me facilitaba el DNI sin letra.

      Es cierto que podía ir uno a uno con una calculadora, añadiendo la letra a los que contrataron, pero creo que es más sencillo modificar la base de datos completa, añadiendo ese caracter que faltaba, que es un trabajo de 5 minutos, en lugar de perder tiempo a posteriori buscándolos uno a uno para darlos de alta.

      De todas formas, cada uno le saca utilidad a Excel de la mejor manera posible… Hay quienes lo utilizan como bloc de notas, y quienes lo utilizan como hoja de cálculo…

    • Pues sí. En mi trabajo tengo listados enormes de personal con sus respectivos DNI’s, pero muchas veces falta la letra del NIF y es totalmente necesaria para trabajar con ellos. Por eso es importante saber calcularla.

    • Hola Laia, el cálculo es exactamente el mismo, pero tenemos que descartar la letra inicial, que será siempre una X o una Y.

      Como nos dice la Wikipedia: La letra inicial es una X para NIEs asignados antes de julio de 2008 y una Y para NIEs asignados a partir de dicha fecha. Una vez agotada la serie numérica de la Y la norma prevé que se utilice la Z.

      Un saludo Laia, y gracias por leernos!

  • Muchas gracias, muy bien explicado pero no entiendo cómo aplicarlo en el caso del NIE!!!

    • Hola Javi,

      Como indiqué a Laia en un comentario anterior, el cálculo es el mismo, pero no tenemos que tener en cuenta la primera letra (X o Y).

      Un saludo!

  • ¿Y cómo se podría hacer para que al escribir en una celda el DNI y pulsar Intro o Tab, Excel hiciera el cálculo y colocara en esa misma celda el NIF completo? Gracias

  • Hola, en primer lugar agradecerte la entrada pues está muy bien explicada y detallada, con sus figuras y sus capturas de pantalla como debe ser…
    Y en segundo decirte que Microsoft tiene la manía de localizar todo ¡incluido las expresiones regulares de Excel! No es la primera vez que me pasa, normalmente si estoy en un entorno “desconocido” pruebo con las expresiones en inglés porque suele tragárselas en la mayoría de los casos (p.e. SUM() por SUMA() ) Así que la función EXTRAE() en castellano de España es MED(), y la función RESIDUO() aquí es el RESTO() 😀
    Pero vamos, es sólo una observación que espero le venga bien a quien pase por aquí y al intentar poner en práctica tus consejos no consiga lo que necesita…
    Un muy cordial saludo y gracias de nuevo por esta gran entrada. ^_^

  • Hola os queria comentar que hay una persona que dice que no nos vamos a dedicar a jugar a sacar las letras del dni pues no,pero te comento que estoy haciendo un curso de auxiliar administrativo y es uno de los ejercicios de excel,para calcular y para saber hacer formulas no para dedicarnos a sacar letras.Un saludo.

  • Pues yo me he entretenido bastante leyendo esta entrada y sacando la letra de mi DNI mediante el cálculo del método 23. Hoy aprendí una cosa nueva y puedo acostarme tranquilo jejejeje. Un saludo.

  • Me parece un artículo interesante y añadiría que puede ser muy útil para confirmar la veracidad de una documentación, detectando que alguien haya podido inventarse un DNI falso (por supuesto modificando ligeramente el contenido de la fórmula).

    Saludos.

  • La fórmula que propongo es la siguiente:

    =SI(A1=CONCATENAR(MED(A1;1;8);” “;MED(“TRWAGMYFPDXBNJZSQVHLCKE”;RESTO(MED(A1;1;8);23)+1;1));”OK”;”ERROR”)

    Situando el NIF completo (con un espacio delante de la letra) en la celdilla A1 y la fórmula en la celdilla A2

    Si tenemos el NIF sin el espacio delante de la letra la fórmula será la siguiente:

    =SI(A1=CONCATENAR(MED(A1;1;8);MED(“TRWAGMYFPDXBNJZSQVHLCKE”;RESTO(MED(A1;1;8);23)+1;1));”OK”;”ERROR”)

    Saludos y espero que le sirva a alguien.

    • En la primera fórmula que he puesto aparece un espacio muy grande entre comillas. En realidad no es más que un espacio normal y corriente, por algún motivo que desconozco ha aparecido con este tamaño.

  • Muchas gracias!!!

    Me ha servido para obtener las letras de un listado infiito de DNIs.

  • Interesante y útil artículo. Siento verdadera curiosidad sobre el porqué de ese orden en cocreto. Sería genial tener un poco de luz al respecto. Saludos.

  • hola, ante todo gracias por poner este tipo de ayudas en Internet
    pero la formula que han indicado arriba esta mal no funciona, la correcta seria
    =EXTRAE(“TRWAGMYFPDXBNJZSQVHLCKE”;1+RESIDUO(A2;23);1)
    a mi me ha funcionado así

  • Saludos administrdor mi pregunta es si yo tengo: nombre,apellido,fecha de nacimiento y cedula de identidad de una persona de venezuela como haria para saber el DNI espanol de la persona venezolana ? Grasias espero pronta respuesta de su parte

  • Por favor…seria tan amable de poner la formula para validad NIE en excel? no consigo que funcione. NO hay que decirle a la expresion que cambie la Y “1” y la z por “2”?, por favor, pido ayuda. Gracias.

  • Muchas gracias . Me ha sido muy útil. Estoy preparando la nueva base de datos de mi comunidad (287 vecinos) y tenía datos antiguos de los DNI, pero algunos sin letra. Ahora gracias a esta información, los he completado.