jueves, 13 de mayo de 2010

En Chile: calcular el digito verificador del RUT en Excel



Hace un tiempo un amigo que trabaja en recursos humanos me consultó si había alguna fórmula para calcular el dígito verificador de nuestro RUT en Excel y de paso, cómo y cuál era el proceso matemático que se hacía para extraerlo. Yo lo había estudiado vagamente asi que pensé que era el empujoncito final para meterme más a fondo en dicho tema, asi que sin pensarlo dos veces me puse a investigar y acá están mis resultados:


1. Qué es el RUT?
Es en términos simples, el ID o DNI en otros países. Un número único que nos identifica a los ciudadanos chilenos. Tiene un formato "XX.XXX.XXX-X".


2. Cómo se calcula?
Según Wikipedia se hace de la siguiente forma:

Paso1: se procede a tomar el número de RUT de derecha a izquierda, multiplicando cada dígito por los números que componen la serie numérica 2,3,4,5,6,7; y sumando el resultado de estos productos, como se muestra a continuación (si se ha aplicado la serie hasta el 7 y quedan dígitos por multiplicar, se comienza la serie nuevamente):

Para el ejemplo se calculará el dígito verificador de 30.686.957:

7 × 2 = 14,
5 × 3 = 15,
9 × 4 = 36,
6 × 5 = 30,
8 × 6 = 48,
6 × 7 = 42,
0 × 2 = 0,
3 × 3 = 9,
y el total sería: 14+15+36+30+48+42+0+9 = 194

Paso 2: el número obtenido anteriormente se divide por 11 y se determina el resto de la división.
En el ejemplo: 194: 11 = 17
Resto: 7
Paso 3:Ahora a 11 se le resta el resto:
En el ejemplo: 11 - 7 = 4
Paso 4: ahora queda deducir el resultado:
* Si el resultado es 11, el dígito verificador será 0.
* Si el resultado es 10, el dígito verificador será K.
* En otro caso el resultado será el dígito verificador.
Como en el ejemplo el resultado de la resta es 4, el dígito verificador es 4.
Por ende, el RUT del ejemplo es el 30.686.957-4.


3. Soluciones en Excel
Visto lo visto, trabajé en una hoja de cálculo que nos ayudará a entender/realizar el proceso de extracción del dígito verificador.   Esta hoja contiene 3 ejemplos:

Ejemplo 1: si se ingresan tan sólo los dígitos a calcular el proceso de cálculo se realiza paso a paso siguiendo el camino de las flechas en las celdas.  Es útil para quienes no comprendieron la explicación del paso anterior.


Ejemplo 2: en éste caso el dígito verificador se extrae usando una fórmula anidada basada en la función "=EXTRAE()".   Complicado de explicar, lo agregué para quien lo necesite.  Dicha fórmula no es mía, la encontré de casualidad en un foro de programación.


