Hace unos días explicábamos como extraer dígitos en Excel, hoy trataremos cómo agregar una determinada cantidad de dígitos o caracteres a una celda de Excel de forma automatizada.
Cómo agregar una letra o un número en Excel.
Esta posibilidad es muy útil cuando necesitamos agregar a una base de datos uno o varios ceros, o algún dígito 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 específica desde la misma fórmula.
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 fórmula será:
=CONCATENAR("00";A2)
Ahora, es posible que tengamos diferente cantidad de dígitos en las celdas y necesitemos que todas las celdas tengan un determinado número de dígitos, de modo que a unas celdas habrá que agregar 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 se 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 separar las letras de los números con un guion medio, quedando 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 los valores divididos con el guion.
La segunda opción, que es más sencilla, es la siguiente:
=IZQUIERDA(A1;3)&"-"&DERECHA(A1;3)
Extrae los 3 primeros caracteres de la izquierda que corresponden a las letras de la placa, se les 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 sin importar cuántos caracteres tenga esa celda; en tanto, en 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 dígito 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 el 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)
El resultado que debe ser concatenado con el anterior queda 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 vacío 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 macro 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 en el 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.
Dim celda As Range
For Each celda In Selection.Cells
celda.Value = "00" & celda.Value
Next celda
End Sub
Entre las comillas se colocan los caracteres que se pretenden 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.
Dim celda As Range
For Each celda In Selection.Cells
celda.Value = celda.Value & "00"
Next celda
End Sub
Es la misma macro, solo que el texto entre comillas se coloca al final 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:
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:
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.
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.
Forma de citar este artículo (APA):
Gerencie.com. (2023, febrero 21). Agregar dígitos o caracteres a celdas en Excel [Entrada de blog]. Recuperado de https://www.gerencie.com/agregar-digitos-o-caracteres-a-celdas-en-excel.html
Buenas tardes, necesito ayuda con una macro que me genere numeración automática de cuatro dígitos para una factura creada en Excel (ejemplo: 0001, 0002, sucesivamente). 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.
A continuación, le comparto una macro que hace lo que usted requiere. La numeración se hará en la celda A1 de la hoja activa y cada vez que ejecute la macro incrementará el número automáticamente. Para implementar esta solución siga estos pasos: – Presione las teclas ALT + F11 para abrir el editor de Visual Basic (VBA). – En el menú Insertar haga clic en Módulo para crear un nuevo módulo. – Copie y pegue el siguiente código en la ventana del módulo recién creado: “` Sub NumeracionFactura() Dim num As Long ‘ Leer valor actual If IsEmpty(Range(“A1”).Value) Then Range(“A1”).Value = 0 num = Range(“A1”).Value Else num = Range(“A1”).Value End If ‘ Incrementar contador y actualizar celda con formato personalizado Range(“A1”).Value = Format(num + 1, “0000”) End Sub “` – Cierre el editor de VBA presionando ALT + Q o simplemente cierre la ventana del editor. Cada vez que ejecute esa macro se incrementará automáticamente su factura sin importar si ya tiene mil facturas o más; siempre será un número único e incremental.
Muy buen aporte, gracias.
¿Cómo puedo hacer esto?
Ejemplo:
13 veces
14 veces
17 veces
Repetir la palabra “veces” en cada celda.
Para repetir la palabra “veces” en cada celda de una columna, puedes utilizar una fórmula simple. Supongamos que tus datos están en la columna A, comenzando desde la fila 1 (A1). En la celda B1, escribe la siguiente fórmula: “`excel =A1 & ” veces” “` Luego arrastra hacia abajo para aplicar esta fórmula a las demás celdas de esa columna. Esto concatenará el número con el texto “veces”.
Hola:
¿Ustedes me pueden ayudar con este caso?
Tengo una base de cédulas, y a veces algunas tienen unos dígitos de más (-001), los cuales no deseo tener, dado que tengo que hacer un cruce con otra base que tiene las cédulas sin esa característica.
Por ejemplo: 12345678-001 y 1234567890-001.
Lo que deseo saber es cómo puedo extraer estas dos opciones a la vez, si tengo en mi base cédulas de 8 y 10 dígitos.
Gracias.
Sí, claro. Puede utilizar la siguiente fórmula en Excel para extraer los dígitos que necesita:
“`excel
=SI(LARGO(A1)=10;IZQUIERDA(A1;8);A1)
“`
Esta fórmula asume que el número de cédula está en la celda A1.
La función LARGO devuelve el número de caracteres del texto, y si es 10 se supone que tiene un dígito adicional al final (-001), por lo tanto se utiliza IZQUIERDA para tomar sólo los primeros 8 caracteres (los números) y omitir el último carácter (-001).
Si no son 10 sino 9, entonces tomará todos los caracteres sin quitar ninguno.
Recuerde arrastrar la fórmula hacia abajo para aplicarla a todas las filas.
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 que alguna coordenada después del punto o coma tenga hasta 15 dígitos; si tiene más dígitos, este número puede ser mayor.
Saludos.
Me pueden apoyar, por favor. Quiero agregar un signo de igual (=) a un texto; pero la cantidad de espacios es diferente.
걸다 = Cuelgue o suspender.
걸리다 = Para ser colgados o suspendidos.
걸어 가다 = Para ir a pie o caminar.
Es decir, la palabra coreana = significado.
Se los agradeceré mucho.
Claro, aquí tienes el texto con los signos de igual añadidos y alineados:
걸다 = Cuelgue o suspender.
걸리다 = Para ser colgados o suspendidos.
걸어 가다 = Para ir a pie o caminar.
Hola,
He estado intentando con varios procesos, algunos muy sencillos y otros no tanto, obtener de forma automática los valores numéricos en columnas diferentes. Sin embargo, no logro crear una fórmula que extraiga esos valores de forma automática si la longitud o el valor de la información cambia en la celda.
Ejemplo:
Celda 1: (ValorDe “P”)-(ValorDe “C”)-(ValorDe “r”)-(ValorDe “d”)
p2.c8r32d80……. 2……….. 8……….. 32……….. 80
En las fórmulas que he logrado crear, si el valor de la celda cambia (en tamaño), necesito que también detecte esos cambios y no me tome una sola condición específica.
Ejemplo 2: si los valores cambian a:
Celda 2: (ValorDe “P”)-(ValorDe “C”)-(ValorDe “r”)-(ValorDe “d”)
p1.c24r128d800…….. 1……….. 24……… 128………. 800
En la fórmula que creé para la primera celda, si la aplico en la segunda, el resultado es incorrecto para mi actividad:
Celda 2 (error): (ValorDe “P”)-(ValorDe “C”)-(ValorDe “r”)-(ValorDe “d”)
p1.c24r128d800…….. 1……….. 2………… 12………. 80
Nota: no busco concatenar los números separándolos de la celda.
En pocas palabras, requiero una única fórmula que detecte los valores entre letras sin importar la cantidad de números entre ellas o su longitud, de modo que, al colocar datos en la celda(s), la fórmula pueda entregarme el valor adecuado por columna.
Espero haberme explicado.
Saludos.
Para extraer los valores de la celda que has descrito, puedes utilizar una combinación de funciones en Excel como `MID`, `SEARCH` y `LEN`. Sin embargo, dado que las posiciones pueden variar según el valor numérico (que puede tener diferentes longitudes), utilizaremos fórmulas más dinámicas.
Supongamos que tus datos están en la celda A1. Aquí tienes cómo podrías hacerlo para cada uno de los valores:
### Para Extraer “P” (Primer Valor)
“`excel
=VALOR(MID(A1, SEARCH(“p”,A1)+2,LEN(A1)-SEARCH(“p”,A1)-SEARCH(“.”,A1)))
“`
### Para Extraer “C” (Segundo Valor)
“`excel
=VALOR(MID(A1, SEARCH(“c”,A1)+2,SEARCH(“.”,A1,SEARCH(“c”,A1))-SEARCH(“c”,A1)-2))
“`
### Para Extraer “R” (Tercer Valor)
“`excel
=VALOR(MID(A1, SEARCH(“r”,A1)+2,SEARCH(“.”,A1,SEARCH(“r”,A1))-SEARCH(“r”,A1)-2))
“`
### Para Extraer “D” (Cuarto Valor)
“`excel
=VALOR(MID(A0; BUSCAR(“d”; A0) + 2; LARGO(A0) – BUSCAR(“d”; A0))
“`
Estas fórmulas deberían funcionar independientemente del número de dígitos o longitud del texto antes o después del número. Solo asegúrate de ajustar el rango según corresponda a tu hoja actual.
Recuerda arrastrar las fórmulas hacia abajo si necesitas aplicarlas a varias filas.
Hola,
He estado intentando con varios procesos, algunos muy sencillos y otros no tanto, para obtener de forma automática los valores numéricos en columnas diferentes. Sin embargo, no logro crear una fórmula que me permita obtener esos valores automáticamente si la longitud o el valor de la información cambia en la celda.
Ejemplo:
Celda1 (Valor de “P”) (Valor de “C”) (Valor de “r”) (Valor de “d”)
p2.c8r32d80 2 8 32 80
En las fórmulas que he logrado crear, si el valor de la celda cambia (en tamaño), requiero que también se detecten esos cambios y que no me tome solo una condición específica.
Ejemplo 2, si los valores cambian a:
Celda2 (Valor de “P”) (Valor de “C”) (Valor de “r”) (Valor de “d”)
p1.c24r128d800 1 24 128 800
En mi fórmula creada para la primera celda, si la aplico en la segunda, el resultado sería incorrecto para mi actividad.
Celda2 (Valor de “P”) (Valor de “C”) (Valor de “r”) (Valor de “d”)
p1.c24r128d800 1 2 12 80
Nota: No busco concatenar los números separándolos de la celda.
***
En pocas palabras, requiero una única fórmula que detecte los valores entre letras sin importar la cantidad de números entre ellas o su longitud, de modo que al ingresar datos en la celda, la fórmula pueda entregarme por columna el valor adecuado.
Espero haberme explicado.
Saludos.
Para resolver este problema, podemos utilizar una combinación de funciones en Excel que nos permitan extraer los valores numéricos según las letras correspondientes (P, C, R y D) sin importar la longitud o el número de dígitos.
### Supongamos que tenemos lo siguiente:
– La celda A1 contiene la cadena “p2.c8r32d80”.
### Fórmulas para cada columna
#### 1. Para el valor P
“`excel
=VALOR(EXTRAE(A1;ENCONTRAR(“p”;A1)+1;LARGO(A1)-ENCONTRAR(“p”;A1)))
“`
#### 2. Para el valor C
“`excel
=VALOR(EXTRAE(A1;ENCONTRAR(“.c”;A1)+2;ENCONTRAR(“r”;A1)-ENCONTRAR(“.c”;A1)-2))
“`
#### 3. Para el valor R
“`excel
=VALOR(EXTRAE(A1;ENCONTRAR(“r”;A1)+1;ENCONTRAR(“d”;A1)-ENCONTRAR(“r”;A1)-2))
“`
#### 4. Para el valor D
“`excel
=VALOR(DERECHA(A11,LARGO(A11)-HALLARB(“.”&”D”,SUBSTITUIR(SUBSTITUIR(SUBSTITUIR(UPPER(MID($B$5,6,LONGITUD($B$5))),”C”,”*”);”R”,”*”);”D”,”*”),”*”,REPT(“*”,100),3)))
“`
### Explicación:
– **EXTRAER**: Extrae un número específico de caracteres a partir de una posición dada.
– **BUSCAR**: Busca un carácter específico dentro del texto y devuelve su posición.
– **SUSTITUIR**: Reemplaza un carácter por otro en todo el texto.
– **LONGITUD**: Devuelve la cantidad total de caracteres en una cadena.
Con estas fórmulas podrás extraer automáticamente los valores independientemente del tamaño o formato ingresado en cada celda.
Si necesitas más ayuda con esto no dudes en preguntar!
Muchísimas gracias. Saludos desde Perú.
Hola, 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.