Lección 10 de 37Funciones Lógicas y de Texto

Funciones de texto: CONCATENAR, TEXTO, EXTRAE

Manipula y transforma texto de forma eficiente.

13 minutos

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

  1. ¿Cuál es la diferencia entre ENCONTRAR y HALLAR?

  2. ¿Qué función usarías para convertir " JUAN PÉREZ " en "Juan Pérez"?

  3. Escribe una fórmula para extraer los primeros 4 caracteres de la celda A2.

  4. ¿Cómo extraerías el dominio de un email como "usuario@empresa.com"?

  5. ¿Qué devuelve =TEXTO(1234.5, "#,##0.00")?

  6. ¿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.