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.

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