Funciones de Texto y Fecha para Limpieza de Datos
Objetivos de AprendizajeAl finalizar esta lección serás capaz de:
- Manipular texto con funciones de extracción, transformación y combinación
- Trabajar con fechas y horas usando funciones de cálculo temporal
- Limpiar datos importados que vienen con formato inconsistente
- Automatizar la transformación de datos crudos en información estructurada
¿Por Qué Necesitás Funciones de Texto y Fecha?
El 60% del tiempo que un analista pasa en Excel no es analizando datos, sino limpiándolos. Los datos del mundo real vienen desordenados:
- Nombres en MAYÚSCULAS o con espacios extras
- Fechas en formatos diferentes (01/03/2025, 2025-03-01, "3 de marzo")
- Códigos concatenados que necesitás separar ("ARG-BUE-001" → País, Ciudad, ID)
- Números guardados como texto (que no suman)
Las funciones de texto y fecha son tus herramientas de limpieza.
Sección 1: Funciones de Texto Esenciales
Extracción de Texto
| Función | Qué Hace | Sintaxis | Ejemplo |
|---|---|---|---|
| IZQUIERDA | Primeros N caracteres | =IZQUIERDA(texto,n) |
=IZQUIERDA("PROD-105",4) → "PROD" |
| DERECHA | Últimos N caracteres | =DERECHA(texto,n) |
=DERECHA("PROD-105",3) → "105" |
| EXTRAE | Caracteres desde posición | =EXTRAE(texto,inicio,n) |
=EXTRAE("PROD-105",6,3) → "105" |
| ENCONTRAR | Posición de un texto (sensible a mayúsculas) | =ENCONTRAR(buscar,texto) |
=ENCONTRAR("-","PROD-105") → 5 |
| HALLAR | Posición de un texto (insensible a mayúsculas) | =HALLAR(buscar,texto) |
Similar a ENCONTRAR |
Ejemplo: Separar Nombre y Apellido
Dato: "María García" en A2
Nombre (todo antes del espacio):
=IZQUIERDA(A2,ENCONTRAR(" ",A2)-1)
Encuentra la posición del espacio (6), toma 5 caracteres desde la izquierda → "María"
Apellido (todo después del espacio):
=EXTRAE(A2,ENCONTRAR(" ",A2)+1,100)
Empieza en posición 7 (después del espacio), toma hasta 100 caracteres → "García"
Ejemplo: Separar Código Compuesto
Dato: "ARG-BUE-001" — necesitás País, Ciudad e ID por separado.
País (antes del primer guión):
=IZQUIERDA(A2,ENCONTRAR("-",A2)-1)
Resultado: "ARG"
Ciudad (entre el primer y segundo guión):
=EXTRAE(A2,ENCONTRAR("-",A2)+1,ENCONTRAR("-",A2,ENCONTRAR("-",A2)+1)-ENCONTRAR("-",A2)-1)
Resultado: "BUE"
El segundo ENCONTRAR busca el segundo guión empezando después del primero.
ID (después del último guión):
=DERECHA(A2,LARGO(A2)-ENCONTRAR("~",SUSTITUIR(A2,"-","~",LARGO(A2)-LARGO(SUSTITUIR(A2,"-","")))))
Resultado: "001"
Este truco encuentra el ÚLTIMO guión reemplazando todas las ocurrencias con ~ excepto la última.
Transformación de Texto
| Función | Qué Hace | Ejemplo |
|---|---|---|
| MAYUSC | Todo a mayúsculas | =MAYUSC("hola") → "HOLA" |
| MINUSC | Todo a minúsculas | =MINUSC("HOLA") → "hola" |
| NOMPROPIO | Primera letra mayúscula | =NOMPROPIO("juan pérez") → "Juan Pérez" |
| ESPACIOS | Quita espacios extras | =ESPACIOS(" hola mundo ") → "hola mundo" |
| LIMPIAR | Quita caracteres no imprimibles | =LIMPIAR(A2) |
| SUSTITUIR | Reemplaza texto | =SUSTITUIR(A2,"-","/") → "ARG/BUE/001" |
| REEMPLAZAR | Reemplaza por posición | =REEMPLAZAR(A2,5,3,"XXX") |
| CONCATENAR / & | Une textos | =A2&" "&B2 |
| UNIRCADENAS | Une con separador (365) | =UNIRCADENAS(", ",VERDADERO,A2:A10) |
Ejemplo: Limpieza de Base de Clientes Importada
Datos importados con problemas:
| Nombre Original | Problema |
|---|---|
| " JUAN PÉREZ " | Espacios extras + todo mayúscula |
| "maría garcía" | Todo minúscula |
| "Roberto López" | Espacios dobles internos |
Fórmula de limpieza completa:
=NOMPROPIO(ESPACIOS(A2))
Esta combinación:
ESPACIOS()elimina espacios al inicio, final, y reduce múltiples espacios internos a unoNOMPROPIO()capitaliza la primera letra de cada palabra
Resultado para todos: "Juan Pérez", "María García", "Roberto López"
CONCAT y UNIRCADENAS (Excel 365)
UNIRCADENAS (TEXTJOIN) es la evolución de CONCATENAR:
# Unir nombres separados por coma
=UNIRCADENAS(", ",VERDADERO,A2:A10)
- Primer argumento: separador (", ")
- Segundo: ignorar vacíos (VERDADERO)
- Tercero: rango a unir
Resultado: "Juan, María, Roberto, Ana, ..."
Sección 2: Funciones de Fecha y Hora
Funciones Básicas de Fecha
| Función | Qué Devuelve | Ejemplo |
|---|---|---|
| HOY() | Fecha actual | 21/02/2025 |
| AHORA() | Fecha y hora actual | 21/02/2025 14:30 |
| AÑO(fecha) | El año | =AÑO(A2) → 2025 |
| MES(fecha) | El mes (1-12) | =MES(A2) → 2 |
| DIA(fecha) | El día (1-31) | =DIA(A2) → 21 |
| DIASEM(fecha,tipo) | Día de la semana | =DIASEM(A2,2) → 5 (viernes, lunes=1) |
| FECHA(año,mes,día) | Construye una fecha | =FECHA(2025,3,15) → 15/03/2025 |
Cálculos con Fechas
| Función | Qué Hace | Ejemplo |
|---|---|---|
| SIFECHA(ini,fin,tipo) | Diferencia entre fechas | =SIFECHA(A2,HOY(),"Y") → años |
| DIAS.LAB(ini,fin) | Días laborables entre fechas | Sin sábados ni domingos |
| DIAS.LAB.INTL(ini,fin,festivos) | Días laborables personalizados | Excluye feriados |
| FIN.MES(fecha,meses) | Último día del mes N meses adelante | =FIN.MES(HOY(),0) → último día de este mes |
| NUMERO.DE.SEMANA(fecha) | Número de semana del año | =NUMERO.DE.SEMANA(HOY()) |
SIFECHA: La Función Oculta Más Útil
SIFECHA (DATEDIF) no aparece en autocompletar, pero es increíblemente útil:
=SIFECHA(fecha_inicio, fecha_fin, tipo)
| Tipo | Devuelve |
|---|---|
| "Y" | Años completos |
| "M" | Meses completos |
| "D" | Días totales |
| "YM" | Meses restantes después de años |
| "MD" | Días restantes después de meses |
Ejemplo: Antigüedad de empleado en formato legible
=SIFECHA(E2,HOY(),"Y")&" años, "&SIFECHA(E2,HOY(),"YM")&" meses"
Si E2 = 15/03/2020, resultado: "4 años, 11 meses"
Ejemplo: Edad de un cliente
=SIFECHA(FechaNacimiento,HOY(),"Y")
Devuelve la edad exacta en años.
Ejemplo Práctico: Reporte de Vencimientos
Para un sistema de cuentas por cobrar:
| Columna | Fórmula | Resultado |
|---|---|---|
| Días desde emisión | =HOY()-FechaEmisión |
45 |
| Días hasta vencimiento | =FechaVencimiento-HOY() |
-15 (vencido hace 15 días) |
| Estado | =SI(FechaVencimiento>=HOY(),"Vigente","Vencido") |
"Vencido" |
| Días laborables hasta vencimiento | =DIAS.LAB(HOY(),FechaVencimiento) |
-11 |
| Clasificación | Según días de mora: al día, 1-30, 31-60, 61-90, +90 | "31-60 días" |
Fórmula de clasificación de mora:
=SI.CONJUNTO(
HOY()-FechaVencimiento<=0,"Al día",
HOY()-FechaVencimiento<=30,"1-30 días",
HOY()-FechaVencimiento<=60,"31-60 días",
HOY()-FechaVencimiento<=90,"61-90 días",
VERDADERO,"Más de 90 días")
Sección 3: Conversiones y Funciones Especiales
Convertir Texto a Número y Viceversa
| Función | Uso |
|---|---|
VALOR(texto) |
Convierte texto "123" a número 123 |
TEXTO(valor,formato) |
Convierte número a texto formateado |
TIPO(celda) |
Devuelve 1 si es número, 2 si es texto |
ESNUMERO(celda) |
Devuelve VERDADERO si es número |
ESTEXTO(celda) |
Devuelve VERDADERO si es texto |
La función TEXTO es poderosa para formatear:
=TEXTO(45000,"$#,##0.00") → "$45,000.00"
=TEXTO(0.156,"0.0%") → "15.6%"
=TEXTO(HOY(),"dddd dd \de mmmm \de yyyy") → "viernes 21 de febrero de 2025"
=TEXTO(A2,"000000") → "000105" (rellenar con ceros)
Números Guardados como Texto
Problema clásico: importás datos y los números aparecen alineados a la izquierda con un triángulo verde. Son texto disfrazado de número.
Soluciones:
- Multiplicar por 1:
=A2*1o=A2+0 - VALOR:
=VALOR(A2) - Pegado especial: Escribí 1 en una celda, copiala, seleccioná los "números texto", Pegado especial > Multiplicar
- Texto en columnas: Seleccioná la columna > Datos > Texto en columnas > Finalizar (sin cambiar nada)
Errores Comunes
ENCONTRAR falla con #VALOR!: El texto buscado no existe en la cadena. Envolvé con SI.ERROR:
=SI.ERROR(ENCONTRAR("@",A2),0)Fechas que son números de serie: Excel almacena fechas como números (1 = 01/01/1900). Si ves 45343 en vez de una fecha, formateá la celda como Fecha.
SIFECHA con fecha inicio > fecha fin: Da error. Siempre verificá que inicio < fin.
TEXTO que no respeta el formato regional: Los formatos de TEXTO usan el separador del sistema. En LATAM usamos dd/mm/aaaa, en USA mm/dd/yyyy.
Concatenar fecha con texto:
="Fecha: "&A2muestra el número de serie, no la fecha. Usá="Fecha: "&TEXTO(A2,"dd/mm/yyyy").
Puntos Clave
- IZQUIERDA, DERECHA, EXTRAE + ENCONTRAR permiten separar datos concatenados
- ESPACIOS + NOMPROPIO es la combinación de limpieza más usada
- SIFECHA calcula antigüedad y edad de forma precisa
- DIAS.LAB calcula plazos en días laborables (esencial para proyectos y cobranzas)
- TEXTO convierte cualquier valor a formato legible personalizado
- Siempre verificá si los números están guardados como texto antes de hacer cálculos
Mini Quiz
¿Qué función elimina espacios extras al inicio, final y duplicados internos?
- a) LIMPIAR
- b) ESPACIOS ✓
- c) SUSTITUIR
- d) RECORTAR
¿Qué devuelve SIFECHA("01/01/2020","21/02/2025","Y")?
- a) 5 ✓
- b) 4
- c) 1877
- d) Error
¿Cómo convertís "hola mundo" a "Hola Mundo"?
- a) MAYUSC()
- b) NOMPROPIO() ✓
- c) TEXTO()
- d) SUSTITUIR()
¿Cómo concatenás una fecha con texto sin que aparezca el número de serie?
- a) =A1&B1
- b) =CONCATENAR(A1,B1)
- c) ="Texto: "&TEXTO(A1,"dd/mm/yyyy") ✓
- d) =UNIR(A1,B1)
Ejercicio Práctico
Desafío: Limpieza de Base de Datos Importada
Recibiste un archivo CSV con 500 registros de clientes con estos problemas:
| Problema | Columna | Ejemplo Malo | Resultado Esperado |
|---|---|---|---|
| Nombres desordenados | A | " JUAN CARLOS PÉREZ " | "Juan Carlos Pérez" |
| Fechas como texto | B | "2025-03-15" | 15/03/2025 (fecha real) |
| Teléfonos con formato | C | "+54 (11) 4555-6789" | "5411455567899" (solo números) |
| Emails con espacios | D | " [email protected] " | "[email protected]" |
| Montos como texto | E | "$45.000,50" | 45000.50 (número) |
| Códigos concatenados | F | "ARG-BUE-VIP-001" | País, Ciudad, Tipo, ID separados |
Creá fórmulas para limpiar cada columna. El resultado debe ser una tabla limpia y estructurada lista para análisis.
Revisemos los puntos más importantes de esta lección antes de continuar.
Recurso en Video
📹 Funciones de Texto en Excel — Curso Completo — Excel y Más
Tutorial exhaustivo de funciones de texto con casos reales de limpieza de datos empresariales.
- Comprendo el concepto principal y puedo explicarlo con mis palabras
- Entiendo cómo aplicarlo en mi situación específica
- Necesito repasar algunas partes antes de continuar
- Quiero ver más ejemplos prácticos del tema