Extracción de primeras y últimas palabras (Microsoft Excel)
Reggie tiene una celda que contiene tres o más palabras. (El número de palabras puede variar). Necesita una fórmula que le permita extraer la primera palabra de la celda o la última palabra de la celda. Por ejemplo, si la celda contiene la frase «Reggie estuvo aquí en 2012», entonces necesita una fórmula para extraer «Reggie» y otra para extraer «2012».
Puedes extraer ambas palabras usando fórmulas. Extraer la primera palabra es relativamente sencillo. Todo lo que necesita hacer es encontrar la ubicación del primer espacio en la frase, luego extraer lo que esté a la izquierda. Si se supone que la frase está en A1, se puede utilizar la fórmula:
=LEFT(A1,FIND(" ",A1)-1)
En principio, para obtener la última palabra se puede lograr lo mismo, solo que es más complicado encontrar el último espacio en la cadena. Una forma de hacer esto es:
-
Cuente el número de espacios. Cambia el último espacio a un carácter diferente (que no está en otra parte de la frase)
-
Luego encuentra ese «personaje diferente»
-
Toma la parte de la frase a la derecha de ese «carácter diferente»
El «carácter diferente» que se puede utilizar es el primer carácter ASCII (es decir, char (1)), que no se imprime y es muy poco probable que esté en la frase. El número de espacios se puede encontrar tomando la diferencia entre la longitud de la frase con la longitud de la frase sin espacios (usando SUBSTITUTE para reemplazar todos los espacios con la cadena nula):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
Luego puede sustituir char (1) por la última aparición del espacio:
SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ","")))
Luego puede ENCONTRAR la ubicación de char (1) en esa cadena:
FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
El primer carácter de la última palabra es 1 carácter después de esto:
1+ FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
Luego, puede usar la función MID para extraer la parte de la cadena que comienza en esta ubicación hasta el final de la cadena. (No tiene que calcular la longitud exacta. Si elige un número mayor que la longitud de la última palabra, solo se elegirá la última palabra. Por lo tanto, puede comenzar en la ubicación anterior y extraer el número de caracteres la cadena para asegurarse de que tiene suficiente.):
=MID(A1,1+FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1," ","")))),LEN(A1))
También puede, si lo prefiere, crear funciones definidas por el usuario para capturar las palabras que desee. Agarrar la primera palabra es fácil:
Function FirstWord(c As String) Dim arr arr = Split(Trim(c), " ") FirstWord = arr(LBound(arr)) End Function
La función usa la función Dividir para separar lo que esté en la celda especificada, usando el segundo parámetro («») como delimitador. Cada elemento de la matriz (arr) contiene una parte de la cadena original. En este caso, lo que se devuelve es el primer elemento (especificado por LBound) de la matriz: la primera palabra.
Dado que las palabras de la frase se colocan en una matriz, puede usar solo una pequeña variación en la función para devolver la última palabra:
Function LastWord(c As String) Dim arr arr = Split(Trim(c), " ") LastWord = arr(UBound(arr)) End Function
Tenga en cuenta que, esencialmente, el único cambio real en la función es el uso de UBound en lugar de LBound. La función UBound especifica el último elemento de la matriz. Puede usar ambas funciones en una hoja de trabajo de esta manera:
=FirstWord(A1) =LastWord(A1)
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (11984) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.
Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:
link: / excelribbon-Extracting_First_and_Last_Words [Extracción de primeras y últimas palabras]
.