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.
febrero 4th, 2020 a las 1:42 am
Hola solicito su ayuda, tengo un archivo plano de un sistema que me da una nomemclatura de 10 digitos por ejemplo: 6204620000, pero para subir la informacion a otro sistema de costos debo agregarlo en el siguiente formato 62.04.62.00.00 como hago para insertar un “.” (punto) entre cada dos cifras. muchas gracias.
junio 30th, 2020 a las 11:19 pm
=EXTRAE($M20,1,2)&”.”&EXTRAE($M20,3,2)&”.”&EXTRAE($M20,5,2)&”.”&EXTRAE($M20,7,2)
PRUEBA CON ESTA FORMULA
octubre 28th, 2020 a las 11:48 am
hola hice algunos ajustes de sintaxis a la formula y me sirvio !!!! gracias !!!
marzo 3rd, 2022 a las 3:51 pm
Muchísimas gracias… saludos desde Perú
febrero 20th, 2023 a las 6:09 pm
Muy buen aporte, gracias.
febrero 5th, 2020 a las 2:49 pm
como le hago para cambiar un numero previo al año, o sea tengo una numeración en la sumatoria se añada al numero previo. es decir tengo un dato así DTT/01/2020, y una fórmula para replicar y que el consecutivo sea DTT/02/2020.
mayo 7th, 2020 a las 8:11 pm
Hola, necesito vuestra ayuda, tengo una columna de numeros negativos que representan coordenadas geográficas, así: -33197194, pero necesito que queden así:-33.197194, los dos primeros digitos separados por un punto.
Qué función o método me ayuda a realizar esa inserción automáticamente?
julio 25th, 2022 a las 11:50 pm
Hola:
yo probé con esta fórmula, cuando tienen coordenadas:
Sea la casilla S2 la que tiene la coordenada -3200878386
=CONCATENAR(EXTRAE(S2;1;3)&”.”&EXTRAE(S2;4;15))
Queda -32.00878386
El 15, es para asegurar si alguna coordenada después del punto o coma tenga hasta 15 dígitos, si tienen mas dígitos este numero puede ser mas
Saludos
junio 24th, 2020 a las 10:30 am
tengo varias celda con diferentes cifras, ejemplo 0+1120498+1669902 y necesito que el valor de cada celda me aparezca sumado, normalmente incluyo un = delante de la cifra, pero como son como 2.000 registros, quisiera saber como lo hago fácil
junio 30th, 2020 a las 11:25 pm
PRIMERO SEPARA CON TEXTO EN COLUMNAS,
LE DAS EN DELIMITADO
APARECE UN RECUADRO HASTA ABAJO “OTRO” LE PONES EL SIGNO DE “+” Y LISTO YA TE LA SEPARO SOLO PARA SUMAR
marzo 25th, 2021 a las 10:29 am
Gracias excelente explicación de como aplicar el comando,ademas del gran ahorro de tiempo.
Gracias
abril 15th, 2021 a las 11:49 am
COMO PUEDO AÑADIR LOS SIGUIENTES SIMBOLOS A UN NÚMERO PARA QUE ME QUEDA IGUAL A ESTO *354301/56/797445/0* ;
SI EL ORIGINAL ES ASI 354301567974450, LES AGRADECERIA MUCHISIMO.
abril 15th, 2021 a las 12:57 pm
YA LO PUDE HACER…. GUIANDOME POR UNA FORMULA QUE VI MAS ARRIBA…GRACIAS IGUALMENTE
mayo 3rd, 2021 a las 7:36 pm
quisiera saber como hacerle si agrego un numero en una celda y quiero que en otra celda me arroge efectivo o tarjeta dependiendo de la celda en la que yo agregue la cantidad
agosto 6th, 2021 a las 9:33 am
Hola buen día, en una columna tengo mas de 1,000 registros y en cada celda varían los caracteres de 10 hasta 50, pero para insertarlo en otro sistema solo acepta 30 caracteres por celda, como puedo cortar todos a 30, de antemano muchas gracias
agosto 6th, 2021 a las 10:00 am
Buenos días, marco.
Utilice la Función EXTRAEM, así:
=EXTRAE(A1;1;30)
De esa forma extrae los primeros 30 caracteres de la celda.
Saludos
agosto 30th, 2021 a las 2:11 pm
Hola, buen día
Necesito unir cuatro celdas para agregarlas como nota en excel, estas deben llevar nombres: lote, ger y hora, solo he podido unir los valores de las celdas con la función de concatenar, pero no se como agregar los nombres
Así lo tengo: RIJK ZWAAN 102271376 0.8 8:30 – 8:50
Lo necesito así: RIJK ZWAAN lote: 102271376 Ger:0.8 Hora:8:30 – 8:50
noviembre 24th, 2021 a las 10:25 am
Hola, buen día! Tengo una columna con datos numéricos y alfanuméricos, pero el formato es de texto. Al cambiar toda la columna a formato numérico, los datos quedan como los necesito, exceptuando el caso del alfanumérico: 45693- ya que excel lo interpreta como número -45693, lo cual, en mi caso es incorrecto.
Tengo que aplicar el cambio al dato númerico, pero como puedo evitar que excel considere datos como este 45693- como número?
diciembre 22nd, 2021 a las 9:41 am
buen día, solicito de su colaboración tengo un archivo de 1896 datos tengo una columna con un numero de identificación 3459228 y en otra celdas tengo 982202 necesito separarlo con guio tipo 345922-8 cuando formulo la celda que contiene el numero 982202 me queda 982202- y necesito que todos me arrojen como este resultado
345922-8
febrero 3rd, 2022 a las 1:49 pm
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
febrero 21st, 2023 a las 12:34 pm
ESA MISMA DUDA TENGO
abril 18th, 2022 a las 11:03 pm
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.
.
abril 18th, 2022 a las 11:06 pm
**** 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.
mayo 24th, 2022 a las 1:37 pm
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
septiembre 15th, 2022 a las 9:08 am
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
noviembre 29th, 2022 a las 11:39 am
Como puedo hacer esto:
ejemplo:
13 veces
14 veces
17 veces
repetir la palabra (veces) en cada celda