Tabla de contenido
En los últimos artículos, hemos tratado diferentes funciones de texto, que se utilizan para manipular cadenas de texto. Hoy nos centraremos en la función RIGHT, que está diseñada para devolver un número determinado de caracteres del extremo derecho de una cadena. Al igual que otras funciones de texto de Excel, RIGHT es muy simple y directa, sin embargo, tiene algunos usos poco obvios que pueden resultar útiles entu trabajo.
Sintaxis de la función RIGHT de Excel
La función DERECHA en Excel devuelve el número especificado de caracteres desde el final de una cadena de texto.
La sintaxis de la función DERECHA es la siguiente:
RIGHT(texto, [num_chars])Dónde:
- Texto (obligatorio) - la cadena de texto de la que desea extraer caracteres.
- Num_chars (opcional) - el número de caracteres a extraer, empezando por el carácter situado más a la derecha.
- Si num_chars se omite, se devuelve 1 último carácter de la cadena (por defecto).
- Si num_chars es mayor que el número total de caracteres de la cadena, se devuelven todos los caracteres.
- Si num_chars es un número negativo, una fórmula Correcta devuelve el error #¡VALOR!
Por ejemplo, para extraer los 3 últimos caracteres de la cadena de la celda A2, utilice esta fórmula:
= DERECHA(A2, 3)
El resultado podría ser algo parecido a esto:
Nota importante: La función RIGHT de Excel siempre devuelve un valor cadena de texto Para forzar la salida de un número en una fórmula Right, utilícela en combinación con la función VALUE como se muestra en este ejemplo.
Cómo utilizar la función DERECHA en Excel - ejemplos de fórmulas
En las hojas de cálculo de la vida real, la función RIGHT de Excel rara vez se utiliza por sí sola. En la mayoría de los casos, la utilizará junto con otras funciones de Excel como parte de fórmulas más complejas.
Cómo obtener una subcadena que viene después de un carácter determinado
En caso de que desee extraer una subcadena que siga a un carácter específico, utilice la función BUSCAR o BUSCAR para determinar la posición de ese carácter, reste la posición de la longitud total de la cadena devuelta por la función LEN y extraiga esa cantidad de caracteres del extremo derecho de la cadena original.
CORRECTO( cadena LEN( cadena ) - BUSCAR( carácter , cadena ))Digamos que la celda A2 contiene el nombre y el apellido separados por un espacio, y tu objetivo es llevar el apellido a otra celda. Sólo tienes que tomar la fórmula genérica anterior y poner A2 en lugar de cadena y " " (espacio) en lugar de carácter:
=DERECHA(A2,LEN(A2)-BUSCAR(" ",A2))
La fórmula dará el siguiente resultado:
De forma similar, puede obtener una subcadena que siga a cualquier otro carácter, por ejemplo, una coma, un punto y coma, un guión, etc. Por ejemplo, para extraer una subcadena que venga después de un guión, utilice esta fórmula:
=DERECHA(A2,LEN(A2)-BUSCAR("-",A2))
El resultado será similar a éste:
Cómo extraer una subcadena después de la última aparición del delimitador
Cuando se trabaja con cadenas complejas que contienen varias apariciones del mismo delimitador, a menudo es necesario recuperar el texto situado a la derecha de la última aparición del delimitador. Para facilitar la comprensión, observe los siguientes datos de origen y el resultado deseado:
Como puede ver en la captura de pantalla anterior, la columna A contiene una lista de errores. Su objetivo es extraer la descripción del error que viene después de los últimos dos puntos en cada cadena. Una complicación adicional es que las cadenas originales pueden contener diferentes números de instancias de delimitadores, por ejemplo, A3 contiene 3 dos puntos mientras que A5 sólo uno.
La clave para encontrar una solución es determinar la posición del último delimitador en la cadena de origen (la última aparición de dos puntos en este ejemplo). Para ello, tendrá que utilizar un puñado de funciones diferentes:
- Obtiene el número de delimitadores de la cadena original. Es una parte fácil:
- En primer lugar, calcula la longitud total de la cadena utilizando la función LEN: LEN(A2)
- En segundo lugar, se calcula la longitud de la cadena sin delimitadores mediante la función SUBSTITUTE, que sustituye todos los dos puntos por nada: LEN(SUBSTITUTE(A2,":",""))
- Por último, resta la longitud de la cadena original sin delimitadores a la longitud total de la cadena: LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
Para asegurarte de que la fórmula funciona correctamente, puedes introducirla en una celda aparte, y el resultado será 2, que es el número de dos puntos de la celda A2.
- Sustituir el último delimitador por algún carácter único. Para extraer el texto que viene después del último delimitador de la cadena, necesitamos "marcar" de alguna manera esa aparición final del delimitador. Para ello, sustituyamos la última aparición de dos puntos por un carácter que no aparezca en ninguna parte de las cadenas originales, por ejemplo, por un signo de almohadilla (#).
Si está familiarizado con la sintaxis de la función SUBSTITUTE de Excel, recordará que tiene el cuarto argumento opcional (instance_num) que permite reemplazar sólo una ocurrencia específica del carácter especificado. Y puesto que ya hemos calculado el número de delimitadores de la cadena, basta con suministrar la función anterior en el cuarto argumento de otra función SUBSTITUTE:
=SUBSTITUTE(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))
Si pusieras esta fórmula en una celda separada, devolvería esta cadena: ERROR:432#Conexión interrumpida
- Obtén la posición del último delimitador en la cadena. Dependiendo del carácter por el que hayas sustituido el último delimitador, utiliza SEARCH, que no distingue entre mayúsculas y minúsculas, o FIND, que distingue entre mayúsculas y minúsculas, para determinar la posición de ese carácter en la cadena. Nosotros hemos sustituido los últimos dos puntos por el signo #, así que utilizamos la siguiente fórmula para averiguar su posición:
=SEARCH("#", SUBSTITUTE(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))
En este ejemplo, la fórmula devuelve 10, que es la posición de # en la cadena sustituida.
- Devuelve una subcadena a la derecha del último delimitador. Ahora que conoces la posición del último delimitador en una cadena, todo lo que tienes que hacer es restar ese número de la longitud total de la cadena, y hacer que la función DERECHA devuelva esa cantidad de caracteres desde el final de la cadena original:
=RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))
Como se muestra en la siguiente captura de pantalla, la fórmula funciona perfectamente:
Si está trabajando con un gran conjunto de datos en el que distintas celdas pueden contener delimitadores diferentes, es posible que desee encerrar la fórmula anterior en la función IFERROR para evitar posibles errores:
=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))), A2)
En caso de que una cadena determinada no contenga ni una sola aparición del delimitador especificado, se devolverá la cadena original, como en la fila 6 de la captura de pantalla siguiente:
Cómo eliminar los N primeros caracteres de una cadena
Además de extraer una subcadena del final de una cadena, la función DERECHA de Excel resulta útil en situaciones en las que se desea eliminar un determinado número de caracteres del principio de la cadena.
En el conjunto de datos utilizado en el ejemplo anterior, es posible que desee eliminar la palabra "ERROR" que aparece al principio de cada cadena y dejar sólo el número de error y la descripción. Para ello, reste el número de caracteres que desea eliminar de la longitud total de la cadena y proporcione ese número a la función num_chars de la función RIGHT de Excel:
CORRECTO( cadena LEN( cadena )- número_de_caracteres_a_eliminar )En este ejemplo, eliminamos los 6 primeros caracteres (5 letras y dos puntos) de la cadena de texto en A2, por lo que nuestra fórmula es la siguiente:
=RIGHT(A2, LEN(A2)-6)
¿Puede la función RIGHT de Excel devolver un número?
Como se mencionó al principio de este tutorial, la función DERECHA en Excel siempre devuelve una cadena de texto incluso si el valor original es un número. Pero, ¿qué ocurre si trabaja con un conjunto de datos numéricos y desea que la salida también sea numérica? Una solución fácil es anidar una fórmula DERECHA en la función VALOR, que está especialmente diseñada para convertir una cadena que representa un número en un número.
Por ejemplo, para extraer los 5 últimos caracteres (código postal) de la cadena en A2 y convertir los caracteres extraídos en un número, utilice esta fórmula:
=VALOR(DERECHA(A2, 5))
La siguiente captura de pantalla muestra el resultado: observe que los números de la columna B están alineados a la derecha, mientras que las cadenas de texto de la columna A están alineadas a la izquierda:
¿Por qué la función DERECHA no funciona con fechas?
Dado que la función DERECHA de Excel está diseñada para trabajar con cadenas de texto, mientras que las fechas se representan mediante números en el sistema interno de Excel, una fórmula DERECHA no puede recuperar una parte individual de una fecha, como un día, un mes o un año. Si intenta hacerlo, todo lo que obtendrá serán unos pocos últimos dígitos del número que representa una fecha.
Suponiendo, que tienes la fecha 18-ene-2017 en la celda A1. Si intentas extraer el año con la fórmula RIGHT(A1,4), el resultado sería 2753, que son los 4 últimos dígitos del número 42753 que representa el 18 de enero de 2017 en el sistema Excel.
"Entonces, ¿cómo recupero una parte determinada de una fecha?", me preguntarás. Utilizando una de las siguientes funciones:
- Función DAY para extraer un día: =DAY(A1)
- Función MONTH para obtener un mes: =MONTH(A1)
- Función YEAR para extraer un año: =YEAR(A1)
La siguiente captura de pantalla muestra los resultados:
Si su las fechas se representan mediante cadenas de texto , lo que suele ocurrir cuando se exportan datos de una fuente externa, nada impide utilizar la función DERECHA para extraer los últimos caracteres de la cadena que representan una parte determinada de la fecha:
La función RIGHT de Excel no funciona - razones y soluciones
Si una fórmula correcta no funciona correctamente en su hoja de cálculo, lo más probable es que se deba a una de las siguientes razones:
- Hay uno o varios espacios finales Para eliminar rápidamente los espacios sobrantes en las celdas, utilice la función TRIM de Excel o el complemento Cell Cleaner.
- En num_chars argumento es inferior a cero Por supuesto, difícilmente querrá poner un número negativo en su fórmula a propósito, pero si el num_chars es calculado por otra función de Excel o una combinación de diferentes funciones y su fórmula Derecha devuelve el error #¡VALOR! asegúrese de comprobar si hay errores en la(s) función(es) anidada(s).
- El valor original es un fecha Si has seguido este tutorial con atención, ya sabes por qué la función DERECHA no funciona con fechas. Si alguien se ha saltado la sección anterior, puede encontrar todos los detalles en Por qué la función DERECHA de Excel no funciona con fechas.
Así es como se utiliza la función DERECHA en Excel. Para echar un vistazo más de cerca a las fórmulas tratadas en este tutorial, te invitamos a descargar nuestro libro de trabajo de ejemplo a continuación. Te doy las gracias por leer y espero verte en nuestro blog la próxima semana.
Descargas disponibles
Función RIGHT de Excel - ejemplos (archivo .xlsx)