Agregar dígitos o caracteres a celdas en Excel

Hace unos días explicábamos como extraer dígitos en Excel, hoy trataremos como agregar una determinada cantidad de dígitos o caracteres a una celda de Excel de forma automatizada.

Cómo agregar una letra o un numero en Excel.

Esta posibilidad es muy útil cuando necesitamos agregar a una base de datos uno o varios ceros, o algún digito o código de verificación, o cualquier otro valor.

Para ello haremos uso de la función CONCATENAR.

La función concatenar, además de unir el texto de dos o más celdas, nos permite agregar texto o caracteres a una celda especifica desde la misma formula.

Procedimiento.

En este caso, partimos de la celda que contiene el valor inicial, y en una segunda celda colocamos la función que contiene y agregará el texto requerido.

Por ejemplo supongamos que en la celda A2 tenemos el valor 152356 y queremos agregarle dos ceros.

En la celda B2  o donde necesitemos colocar el nuevo valor, escribimos la siguiente fórmula:

=CONCATENAR(A2;"00")

Nótese que el texto o valor que se agrega, está entre comillas. Si queremos agregar el nuevo valor al inicio de la celda, la formula será:

=CONCATENAR("00";A2)

Ahora, es posible que tengamos diferente cantidad de dígitos en la celdas y necesitemos que todas las celdas tengan un determinado número de dígitos, de modo que a unas celdas habrá que agrega un dígito, a otras dos, etc.

Supongamos que necesitamos que todas las celdas tengan 5 dígitos, y algunas tienen 3, otras 4 y algunas 5.

Para solucionar esto, haremos uso de tres funciones diferentes: LARGO, CONCATENAR y la función SI.

=SI(LARGO(A2)=3;CONCATENAR(A2;"00");SI(LARGO(A2)=4;CONCATENAR(A2;"0");A2))

En este caso hemos supuesto la necesidad de agregar uno o dos ceros hasta completar 5 dígitos en cada celda.

En el ejemplo, la función LARGO  encarga de contar el número de dígitos que contiene la celda, la función SI se encarga de condicionar el contenido de la celda y la función CONCATENAR se encarga de unir o agregar los textos si la condición evaluada por la función SI se cumple.

Insertar o agregar contenido en medio del texto de una celda

Para agregar contenido en medio de la celda, es decir, en la mitad del texto de la celda se pueden utilizar 2 fórmulas.

Supongamos que en una celda tenemos la placa de los vehículos en la siguiente forma: ABC123 y necesitamos separa las letras de los números con un guion medio ABC-123.

La primera opción es utilizando la función CONCATENAR junto con la función IZQUIERDA y LARGO así:

=CONCATENAR(IZQUIERDA(A1;LARGO(A1)/2);"-";DERECHA(A1;LARGO(A1)/2))

La fórmula determina el número de caracteres de la celda y lo divide en 2 para luego concatenar la los valores divididos con el guion.

La segunda opción que es más sencilla es la siguiente:

=IZQUIERDA(A1;3)&"-"&DERECHA(A1;3)

Extraen los 3 primeros caracteres de la izquierda que corresponde a la letras de la placa, se le agrega el guion y luego se extraen los últimos 3 caracteres de la derecha que corresponden a los números de la placa, concatenando todo con &.

La primera opción permite insertar contenido en la mitad de la celda no importa cuántos caracteres tenga esa celda, en tanto la segunda se requiere que la celda tenga determinados caracteres, que en nuestro ejemplo son 6, 3 a la derecha y 3 a la izquierda.

Insertar carácter en una posición en Excel.

Para insertar un carácter en cualquier posición de un texto en Excel, como ya vimos, se utilizan las funciones IZQUIERDA Y DERECHA concatenadas.

Supongamos que tenemos el Nit 837528642 siendo el último número el digito de verificación y requerimos separarlo por un guion.

Utilizamos la función IZQUIERDA para extraer el Nit sin dígito de verificación que corresponde a los primeros 8 números.

=IZQUIERDA(A1;8)

El segundo argumento de la función es la que determina la posición en la que se insertará el contenido, que en nuestro caso es 8, es decir, que el guion se insertará luego del carácter 8.

Ahora insertamos el guion así:

&"-"

Luego extraemos el dígito de verificación que es el último número, que corresponde al primero de derecha a izquierda y por eso utilizamos la función DERECHA así:

DERECHA(A1;1)

Resultado que debe ser concatenado con el anterior quedando la fórmula completa de la siguiente forma:

=IZQUIERDA(A1;8)&"-"&DERECHA(A1;1)

