Convertir valor / texto a RUT (Chile) en Excel

Si se quisiera convertir el valor o texto: 154785219 a 15.478.521-9 se puede utilizar la siguiente función en Excel 2010 (o similar):

=CONCATENAR(TEXTO(MED(A1;1;LARGO(A1)-1);"#.#.#"); "-"; DERECHA(A1;1))

Todo esto, asumiendo que en A1 esta el numero plano y que la función la aplicamos en una celda distinta.




Ojo que funciona con RUTs que sean de mas o menos que 10 millones.

Actualizado 08 de junio, 2011

Para Excel 2007 o inferior, la función MED era conocida como EXTRAE, por lo que debe utilizarse:

=CONCATENAR(TEXTO(EXTRAE(A1;1;LARGO(A1)-1);"#.#.#"); "-"; DERECHA(A1;1))

20 Comentarios

Añade el tuyo →

  1. Funciona perfecto. Muy agradecido.

  2. GRACIAS DE VERDAD ME QUITASTE UN PESO DE ENCIMA!!!

  3. Jorge Díaz V.

    octubre 9, 2015 — 09:56

    Como lo puedo hacer para que se actualice al ingresar el rut sin punto ni guión quede en la misma celda con el formato **.***.***-*

    Por favor me puedes ayudar
    Gracias

  4. HOLA, necesito cambiar el rut de esto: 00,000,000-0 a esto: 00.000.000-0
    Gracias, ojalá me puedas ayudar.

  5. Hugo Contreras

    mayo 30, 2016 — 12:03

    Hola, cuando uso el formato ##”.”###”.”###”-“# funciona bien, pero al agregar un Rut con letra esto no funciona, que debo hacer

  6. Hola Sebastian, haber si me puedes ayudar,tengo lo siguiente, una búsqueda de una hoja donde se ingresa el rut, la celda lo deja con el formato deseado y cuando debo realizar una búsqueda en la hoja cliente no lo hace, pues el rut de factura esta sin puntos ni guion y la de clientes esta con el formato del rut. Tengo unos pantallasos para enviarte.

    • Ismael, debes homologar una de la 2 hojas al valor que se usará. O modificar la función de búsqueda para que formatee el valor de entrada y lo haga coincidir con el rango de celdas de destino.

  7. William Santelices

    julio 12, 2016 — 19:24

    una macrito que funciona bien:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim largo As Byte

    If Target.Address = “$H$14” And h = 0 Then
    h = 0
    l = Len(Target)
    If l = 8 Or l = 9 Then
    l1 = Mid(Target, l, 1)
    l2 = Mid(Target, l – 1, 1)
    l3 = Mid(Target, l – 2, 1)
    l4 = Mid(Target, l – 3, 1)
    l5 = Mid(Target, l – 4, 1)
    l6 = Mid(Target, l – 5, 1)
    l7 = Mid(Target, l – 6, 1)
    l8 = Mid(Target, l – 7, 1)
    If l = 8 Then
    l9 = “”
    Else
    l9 = Mid(Target, l – 8, 1)
    End If
    rut = l9 & l8 & “.” & l7 & l6 & l7 & “.” & l4 & l3 & l2 & “-” & l1
    h = 1
    Target.Value = rut
    End If

    End If
    End Sub

  8. maria antonieta

    octubre 6, 2016 — 10:26

    GRACIAS, fue una gran ayuda.”GENIO””””

  9. Al personalizar el formato en la misma celda ##”.”###”.”###”-“# como resultado me da 10”.”959”.”257”-“9
    Como lo puedo solucionar?

  10. Hola muy buenas noches necesito ayuda que al ingresar el nombre(que esta en una lista desplegable) aparezca el rut en otra celda .

    atte.

  11. Muchas Gracias, me sirvió mucho, lo necesitaba para Google Docs (Hoja de calculo) y gracias a tu ejemplo pude adaptarlo, solo tuve que cambiar el formato del texto.

    =CONCATENAR(TEXTO(EXTRAE(A1;1;LARGO(A1)-1);”#,##0″); “-“; DERECHA(A1;1))

    A mi me funciona bien con todos los RUT, terminados en numero o en K

    Saludos \V/.

  12. Excelente función muchas gracias!!!

  13. Carolina Gacitúa

    julio 27, 2017 — 16:40

    Primera vez que me muestran algo que resulta muy fácil y rápido.
    Lo felicito por prestar su valiosa ayuda y apoyar a los que requieren una solución rápida sin ser informáticos.

  14. y si empieza el rut con un solo digito? y necesito la misma formula para todos los rut (mas de 3000)

Deja un comentario