Ejemplo 3: por último incluyo una tercera alternativa, en éste caso un código que se ha incluido en un módulo.  Los módulos se pueden visualizar pulsando "ALT+F9" y se llaman en la hoja utilizando su nombre o nombre de la función (que en nuestro caso sería "=rutdigito()".  Dicho código estaba en la entrada de la Wikipedia de la cual también saqué la explicación.



4. Descarga y créditos.
- La hoja de cálculo con los tres ejemplos la pueden descargar desde el siguiente enlace: vía Mediafire.
- Los créditos son para Wikipedia y Rodrigo Sandoval un usuario de LWP.
- Como dato adicional está un enlace que nos lleva a la Ley en la que se ordena la creación del RUT.

18 comentarios:

  1. EXCELente !!! kisss, gracias...

    ResponderEliminar
  2. Estimado si vas a compartir la formula subela entera no cortada de que sirve asi....

    ResponderEliminar
  3. @sebastian
    Compartí un archivo de descarga donde están todos los ejemplos y funciones.

    Lo que está en el post es la explicación de cómo se obtiene el dígito.

    Saludos.

    ResponderEliminar
  4. Que debo cambiarle a tu formula para que calcule el DV de un rut con 7 dígitos (ya que sólo resulta con 8)

    ResponderEliminar
  5. Poniéndole un 0 a la derecha, con una aplicación que lo haga masivamente. El addon ASAP Utilities (gratis) permite rellenar con ceros a la izquierda.

    ResponderEliminar
  6. Gran aporte, gracias.
    Y no te desgastes en responder a individuos que ni siquieran se dan el tiempo de leer el articulo completo. Estaba super claro de donde se descarga.

    ResponderEliminar
  7. Notable aporte, super bien explicado, gracias!

    ResponderEliminar
  8. El resto nunca sera 11... si es por 11 el numero que divides...

    ResponderEliminar
  9. He creado una nueva entrada con un generador de RUTs chilenos válidos aleatorios. La pueden ver acá:

    http://oficientes.blogspot.com/2011/12/generador-online-de-ruts-chilenos.html

    ResponderEliminar
  10. No sirve, lo hice con mi rut, y me da 194 = que el ejemplo, pero mi dígito verificador no es 4... así q no sirve

    ResponderEliminar
  11. no dice resto 11 dice resultado 11 lo que quiere decir que el resto fue 0 idiota...

    gracias muy bien explicado

    ResponderEliminar
  12. ESTIMADOS.. HICE UNA FORMULA SUPONIENDO QUE EL RUT SIN EL CODIGO ESTA EN LA CELDA "B5", AHI CALCULA AUTOMATICAMENTE EL CODIGO (NO HAY QUE CONVERTIRLO SI SALE 10 O 11).

    ESPERO QUE LOS AYUDE:::

    =SI(SI(11-(RESIDUO((SI(LARGO(B5)=7;0;EXTRAE(DERECHA(B5;8);1;1))*3)+(EXTRAE(DERECHA(B5;7);1;1)*2)+(EXTRAE(DERECHA(B5;6);1;1)*7)+(EXTRAE(DERECHA(B5;5);1;1)*6)+(EXTRAE(DERECHA(B5;4);1;1)*5)+(EXTRAE(DERECHA(B5;3);1;1)*4)+(EXTRAE(DERECHA(B5;2);1;1)*3)+(EXTRAE(DERECHA(B5;1);1;1)*2);11))=11;0;11-(RESIDUO((SI(LARGO(B5)=7;0;EXTRAE(DERECHA(B5;8);1;1))*3)+(EXTRAE(DERECHA(B5;7);1;1)*2)+(EXTRAE(DERECHA(B5;6);1;1)*7)+(EXTRAE(DERECHA(B5;5);1;1)*6)+(EXTRAE(DERECHA(B5;4);1;1)*5)+(EXTRAE(DERECHA(B5;3);1;1)*4)+(EXTRAE(DERECHA(B5;2);1;1)*3)+(EXTRAE(DERECHA(B5;1);1;1)*2);11)))=10;"K";SI(11-(RESIDUO((SI(LARGO(B5)=7;0;EXTRAE(DERECHA(B5;8);1;1))*3)+(EXTRAE(DERECHA(B5;7);1;1)*2)+(EXTRAE(DERECHA(B5;6);1;1)*7)+(EXTRAE(DERECHA(B5;5);1;1)*6)+(EXTRAE(DERECHA(B5;4);1;1)*5)+(EXTRAE(DERECHA(B5;3);1;1)*4)+(EXTRAE(DERECHA(B5;2);1;1)*3)+(EXTRAE(DERECHA(B5;1);1;1)*2);11))=11;0;11-(RESIDUO((SI(LARGO(B5)=7;0;EXTRAE(DERECHA(B5;8);1;1))*3)+(EXTRAE(DERECHA(B5;7);1;1)*2)+(EXTRAE(DERECHA(B5;6);1;1)*7)+(EXTRAE(DERECHA(B5;5);1;1)*6)+(EXTRAE(DERECHA(B5;4);1;1)*5)+(EXTRAE(DERECHA(B5;3);1;1)*4)+(EXTRAE(DERECHA(B5;2);1;1)*3)+(EXTRAE(DERECHA(B5;1);1;1)*2);11))))

    ResponderEliminar
  13. MUCHAS GRACIAS, FUNCIONA A LA PERFECCION

    ResponderEliminar
  14. NOOOOO ESO ES MUCHO MAS FÁCIL EN EXCEL

    ResponderEliminar
  15. ME PUEDEN PEDIR EL EXCEL A cesar.ortizmendez@gmail.com

    ResponderEliminar
  16. EXCELENTE INFORMACION DETALLADA PARA APLICAR EN UN EXCEL.
    MUY FACIL!!!

    GRACIASPOR EL APORTE
    ATTE
    ANDRES LILLO / PUENTE ALTO PTE.

    ResponderEliminar
  17. Muchas Gracias y Gracias a Max Ferrada, funciona impecable!

    ResponderEliminar