Entre las comillas se coloca el contenido que queremos insertar, que incluso puede ser un espacio vació o en blanco.

Insertar contenido en un rango de celdas en Excel.

Si se requiere ingresar contenido o caracteres en un rango determinado de celdas no es posible hacerlo con fórmulas por lo que se requiere programar una marco para ello.

Supongamos que tenemos una tabla con 10 columnas y 10 filas a las que debemos agregar un contenido a cada una de ellas, como un prefijo, un sufijo, un guion, etc., que puede ser al inicio de la celda, al final o incluso al medio.

A continuación sugerimos una macro para cada una de esas opciones, y todo lo que debe hacer es seleccionar el rango de celdas donde están los datos, y ejecutar la macro que corresponda.

Macro para agregar contenido al inicio de la celda.

Con la siguiente macro se agrega el contenido al inicio de cada celda, como un prefijo.

Sub AgregarCaracteresInicio()
Dim celda As Range
For Each celda In Selection.Cells
celda.Value = "00" & celda.Value
Next celda
End Sub

Entre las comillas se coloca el contenido los caracteres que pretende agregar.

Macro para agregar contenido al final de la celda.

Si el texto se debe agregar al final de cada celda como un sufijo, se puede utilizar la siguiente macro.

Sub AgregarCaracteresFinal()
Dim celda As Range
For Each celda In Selection.Cells
celda.Value = celda.Value & "00"
Next celda
End Sub

Es la misma macro sólo que el texto entre comillas se colca al fina del contenido de la celda.

Macro para insertar contenido en la mitad de la celda.

Si se requiere ingresar contenido en la mitad de la celda, como un guion separador, el código de la macro es el siguiente:

Sub InsertarEnMedioPar()
Dim celda As Range
Dim contenido As String
Dim longitud As Integer
For Each celda In Selection.Cells
contenido = celda.Value
longitud = Len(contenido)
If longitud > 0 Then
celda.Value = Left(contenido, longitud / 2) & "-" & Right(contenido, longitud / 2)
End If
Next celda
End Sub

Esta macro funciona correctamente si el contenido de la celda es par, es decir, si el número de caracteres es par, como 6, 8 o 10.

Si el contenido es impar, por ejemplo 5 caracteres, el código de la macro será el siguiente:

Sub InsertarEnMedioImpar()
Dim celda As Range
Dim contenido As String
Dim longitud As Integer
Dim mitad As Integer
For Each celda In Selection.Cells
contenido = celda.Value
longitud = Len(contenido)
If longitud > 0 Then
mitad = longitud \ 2
celda.Value = Left(contenido, mitad) & "-" & Right(contenido, longitud - mitad)
End If
Next celda
End Sub

El contenido es insertado luego de la mitad par. Por ejemplo, si la celda tiene 5 caracteres, el contenido es insertado luego del segundo carácter y la segunda parte queda conformada por 3 caracteres.

Macro para insertar el contenido en una posición determinada.

Si el contenido se debe insertar en una posición que no sea el inicio, el final o la mitad de la celda, se puede utilizar la siguiente macro.

Sub DefinirPosicion()
Dim celda As Range
Dim contenido As String
Dim posicion As Integer
posicion = 5 ' Cambiar por la posición requerida
For Each celda In Selection.Cells
contenido = celda.Value
If Len(contenido) > posicion Then
celda.Value = Left(contenido, posicion) & "-" & Right(contenido, Len(contenido) - posicion)
End If
Next celda
End Sub

Aquí se le ha indicado que agregue el contenido luego de la posición 5, valor que debe cambiar según sus necesidades.

Recomendados.

Compártalo en Facebook Compártalo en Twitter
Deje su opinión o su pregunta.

