Calcular Dígito Verificador del RUT en Google Sheets: Tutorial Completo
Calcular Dígito Verificador del RUT en Google Sheets: Tutorial Completo
La ventaja de Google Sheets para cálculos de RUT
Google Sheets ofrece ventajas únicas para trabajar con RUTs chilenos: es gratuito, accesible desde cualquier dispositivo, permite colaboración en tiempo real y se actualiza automáticamente. Si tu equipo necesita validar RUTs frecuentemente, implementar estas fórmulas en Sheets puede transformar tu flujo de trabajo.
Además, al estar en la nube, puedes crear una hoja maestra compartida donde todos tengan acceso a las mismas herramientas de validación, garantizando consistencia en toda tu organización.
Comprensión rápida del algoritmo módulo 11
El algoritmo para calcular el dígito verificador del RUT sigue estos pasos:
- Multiplicar cada dígito del RUT (de derecha a izquierda) por: 2, 3, 4, 5, 6, 7, y repetir
- Sumar todos los productos
- Dividir por 11 y obtener el resto
- Restar: 11 - resto
- Si resulta 11 → dígito es 0; si resulta 10 → dígito es K
Fórmula maestra para Google Sheets
La fórmula completa (celda A1 contiene el RUT sin DV):
=SI(11-MOD(SUMAPRODUCTO(ARRAYFORMULA(VALOR(MID(TEXTO(A1,"00000000"),{1;2;3;4;5;6;7;8},1))),{3;2;7;6;5;4;3;2}),11)=11,0,SI(11-MOD(SUMAPRODUCTO(ARRAYFORMULA(VALOR(MID(TEXTO(A1,"00000000"),{1;2;3;4;5;6;7;8},1))),{3;2;7;6;5;4;3;2}),11)=10,"K",11-MOD(SUMAPRODUCTO(ARRAYFORMULA(VALOR(MID(TEXTO(A1,"00000000"),{1;2;3;4;5;6;7;8},1))),{3;2;7;6;5;4;3;2}),11)))
Desglose de la fórmula:
- TEXTO(A1,"00000000"): Formatea el RUT con 8 dígitos
- MID(...,{1;2;3;4;5;6;7;8},1): Extrae cada dígito
- ARRAYFORMULA(VALOR(...)): Convierte caracteres a números
- SUMAPRODUCTO: Multiplica y suma en una operación
- MOD(...,11): Obtiene el resto de dividir por 11
- SI anidados: Maneja casos especiales (0 y K)
Implementación paso a paso visual
Para quienes prefieren ver el proceso completo, aquí está el método con columnas auxiliares:
Configuración de la hoja:
- Columna A: RUT sin dígito verificador
- Columnas B-I: Cada dígito extraído
- Columna J: Factores multiplicadores
- Columna K: Productos
- Columna L: Suma total
- Columna M: Dígito verificador calculado
Fórmulas detalladas:
Extraer dígitos (B1:I1):
- B1:
=VALOR(MID(TEXTO($A1,"00000000"),1,1))
- C1:
=VALOR(MID(TEXTO($A1,"00000000"),2,1))
- (continuar hasta I1)
Factores en fila auxiliar:
- J1:J8:
{3;2;7;6;5;4;3;2}
Productos (K1:K8):
- K1:
=B1*J1
- K2:
=C1*J2
- (continuar)
Suma total (L1):
=SUMA(K1:K8)
Dígito verificador (M1):
=SI(11-MOD(L1,11)=11,0,SI(11-MOD(L1,11)=10,"K",11-MOD(L1,11)))
Función personalizada con Google Apps Script
Para máxima elegancia y reutilización, crea una función personalizada:
Código Apps Script:
1function DIGITO_VERIFICADOR(rut) {
2 // Validar entrada
3 if (!rut || rut === "") return "ERROR";
4
5 // Convertir a string y limpiar
6 let rutStr = String(rut).replace(/[.-]/g, '');
7
8 // Asegurar 8 dígitos
9 rutStr = rutStr.padStart(8, '0');
10
11 // Calcular suma ponderada
12 let suma = 0;
13 let multiplicador = 2;
14
15 for (let i = rutStr.length - 1; i >= 0; i--) {
16 suma += parseInt(rutStr[i]) * multiplicador;
17 multiplicador = multiplicador === 7 ? 2 : multiplicador + 1;
18 }
19
20 // Calcular dígito
21 const resto = suma % 11;
22 const digito = 11 - resto;
23
24 // Casos especiales
25 if (digito === 11) return "0";
26 if (digito === 10) return "K";
27 return String(digito);
28}
29
30// Función adicional para validar RUT completo
31function VALIDAR_RUT(rutCompleto) {
32 if (!rutCompleto) return false;
33
34 // Limpiar formato
35 const rutLimpio = String(rutCompleto).replace(/[.-]/g, '');
36
37 // Separar número y dígito verificador
38 const numero = rutLimpio.slice(0, -1);
39 const dvIngresado = rutLimpio.slice(-1).toUpperCase();
40
41 // Calcular dígito esperado
42 const dvCalculado = DIGITO_VERIFICADOR(numero);
43
44 // Comparar
45 return dvIngresado === dvCalculado;
46}
Cómo implementar en Google Sheets:
- Abre tu hoja de Google Sheets
- Ve a Extensiones → Apps Script
- Borra el código por defecto
- Pega el código anterior
- Guarda (Ctrl+S) con nombre "FuncionesRUT"
- Cierra el editor
- Usa en tu hoja:
=DIGITO_VERIFICADOR(A1)
Validador completo con formato elegante
Crea un validador profesional que maneje cualquier formato de entrada:
=SI(ESNUMERO(ENCONTRAR(SI(11-MOD(SUMAPRODUCTO(ARRAYFORMULA(VALOR(MID(TEXTO(VALOR(IZQUIERDA(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""),SI(LARGO(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""))>9,LARGO(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""))-1,8))),"00000000"),{1;2;3;4;5;6;7;8},1))),{3;2;7;6;5;4;3;2}),11)=11,"0",SI(11-MOD(SUMAPRODUCTO(ARRAYFORMULA(VALOR(MID(TEXTO(VALOR(IZQUIERDA(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""),SI(LARGO(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""))>9,LARGO(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""))-1,8))),"00000000"),{1;2;3;4;5;6;7;8},1))),{3;2;7;6;5;4;3;2}),11)=10,"K",11-MOD(SUMAPRODUCTO(ARRAYFORMULA(VALOR(MID(TEXTO(VALOR(IZQUIERDA(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""),SI(LARGO(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""))>9,LARGO(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""))-1,8))),"00000000"),{1;2;3;4;5;6;7;8},1))),{3;2;7;6;5;4;3;2}),11))),DERECHA(SUSTITUIR(SUSTITUIR(A1,".",""),"-",""),1))),"✓ RUT VÁLIDO","✗ RUT INVÁLIDO")
Plantilla interactiva lista para usar
Diseño sugerido para tu hoja:
Hoja "Calculadora RUT":
Celda | Contenido | Formato/Fórmula |
---|---|---|
A1 | "CALCULADORA DE RUT" | Título, negrita, tamaño 18 |
A3 | "Ingrese RUT sin DV:" | Etiqueta |
B3 | (entrada usuario) | Borde, fondo amarillo claro |
A4 | "Dígito Verificador:" | Etiqueta |
B4 | =DIGITO_VERIFICADOR(B3) | Borde, fondo verde claro |
A5 | "RUT Completo:" | Etiqueta |
B5 | =TEXTO(B3,"#,##0")&"-"&B4 | Borde, negrita |
Hoja "Validador Masivo":
Columna A | Columna B | Columna C |
---|---|---|
RUT Completo | Válido/Inválido | Dígito Correcto |
12.345.678-5 | =VALIDAR_RUT(A2) | =DIGITO_VERIFICADOR(VALOR(IZQUIERDA(SUSTITUIR(SUSTITUIR(A2,".",""),"-",""),8))) |
Características avanzadas de Google Sheets
1. Validación de datos en tiempo real:
Configura validación personalizada:
- Selecciona el rango de celdas
- Datos → Validación de datos
- Criterio: "Fórmula personalizada"
- Fórmula:
=VALIDAR_RUT(A1)
- Mensaje de error personalizado
2. Formato condicional inteligente:
Resalta RUTs válidos/inválidos automáticamente:
- Selecciona el rango
- Formato → Formato condicional
- Condición: "Fórmula personalizada"
- Fórmula:
=VALIDAR_RUT($A1)
- Formato: fondo verde para válidos
3. Importación desde otras fuentes:
=ARRAYFORMULA(SI(A2:A="","",DIGITO_VERIFICADOR(A2:A)))
Esta fórmula calcula el DV para toda una columna automáticamente.
Integración con formularios Google
Crear un formulario validador:
- Google Forms: Crea formulario solicitando RUT
- Respuestas en Sheets: Vincula a una hoja
- Validación automática: Agrega columna con fórmula validadora
- Notificaciones: Configura alertas para RUTs inválidos
Script para validación en formulario:
1function onFormSubmit(e) {
2 const rut = e.values[1]; // Asumiendo RUT en segunda columna
3 const esValido = VALIDAR_RUT(rut);
4
5 if (!esValido) {
6 // Enviar email de alerta
7 MailApp.sendEmail({
8 to: "[email protected]",
9 subject: "RUT Inválido en Formulario",
10 body: `Se recibió un RUT inválido: ${rut}`
11 });
12 }
13}
Casos de uso empresariales
1. Base de datos de clientes:
- Validación automática al ingresar datos
- Alertas para RUTs duplicados
- Formato consistente
2. Nómina de empleados:
- Verificación antes de contratos
- Generación de reportes con RUTs válidos
- Integración con sistemas de RRHH
3. Facturación electrónica:
- Validación previa al SII
- Corrección automática de formato
- Historial de validaciones
Optimización y rendimiento
Para grandes volúmenes de datos:
- Usa ARRAYFORMULA: Procesa rangos completos
- Limita recálculos: Configura actualización manual
- Divide en bloques: Procesa de 1000 en 1000
Fórmula optimizada para miles de RUTs:
1=ARRAYFORMULA(
2 SI(ESNUMERO(A2:A),
3 SI(11-MOD(SUMAPRODUCTO(
4 VALOR(MID(TEXTO(A2:A,"00000000"),{1;2;3;4;5;6;7;8},1)),
5 {3;2;7;6;5;4;3;2}
6 ),11)=11,0,
7 SI(11-MOD(SUMAPRODUCTO(
8 VALOR(MID(TEXTO(A2:A,"00000000"),{1;2;3;4;5;6;7;8},1)),
9 {3;2;7;6;5;4;3;2}
10 ),11)=10,"K",
11 11-MOD(SUMAPRODUCTO(
12 VALOR(MID(TEXTO(A2:A,"00000000"),{1;2;3;4;5;6;7;8},1)),
13 {3;2;7;6;5;4;3;2}
14 ),11))),
15 "")
16)
Compartir y colaborar
Mejores prácticas:
- Protege las fórmulas: Bloquea celdas con fórmulas
- Crea instrucciones: Agrega hoja con manual de uso
- Versiona cambios: Usa el historial de versiones
- Permisos granulares: Solo edición en celdas de entrada
Plantilla pública:
Puedes crear una copia de plantilla maestra y compartirla con:
- Vista pública para consulta
- Copia permitida para uso personal
- Sin acceso a datos sensibles
Solución de problemas frecuentes
Error #¡VALOR!:
- Verifica que no haya letras en el RUT (excepto K final)
- Elimina espacios con
=ESPACIOS(A1)
Resultado incorrecto:
- Confirma que el RUT tenga 7-8 dígitos
- Usa
=LARGO(A1)
para verificar
Fórmula no actualiza:
- Archivo → Configuración → Cálculo → "Al cambiar"
Lentitud con muchos datos:
- Considera usar Apps Script para procesamiento batch
Conclusión
Google Sheets transforma el cálculo del dígito verificador del RUT en un proceso colaborativo y accesible. Con las fórmulas y scripts presentados, puedes crear soluciones robustas que escalen desde validaciones individuales hasta procesamiento masivo de datos.
La ventaja de trabajar en la nube significa que tus validaciones están siempre actualizadas y accesibles, eliminando errores de versiones y garantizando que todo tu equipo trabaje con las mismas herramientas validadas.
---
Recursos y referencias
- Google Workspace Learning Center: Documentación oficial de Sheets
- Apps Script Documentation: Para funciones personalizadas avanzadas
- Comunidad Google Sheets Chile: Foros de usuarios chilenos
Sobre el autor
Benjamín Maturana
Analista de Datos
Experto en Excel y automatización de procesos. Cree firmemente que todo problema tiene una solución en una hoja de cálculo.