Valida rut en una celda excel

Necesito validar un Rut (Chileno), a través de excel solamente en una celda y en el caso que el rut sea incorrecto me diga o rut erróneo.

3 Respuestas

Respuesta
1

Según veo, el Rut tiene 8 dígitos iniciales y uno de verificación.

Para validar si el Rut tiene 8 dígitos:

=SI(LARGO(IZQUIERDA(Celdadondeestaelnumero,HALLAR("-",Celdadondeestaelnumero,1)-1))=8,"Rut Valido","Rut Errado")

Para validar si el rut tiene los diez caracteres incluyendo el guion:

=SI(LARGO(Celdadondeestaelnumero)=10,"Rut Valido","Rut Errado")

Se debe reemplazar Celdadondeestaelnumero con la celda respectiva.

Hola muchas gracias por la respuesta, pero en realidad necesito que me valide el rut no solo en formato sino que también en el calculo del algoritmo de rut y que este lo haga en una sola celda incluyendo el guion

¿A qué se refiere con el calculo del algoritmo? ¿Podría ser más especifico o compartir más información?

Esto es lo que aparece en wikipedia para el calculo de Rut chileno donde se utiliza un algoritmo llamado el modulo 11 pero lo que necesito es que haga eso en una celda y al escribir el rut me diga si esta bueno o erróneo por validador de datos o algo así en excel, en realidad no se si sea posible que lo haga en una sola celda como cuando ingresamos al servicio de impuestos internos (SII)

"Procedimiento para obtener el dígito verificador[editar]

El RUT consta de dos partes: el número y el dígito verificador separados por un guion. En el siguiente ejemplo se toma como RUT el número 30.686.957-X, donde 30.686.957 es el número del RUT y X es el dígito verificador que no conocemos o que queremos verificar.

- 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, y 7; y sumando el resultado de estos productos. Si se ha aplicado la serie hasta el final y quedan dígitos por multiplicar, se comienza la serie nuevamente:

7 × 2 = 14,

5 × 3 = 15,

9 × 4 = 36,

6 × 5 = 30,

8 × 6 = 48,

6 × 7 = 42,

0 × 2 = 0,

3 × 3 = 9,

entonces la suma de los productos es: 14+15+36+30+48+42+0+9 = 194

- Al número obtenido por la suma del producto de cada dígito por la serie ya mencionada, se le aplica módulo 11, o sea, se divide por 11 y se determina el resto de la división:

parte entera de (194 : 11) = 17

resto de la división entera: 194 - (11 * 17) = 7

- Ahora a 11 se le resta el resto calculado antes:

11 - 7 = 4

- Al resultado final, se le convierte a una letra o número, siguiendo estas reglas:

  • Si el resultado es 11, el dígito verificador será 0 (cero).
  • Si el resultado es 10, el dígito verificador será K.
  • En otro caso, el resultado será el propio 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."

Fuente: http://es.wikipedia.org/wiki/Rol_%C3%9Anico_Tributario#Procedimiento_para_obtener_el_d.C3.ADgito_verificador 

Ahora entiendo. Mil disculpas por la respuesta inicial. No tenia nada que ver con la necesidad.

Respuesta
1

Necesitas este código para la verificación, además en la hoja que vas a validar el RUT debes incorporarar una fórmula que llame a esta función.

Ejemplo: en A1 ingresas el rut sin numero verificador y en B1 la fórmula =verificaRut (A1)

Con esto deberías verificar todos los rut sin problemas.

Function VerificaRUT(RUT) As String
Dim N1 As Integer, N2 As Integer, N3 As Integer, N4 As Integer
Dim N5 As Integer, N6 As Integer, N7 As Integer, N8 As Integer
Dim Suma As Integer, difsuma As Integer
If Len(RUT) = 7 Then
   RUT = "0" & RUT
End If

N1 = Mid(RUT, 8, 1) * 2
N2 = Mid(RUT, 7, 1) * 3
N3 = Mid(RUT, 6, 1) * 4
N4 = Mid(RUT, 5, 1) * 5
N5 = Mid(RUT, 4, 1) * 6
N6 = Mid(RUT, 3, 1) * 7
N7 = Mid(RUT, 2, 1) * 2
N8 = Mid(RUT, 1, 1) * 3

Suma = N1 + N2 + N3 + N4 + N5 + N6 + N7 + N8
difsuma = 11 - (Suma Mod 11)
If difsuma = 10 Then
    VerificaRUT = "K"
ElseIf difsuma = 11 Then
    VerificaRUT = 0
Else
    VerificaRUT = difsuma
   
End If

   
End Function

Respuesta

=si((11-residuo(suma((residuo(b2;10)*2)+(residuo(entero(b2/10);10)*3)+(residuo(entero(b2/100);10)*4)+(residuo(entero(b2/1000);10)*5)+(residuo(entero(b2/10000);10)*6)+(residuo(entero(b2/100000);10)*7)+(residuo(entero(b2/1000000);10)*2)+(residuo(entero(b2/10000000);10)*3));11))=10;"k";si((11-residuo(suma((residuo(b2;10)*2)+(residuo(entero(b2/10);10)*3)+(residuo(entero(b2/100);10)*4)+(residuo(entero(b2/1000);10)*5)+(residuo(entero(b2/10000);10)*6)+(residuo(entero(b2/100000);10)*7)+(residuo(entero(b2/1000000);10)*2)+(residuo(entero(b2/10000000);10)*3));11))=11;0;(11-residuo(suma((residuo(b2;10)*2)+(residuo(entero(b2/10);10)*3)+(residuo(entero(b2/100);10)*4)+(residuo(entero(b2/1000);10)*5)+(residuo(entero(b2/10000);10)*6)+(residuo(entero(b2/100000);10)*7)+(residuo(entero(b2/1000000);10)*2)+(residuo(entero(b2/10000000);10)*3));11))))

En la celda B2 debe estar el rut sin dígito verificador

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas