Funciones de texto: CONCATENAR, TEXTO, EXTRAE
Manipula y transforma texto de forma eficiente.
La manipulación de texto es una habilidad esencial para limpiar y preparar datos. En esta lección dominarás las funciones que te permitirán unir, extraer, transformar y limpiar datos de texto.
Unir texto: CONCAT y UNIRCADENAS
CONCAT (antes CONCATENAR)
Une múltiples textos en uno solo.
=CONCAT(texto1, texto2, texto3, ...)
Ejemplos:
// Unir nombre y apellido
=CONCAT(A2, " ", B2)
// Si A2="Juan" y B2="Pérez" → "Juan Pérez"
// Crear código de producto
=CONCAT(A2, "-", B2, "-", C2)
// Si A2="ELEC", B2="2024", C2="001" → "ELEC-2024-001"
// Agregar texto fijo
=CONCAT("Cliente: ", A2)
// Si A2="Empresa ABC" → "Cliente: Empresa ABC"
Operador & (alternativa a CONCAT)
// Equivalente a CONCAT
=A2 & " " & B2
// "Juan" & " " & "Pérez" → "Juan Pérez"
// Combinar con funciones
="Total: " & SUMA(A2:A10) & " unidades"
UNIRCADENAS (TEXTJOIN)
Une un rango de celdas con un delimitador, ignorando opcionalmente las celdas vacías.
=UNIRCADENAS(delimitador, ignorar_vacíos, rango1, rango2, ...)
| Argumento | Descripción |
|---|---|
| delimitador | Texto que separa los valores |
| ignorar_vacíos | VERDADERO para omitir celdas vacías |
| rango | Celdas a unir |
Ejemplos:
// Unir lista de productos con coma
=UNIRCADENAS(", ", VERDADERO, A2:A10)
// "Laptop, Mouse, Teclado, Monitor"
// Crear dirección completa
=UNIRCADENAS(", ", VERDADERO, A2, B2, C2, D2)
// "Calle Principal 123, Colonia Centro, Ciudad, CP 01000"
// Lista de emails separados por punto y coma
=UNIRCADENAS("; ", VERDADERO, E2:E50)
// "juan@mail.com; ana@mail.com; carlos@mail.com"
Comparación de funciones de unión
| Función | Ventaja | Uso ideal |
|---|---|---|
| CONCAT | Simple, compatible | Unir pocas celdas específicas |
| & | Rápido de escribir | Fórmulas cortas |
| UNIRCADENAS | Delimitador automático, ignora vacíos | Unir rangos o listas |
Formatear con TEXTO
La función TEXTO convierte números a texto con formato específico.
=TEXTO(valor, formato)
Formatos numéricos comunes
| Formato | Ejemplo entrada | Resultado |
|---|---|---|
| "0" | 1234.56 | "1235" |
| "0.00" | 1234.5 | "1234.50" |
| "#,##0" | 1234567 | "1,234,567" |
| "#,##0.00" | 1234.5 | "1,234.50" |
| "$#,##0" | 1234 | "$1,234" |
| "0%" | 0.15 | "15%" |
| "0.0%" | 0.156 | "15.6%" |
Ejemplos prácticos:
// Formato de moneda
=TEXTO(B2, "$#,##0.00")
// 1234.5 → "$1,234.50"
// Porcentaje con un decimal
=TEXTO(C2, "0.0%")
// 0.156 → "15.6%"
// Número con ceros a la izquierda
=TEXTO(D2, "00000")
// 123 → "00123"
Formatos de fecha
| Formato | Ejemplo salida |
|---|---|
| "DD/MM/YYYY" | "29/01/2026" |
| "DD-MMM-YYYY" | "29-Ene-2026" |
| "DDDD" | "Jueves" |
| "MMMM YYYY" | "Enero 2026" |
| "DD/MM/YY" | "29/01/26" |
Ejemplos:
// Fecha completa
=TEXTO(A2, "DD/MM/YYYY")
// → "29/01/2026"
// Día de la semana
=TEXTO(A2, "DDDD")
// → "Jueves"
// Mes y año
=TEXTO(A2, "MMMM YYYY")
// → "Enero 2026"
// Crear mensaje con fecha
="Reporte del " & TEXTO(HOY(), "DD/MM/YYYY")
// → "Reporte del 29/01/2026"
Formatos de hora
| Formato | Ejemplo salida |
|---|---|
| "HH:MM" | "14:30" |
| "HH:MM:SS" | "14:30:45" |
| "H:MM AM/PM" | "2:30 PM" |
// Hora en formato 24h
=TEXTO(A2, "HH:MM")
// → "14:30"
// Hora con AM/PM
=TEXTO(A2, "H:MM AM/PM")
// → "2:30 PM"
Extraer partes de texto
IZQUIERDA, DERECHA, EXTRAE
Estas funciones extraen caracteres de una cadena de texto.
| Función | Descripción | Sintaxis |
|---|---|---|
| IZQUIERDA | Primeros N caracteres | =IZQUIERDA(texto, n) |
| DERECHA | Últimos N caracteres | =DERECHA(texto, n) |
| EXTRAE | Caracteres desde posición | =EXTRAE(texto, inicio, n) |
Ejemplos con "ABCDEFGHIJ":
=IZQUIERDA("ABCDEFGHIJ", 3) // → "ABC"
=DERECHA("ABCDEFGHIJ", 3) // → "HIJ"
=EXTRAE("ABCDEFGHIJ", 4, 3) // → "DEF" (desde posición 4, 3 caracteres)
Casos de uso prácticos
Extraer código de país de número telefónico:
// "+52-55-1234-5678"
=IZQUIERDA(A2, 3) // → "+52"
Extraer extensión de archivo:
// "documento.pdf"
=DERECHA(A2, 3) // → "pdf"
Extraer año de código de producto:
// "PROD-2024-001"
=EXTRAE(A2, 6, 4) // → "2024"
Extraer iniciales de nombre:
// "Juan Carlos Pérez"
=IZQUIERDA(A2, 1) & EXTRAE(A2, 6, 1) & EXTRAE(A2, 13, 1)
// → "JCP"
Buscar posición: ENCONTRAR y HALLAR
ENCONTRAR (FIND)
Busca una subcadena y devuelve su posición. Distingue mayúsculas de minúsculas.
=ENCONTRAR(texto_buscado, dentro_de_texto, [posición_inicial])
HALLAR (SEARCH)
Similar a ENCONTRAR pero NO distingue mayúsculas de minúsculas.
=HALLAR(texto_buscado, dentro_de_texto, [posición_inicial])
Ejemplos:
// Encontrar posición de "@" en email
=ENCONTRAR("@", "juan@mail.com") // → 5
// Hallar "EXCEL" (sin importar mayúsculas)
=HALLAR("excel", "Curso de Excel Avanzado") // → 10
Combinando ENCONTRAR con EXTRAE
Extraer dominio de email:
// "usuario@empresa.com" → "empresa.com"
=EXTRAE(A2, ENCONTRAR("@", A2)+1, 100)
Extraer nombre antes del @:
// "usuario@empresa.com" → "usuario"
=IZQUIERDA(A2, ENCONTRAR("@", A2)-1)
Extraer primera palabra:
// "Juan Carlos Pérez" → "Juan"
=IZQUIERDA(A2, ENCONTRAR(" ", A2)-1)
Extraer última palabra (apellido):
// "Juan Pérez" → "Pérez"
=EXTRAE(A2, ENCONTRAR(" ", A2)+1, 100)
Limpiar y transformar texto
ESPACIOS (TRIM)
Elimina espacios extra, dejando solo un espacio entre palabras.
=ESPACIOS(texto)
// " Juan Pérez " → "Juan Pérez"
=ESPACIOS(A2)
LIMPIAR (CLEAN)
Elimina caracteres no imprimibles (saltos de línea, tabulaciones, etc.).
=LIMPIAR(texto)
// Útil para datos importados con caracteres extraños
=LIMPIAR(A2)
// Combinación típica para limpiar datos
=ESPACIOS(LIMPIAR(A2))
MAYUSC, MINUSC, NOMPROPIO
| Función | Resultado |
|---|---|
| MAYUSC | TODO EN MAYÚSCULAS |
| MINUSC | todo en minúsculas |
| NOMPROPIO | Cada Palabra Con Inicial Mayúscula |
=MAYUSC("juan pérez") // → "JUAN PÉREZ"
=MINUSC("JUAN PÉREZ") // → "juan pérez"
=NOMPROPIO("juan pérez") // → "Juan Pérez"
SUSTITUIR y REEMPLAZAR
SUSTITUIR: Reemplaza texto específico por otro.
=SUSTITUIR(texto, texto_original, texto_nuevo, [instancia])
// Cambiar guiones por barras
=SUSTITUIR(A2, "-", "/")
// "29-01-2026" → "29/01/2026"
// Eliminar caracteres no deseados
=SUSTITUIR(A2, "#", "")
// "#12345#" → "12345"
// Solo la segunda ocurrencia
=SUSTITUIR("A-B-C-D", "-", "/", 2)
// → "A-B/C-D"
REEMPLAZAR: Reemplaza caracteres por posición.
=REEMPLAZAR(texto_original, posición_inicio, num_caracteres, texto_nuevo)
// Ocultar parte de número de tarjeta
=REEMPLAZAR(A2, 1, 12, "****-****-****-")
// "1234567890123456" → "****-****-****-3456"
// Cambiar código de área
=REEMPLAZAR(A2, 1, 3, "555")
// "123-456-7890" → "555-456-7890"
Otras funciones útiles
LARGO (LEN)
Devuelve el número de caracteres de un texto.
=LARGO(texto)
=LARGO("Excel") // → 5
// Validar longitud de código
=SI(LARGO(A2)=10, "Válido", "Inválido")
REPETIR (REPT)
Repite un texto N veces.
=REPETIR(texto, número_de_veces)
=REPETIR("*", 5) // → "*****"
// Crear barra de progreso visual
=REPETIR("|", A2/10) // Si A2=50, → "|||||"
VALOR y TEXTO
Conversiones entre número y texto.
// Texto a número
=VALOR("1234") // → 1234 (número)
// Número a texto (con formato)
=TEXTO(1234, "0000") // → "1234" (texto)
Casos de uso empresariales
Caso 1: Limpiar lista de nombres
Datos importados con problemas de formato:
// Original: " JUAN PÉREZ "
// Limpio: "Juan Pérez"
=NOMPROPIO(ESPACIOS(LIMPIAR(A2)))
Caso 2: Extraer componentes de código SKU
SKU formato: "CAT-YYYY-NNNN" (ej: "ELEC-2024-0542")
// Categoría
=IZQUIERDA(A2, ENCONTRAR("-", A2)-1) // → "ELEC"
// Año
=EXTRAE(A2, ENCONTRAR("-", A2)+1, 4) // → "2024"
// Número secuencial
=DERECHA(A2, 4) // → "0542"
Caso 3: Crear ID de usuario desde email
// "juan.perez@empresa.com" → "jperez"
=IZQUIERDA(A2, 1) & EXTRAE(A2, ENCONTRAR(".", A2)+1, ENCONTRAR("@", A2)-ENCONTRAR(".", A2)-1)
Caso 4: Formatear número de teléfono
// "5512345678" → "(55) 1234-5678"
="(" & IZQUIERDA(A2, 2) & ") " & EXTRAE(A2, 3, 4) & "-" & DERECHA(A2, 4)
Caso 5: Generar mensaje personalizado
="Estimado/a " & NOMPROPIO(B2) & ", su saldo al " & TEXTO(HOY(), "DD/MM/YYYY") & " es " & TEXTO(C2, "$#,##0.00")
// → "Estimado/a Juan Pérez, su saldo al 29/01/2026 es $15,432.50"
Caso 6: Limpiar datos de importación
// Pipeline de limpieza completo
=ESPACIOS(
LIMPIAR(
SUSTITUIR(
SUSTITUIR(A2, CARACTER(10), " "), // Quitar saltos de línea
CARACTER(9), " " // Quitar tabulaciones
)
)
)
Tabla resumen de funciones
| Función | Propósito | Ejemplo |
|---|---|---|
| CONCAT | Unir textos | =CONCAT(A2, " ", B2) |
| UNIRCADENAS | Unir rango con delimitador | =UNIRCADENAS(", ", VERDADERO, A2:A10) |
| TEXTO | Formatear número como texto | =TEXTO(A2, "$#,##0") |
| IZQUIERDA | Primeros N caracteres | =IZQUIERDA(A2, 3) |
| DERECHA | Últimos N caracteres | =DERECHA(A2, 4) |
| EXTRAE | Caracteres desde posición | =EXTRAE(A2, 5, 3) |
| ENCONTRAR | Posición de subcadena | =ENCONTRAR("@", A2) |
| HALLAR | Posición (sin mayúsculas) | =HALLAR("excel", A2) |
| ESPACIOS | Quitar espacios extra | =ESPACIOS(A2) |
| LIMPIAR | Quitar no imprimibles | =LIMPIAR(A2) |
| MAYUSC | Todo mayúsculas | =MAYUSC(A2) |
| MINUSC | Todo minúsculas | =MINUSC(A2) |
| NOMPROPIO | Inicial mayúscula | =NOMPROPIO(A2) |
| SUSTITUIR | Reemplazar texto | =SUSTITUIR(A2, "-", "/") |
| LARGO | Contar caracteres | =LARGO(A2) |
Errores comunes y soluciones
Error 1: ENCONTRAR no encuentra el texto
// Problema: Error #VALOR! si no existe
=ENCONTRAR("@", "texto sin arroba")
// Solución: Envolver con SI.ERROR
=SI.ERROR(ENCONTRAR("@", A2), 0)
Error 2: Espacios invisibles
// Problema: Comparación falla por espacios
=SI(A2="Juan", "Sí", "No") // Da "No" aunque parece "Juan"
// Solución: Limpiar antes de comparar
=SI(ESPACIOS(A2)="Juan", "Sí", "No")
Error 3: EXTRAE con posición incorrecta
// Problema: Posición debe ser >= 1
=EXTRAE(A2, 0, 3) // Error
// Solución: Verificar posición
=SI(ENCONTRAR("-", A2)>0, EXTRAE(A2, ENCONTRAR("-", A2)+1, 3), "")
Práctica: Ejercicios propuestos
Ejercicio 1: Limpiar nombres
Dado " MARÍA GARCÍA LÓPEZ ", crear fórmula que devuelva "María García López".
Ejercicio 2: Extraer dominio
De "usuario@subdominio.empresa.com", extraer "subdominio.empresa.com".
Ejercicio 3: Crear código
Generar código con formato "XXX-2026-0001" donde XXX son las primeras 3 letras del nombre del producto.
Puntos clave de esta lección
- CONCAT y & unen textos simples; UNIRCADENAS une rangos con delimitador
- TEXTO formatea números y fechas como texto con formato específico
- IZQUIERDA, DERECHA y EXTRAE extraen partes de texto
- ENCONTRAR/HALLAR localizan la posición de subcadenas
- ESPACIOS y LIMPIAR son esenciales para datos importados
- MAYUSC, MINUSC y NOMPROPIO transforman capitalización
- SUSTITUIR reemplaza texto; REEMPLAZAR trabaja por posición
- Combina funciones para pipelines de limpieza complejos
Próxima lección
En la siguiente lección aprenderás las funciones de fecha y hora: cómo extraer componentes, calcular diferencias entre fechas, trabajar con días laborales y más.
Quiz de comprensión
¿Cuál es la diferencia entre ENCONTRAR y HALLAR?
¿Qué función usarías para convertir " JUAN PÉREZ " en "Juan Pérez"?
Escribe una fórmula para extraer los primeros 4 caracteres de la celda A2.
¿Cómo extraerías el dominio de un email como "usuario@empresa.com"?
¿Qué devuelve =TEXTO(1234.5, "#,##0.00")?
¿Cuál es la diferencia entre SUSTITUIR y REEMPLAZAR?
¿Completaste esta lección?
Marca esta lección como completada. Tu progreso se guardará en tu navegador.