En este artículo 18 secciones
- Agregar texto al inicio o al final con una fórmula.
- Insertar caracteres en medio del texto.
- Quitar caracteres que sobran.
- Prefijos y sufijos con formato personalizado.
- Agregar caracteres a un rango sin columnas auxiliares.
- Descargar los ejemplos.
- Macros de ejemplo.
- Preguntas frecuentes.
- ¿Cómo agrego un carácter a toda una columna en Excel?
- ¿Cómo pongo ceros a la izquierda en Excel?
- ¿Cómo inserto ceros en medio de un número?
- ¿Cómo agrego un sufijo sin cambiar el valor?
- ¿Cómo extraigo los números que están entre letras, como en p2.c8r32d80?
- ¿Cómo numero facturas con cuatro dígitos, como 0001?
- Artículos relacionados
Para agregar un texto, un número o un carácter a varias celdas de Excel, como ceros a la izquierda, un prefijo o un guion en la mitad, hay tres caminos: una fórmula que construya el nuevo valor en otra columna, un formato personalizado que lo muestre sin cambiar el contenido, o una macro que modifique las celdas en su lugar. ¿Cuál conviene en cada caso?
Agregar texto al inicio o al final con una fórmula.
El operador & une textos, de modo que para agregar caracteres antes o después del contenido de A2 basta con escribirlos entre comillas:
="00"&A2
=A2&"00"
Si A2 contiene 152356, el primer resultado es 00152356 y el segundo, 15235600. Lo mismo sirve para palabras: =A2&" veces" convierte 13 en «13 veces». El espacio va dentro de las comillas. La función CONCATENAR da el mismo resultado: =CONCATENAR("00";A2).
El resultado de estas fórmulas es texto, aunque contenga solo dígitos. Las formas de unir el contenido de varias celdas se explican en el artículo sobre cómo unir celdas en Excel.
- Guía de arrendamiento sin riesgo
- Proyección y planeación pensional
- Liquidador de intereses judiciales y comerciales
Completar con ceros hasta un número de dígitos.
Cuando los datos tienen distinta longitud y todos deben quedar con la misma, como códigos de 5 dígitos, no hace falta anidar SI con LARGO. La función TEXTO completa con ceros a la izquierda:
=TEXTO(A2;"00000")
Con 152 el resultado es 00152, con 4587 es 04587, y con 15235 queda igual. Funciona con números; si el dato ya es texto, primero se convierte con VALOR o con el doble signo menos: =TEXTO(--A2;"00000").
Insertar caracteres en medio del texto.
La función REEMPLAZAR reemplaza un número de caracteres a partir de una posición. Si el número de caracteres que se reemplazan es cero, lo que hace es insertar:
=REEMPLAZAR(A2;3;0;"00")
Con 1892, el resultado es 180092: inserta los dos ceros a partir del tercer carácter, es decir, entre el 8 y el 9. Para separar las letras y los números de una placa como ABC123 con un guion, se inserta después del tercer carácter:
=REEMPLAZAR(A2;4;0;"-")
El resultado es ABC-123. La misma operación puede escribirse con IZQUIERDA y EXTRAE: =IZQUIERDA(A2;3)&"-"&EXTRAE(A2;4;LARGO(A2)).
Insertar en la mitad del texto.
Si la posición depende de la longitud, se calcula con LARGO. Para insertar un guion en la mitad, redondeando hacia abajo cuando la longitud es impar:
=REEMPLAZAR(A2;ENTERO(LARGO(A2)/2)+1;0;"-")
Con ABC123 el resultado es ABC-123, y con 12345, 12-345.
Quitar caracteres que sobran.
La operación contraria también es frecuente. Supongamos una base de cédulas en la que algunas vienen con un sufijo, como 12345678-001 o 1234567890-001, y otras sin él. Para dejar solo el número, sin importar cuántos dígitos tenga, se toma lo que está antes del guion, y si no hay guion, el dato completo:
=SI.ERROR(IZQUIERDA(A2;ENCONTRAR("-";A2)-1);A2)
El resultado es 12345678, 1234567890 o el dato original. Estas fórmulas de extracción se explican en el artículo sobre cómo extraer texto antes o después de un carácter.
Prefijos y sufijos con formato personalizado.
Cuando el prefijo o el sufijo solo debe verse, sin cambiar el valor de la celda, se usa un formato personalizado. Se seleccionan las celdas, clic derecho, «Formato de celdas», «Personalizada», y en «Tipo» se escribe el formato. El texto fijo va entre comillas y el 0 representa el número escrito:
| Formato | Se escribe | Se ve |
| "601"0 | 3456789 | 6013456789 |
| 0" días" | 365 | 365 días |
| 0" veces" | 15 | 15 veces |
| "Ref-"0000 | 42 | Ref-0042 |
| "Sr. "@ | Juan | Sr. Juan |
| "$ "#.##0 | 1250000 | $ 1.250.000 |
El 0 del formato es indispensable: sin él, la celda mostraría solo el prefijo. Para textos se usa @ en lugar de 0. Y como el valor no cambia, la celda sigue sirviendo para cálculos: una celda que se ve como «365 días» puede sumarse.
La contracara es que el prefijo no existe en el dato: si se copian los valores a otro programa o se exportan a CSV, se pierde. Cuando el prefijo debe hacer parte del dato, se usa una fórmula.
En el ejemplo de la tabla, 601 es el indicativo de Bogotá para teléfonos fijos desde la migración a la marcación de 10 dígitos de 2021; el antiguo prefijo 571 ya no se usa.
Agregar caracteres a un rango sin columnas auxiliares.
Las fórmulas devuelven el resultado en otra columna. Para dejar el resultado en las celdas originales hay dos opciones sin macros:
- Aplicar la fórmula en una columna auxiliar, copiar el resultado y pegarlo sobre la columna original con «Pegado especial», «Valores». Luego se elimina la columna auxiliar.
- Usar «Relleno rápido»: en la columna vecina se escribe a mano el resultado esperado para la primera fila, como 00152356, y se presiona Ctrl + E. Excel deduce el patrón y completa las demás filas.
Conviene revisar el resultado del Relleno rápido, porque si el patrón no es claro Excel puede deducir uno distinto.
Con macros.
Si la operación es frecuente, una macro modifica las celdas seleccionadas en su lugar. Esta agrega al inicio el texto que se le indique:
Sub AgregarAlInicio()
Dim celda As Range, texto As String, contenidoPrevio As String
texto = InputBox("Texto que se agrega al inicio:", "Agregar al inicio")
If texto = "" Then Exit Sub
For Each celda In Selection.Cells
If Not celda.HasFormula And Len(celda.Value) > 0 Then
contenidoPrevio = celda.Text
celda.NumberFormat = "@"
celda.Value = texto & contenidoPrevio
End If
Next celda
End Sub
La macro omite las celdas con fórmulas y las vacías, y cambia el formato a texto antes de escribir, para que Excel no elimine los ceros a la izquierda. El archivo .bas descargable incluye también las macros para agregar al final, insertar en una posición y insertar en la mitad. Las acciones de una macro no se deshacen con Ctrl + Z, de modo que conviene guardar el libro antes de ejecutarla.
Descargar los ejemplos.
El archivo de Excel tiene una hoja con las fórmulas del artículo aplicadas a varios datos, incluidas la limpieza de cédulas y la extracción de valores entre letras, y otra con los formatos personalizados de prefijos y sufijos. Descargar archivo.
Macros de ejemplo.
Sub AgregarAlInicio()
Dim celda As Range, texto As String, contenidoPrevio As String
texto = InputBox("Texto que se agrega al inicio:", "Agregar al inicio")
If texto = "" Then Exit Sub
For Each celda In Selection.Cells
If Not celda.HasFormula And Len(celda.Value) > 0 Then
contenidoPrevio = celda.Text
celda.NumberFormat = "@"
celda.Value = texto & contenidoPrevio
End If
Next celda
End Sub
Sub AgregarAlFinal()
Dim celda As Range, texto As String
texto = InputBox("Texto que se agrega al final:", "Agregar al final")
If texto = "" Then Exit Sub
For Each celda In Selection.Cells
If Not celda.HasFormula And Len(celda.Value) > 0 Then celda.Value = celda.Text & texto
Next celda
End Sub
Sub InsertarEnPosicion()
Dim celda As Range, texto As String, posicion As Long, contenido As String
texto = InputBox("Texto que se inserta:", "Insertar", "-")
If texto = "" Then Exit Sub
posicion = Val(InputBox("Insertar después del carácter número:", "Posición", "3"))
For Each celda In Selection.Cells
contenido = celda.Text
If Not celda.HasFormula And Len(contenido) > posicion Then
celda.NumberFormat = "@"
celda.Value = Left(contenido, posicion) & texto & Mid(contenido, posicion + 1)
End If
Next celda
End Sub
Sub InsertarEnLaMitad()
Dim celda As Range, contenido As String, mitad As Long
For Each celda In Selection.Cells
contenido = celda.Text
If Not celda.HasFormula And Len(contenido) > 1 Then
mitad = Len(contenido) \ 2
celda.NumberFormat = "@"
celda.Value = Left(contenido, mitad) & "-" & Mid(contenido, mitad + 1)
End If
Next celda
End Sub
Preguntas frecuentes.
A continuación respondemos las preguntas frecuentes de nuestros lectores.
¿Cómo agrego un carácter a toda una columna en Excel?
Con una fórmula en una columna vecina, como ="-"&A2 o =A2&"-", copiada hacia abajo y luego pegada como valores. También con Relleno rápido (Ctrl + E) o con una macro.
¿Cómo pongo ceros a la izquierda en Excel?
Con =TEXTO(A2;"00000") para completar hasta 5 dígitos, o con el formato personalizado 00000 si solo deben verse.
¿Cómo inserto ceros en medio de un número?
Con REEMPLAZAR y cero caracteres reemplazados: =REEMPLAZAR(A2;3;0;"00") inserta dos ceros a partir del tercer carácter.
¿Cómo agrego un sufijo sin cambiar el valor?
Con un formato personalizado como 0" días". La celda se ve con el sufijo pero conserva el número.
¿Cómo extraigo los números que están entre letras, como en p2.c8r32d80?
Con EXTRAE y ENCONTRAR, tomando lo que hay entre cada par de letras. Para el valor de C: =VALOR(EXTRAE(A2;ENCONTRAR("c";A2)+1;ENCONTRAR("r";A2)-ENCONTRAR("c";A2)-1)). El archivo descargable incluye las cuatro fórmulas.
¿Cómo numero facturas con cuatro dígitos, como 0001?
Con el formato personalizado 0000 sobre el número, o con =TEXTO(número;"0000").
Muy buen aporte, gracias.
Gracias por su comentario.
Hola, en Excel tengo dígitos en una celda, pero en la mitad debo añadir unos ceros. ¿Cómo puedo hacerlo? Por ejemplo, tengo en una celda 1892 y necesito poner entre el 8 y el 9 dos ceros.
Esa misma duda tengo.
Puede intentar con la siguiente fórmula:
=IZQUIERDA(A1, 2) & “00” & DERECHA(A1, 2)