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.
Recomendados.