Regístrese para informarle cuando se responda su pregunta.

  1. Camila (febrero 3 de 2022)

    Hola, tengo digitos en una celda, pero en la mitad debo adicionar unos ceros como puedo ahcerlo ?
    Por ejemplo tengo en una celda
    1892y necesito poner entre el 8 y el 9 dos ceros

    Responder
    • MEL en respuesta a Camila (febrero 21 de 2023)

      ESA MISMA DUDA TENGO

      Responder
  2. Ricardoe (abril 18 de 2022)

    Hola,

    He estado intentando con varios procesos muy sencillos y unos no tanto para obtener de forma AUTOMATICA los valores numéricos en colunmas diferentes. Pero en No logro crear una formula para obtener esos valores de forma automática si el la longitud o el valor de la información cambia en la celda.

    ejemplo:

    Celda1 (ValorDe”P”) (ValorDe”C”) (ValorDe”r”) (ValorDe”d”)
    p2.c8r32d80 2 8 32 80

    Pero en las formulas que he logrado crear si el valor de la celda cambia de valores (tamaño) requiero que tambien detecte esos cambios y no me tome (una sola condición en especifico)

    ejemplo 2, si los valores cambian a:

    Celda2 (ValorDe”P”) (ValorDe”C”) (ValorDe”r”) (ValorDe”d”)
    p1.c24r128d800 1 24 128 800

    ***
    En mi formula creada para la primera celda si la aplico en la segunda me queda así el resultado el cual sería INCORRECTO para mi actividad

    Celda2 (ValorDe”P”) (ValorDe”C”) (ValorDe”r”) (ValorDe”d”)
    p1.c24r128d800 1 2 12 80

    Nota, no busco concatenar los numero separandolos de la celda
    ****

    En pocas palabras requiero una UNICA formula que detecte los valores entre letras sin importar la cantidad de numeros entre ellas o su longitud, así si coloco datos en la celda(s) la formula pueda solo entregarme por columna el valor adecuado.

    Espero haberme explicado

    Saludos.

    .

    Responder
  3. Ricardo e. (abril 18 de 2022)

    **** se movieron los espacios. lo coloco de nuevo:

    Hola,

    He estado intentando con varios procesos muy sencillos y unos no tanto para obtener de forma AUTOMATICA los valores numéricos en colunmas diferentes. Pero en No logro crear una formula para obtener esos valores de forma automática si el la longitud o el valor de la información cambia en la celda.

    ejemplo:

    Celda1——–(ValorDe”P”)-(ValorDe”C”)-(ValorDe”r”)-(ValorDe”d”)
    p2.c8r32d80……. 2……….. 8………..32……….. 80
    .
    .
    Pero en las formulas que he logrado crear si el valor de la celda cambia de valores (tamaño) requiero que tambien detecte esos cambios y no me tome (una sola condición en especifico)

    ejemplo 2, si los valores cambian a:

    Celda2———–(ValorDe”P”)-(ValorDe”C”)-(ValorDe”r”)-(ValorDe”d”)
    p1.c24r128d800…….. 1………..24………128………. 800

    ***
    En mi formula creada para la primera celda si la aplico en la segunda me queda así el resultado el cual sería INCORRECTO para mi actividad

    Celda2(errorneo)–(ValorDe”P”)-(ValorDe”C”)-(ValorDe”r”)-(ValorDe”d”)
    p1.c24r128d800…….. 1………..2…………12………. 80

    Nota, no busco concatenar los numero separandolos de la celda
    ****

    En pocas palabras requiero una UNICA formula que detecte los valores entre letras sin importar la cantidad de numeros entre ellas o su longitud, así si coloco datos en la celda(s) la formula pueda solo entregarme por columna el valor adecuado.

    Espero haberme explicado

    Saludos.

    Responder
  4. Oskar (mayo 24 de 2022)

    Me pueden apoyar
    Quiero agregar un signo de igual (=) a un texto; pero la cantidad de espacios son diferentes

    걸다 Cuelgue o suspender.
    걸리다 Para ser colgados o suspendidos.
    걸어 가다 Para ir a pie o caminar

    Es decir la palabra coreana = significado
    Se los agradeceré mucho

    Responder
  5. MDA (septiembre 15 de 2022)

    Hola

    ustedes me ayudan con este casito

    tengo una base de cedulas , que aveces algunas tienen unos digitos demas(-001) , lo cuales no deseo tener, dado a que tengo que hacer un cruce con otra base que tiene la cedulas sin esa caracteristica.

    ejemplo asi 12345678-001
    1234567890-001

    Lo que deseo saber es como puedo extraer estas dos opciones a la vez , si tengo en mi base cedulas de 8 y 10 digitos.

    gracias

    Responder
  6. FRANK (noviembre 29 de 2022)

    Como puedo hacer esto:
    ejemplo:

    13 veces
    14 veces
    17 veces
    repetir la palabra (veces) en cada celda

    Responder
  7. DONAL RICARDO (junio 17 de 2023)

    Buenas tarde, necesito ayuda en una macro que me genere numeración automatica de cuatro digitos para una factura creada en excel(ejemplo: 0001, 0002 sucesivamente), pero las numeraciones iniciales deben llevar ceros a la izquierda hasta que obviamente dicha numeración llegue a mil y continúe, agradezco mucho su ayuda.

    Responder

Este sitio web utiliza cookies propias y de terceros para ofrecer un mejor servicio. Al seguir navegando acepta su uso.