¿Dónde está ese texto? (Microsoft Excel)
Jay necesita determinar la celda en la que aparece un valor de texto en particular.
Sabe que puede usar las capacidades de Buscar y Reemplazar de Excel para determinar manualmente la dirección de las celdas que contienen un valor de texto, pero está buscando una fórmula para determinar la dirección de las celdas. Se pregunta si hay una manera de buscar un fragmento de texto dentro de un rango y hacer que Excel devuelva la dirección de la celda en la que se encuentra el texto.
Hay dos cosas que puedes probar. Primero, si está buscando una coincidencia exacta para el contenido de la celda, puede usar una fórmula. La fórmula básica es esta:
=ADDRESS(MATCH(C2,A:A,0),1)
En este ejemplo, la celda C2 contiene el valor que está buscando y la columna A es el rango de celdas que se buscan. La fórmula devuelve un resultado independientemente de las mayúsculas de C2 o los valores de la columna A.
Por lo tanto, si C2 contiene «manzana», la fórmula coincidirá positivamente con las celdas que contengan «manzana», «Apple» o «APPLE». De hecho, cualquier combinación de capitalización coincidirá.
Esta fórmula no devolverá una dirección para una celda que contenga lo que está buscando en medio de otro texto. Entonces, si está buscando «manzana» (celda C2), no devolverá la dirección de una celda que contenga la frase «manzana crujiente». Puede modificar este comportamiento, un poco, agregando caracteres comodín a la celda de búsqueda. Por ejemplo, si busca «manzana», la fórmula devuelve la dirección de una celda que contiene «manzana», incluso si está precedida o seguida de otros caracteres.
Cabe señalar que esta fórmula solo devuelve la dirección de la primera celda del rango que cumple con los criterios. Si realmente desea las direcciones de todas las celdas que cumplen con los criterios, deberá confiar en una macro. El siguiente es un buen ejemplo:
Function FindMe(x As Range, y As String) As String Dim r As Range Dim sResults As String Dim sSearch As String Application.Volatile sSearch = LCase(y) For Each r In x If InStr(1, LCase(CStr(r.Value)), sSearch) > 0 Then sResults = sResults & r.Address & ", " End If Next r If Len(sResults) > 2 Then FindMe = Left(sResults, Len(sResults) - 2) Else FindMe = "" End If End Function
La función se utiliza simplemente proporcionando el rango que desea buscar junto con lo que desea buscar:
=FindMe(A:A, "apple")
Si utiliza un rango grande (como en este ejemplo, toda la columna A), no se sorprenda si la función tarda una cantidad considerable de tiempo en devolver un resultado. Esto tiene sentido, ya que tiene que buscar en todas las celdas del rango, independientemente de si hay algo en la celda o no.
Tampoco es necesario utilizar comodines con esta función; asume que ocurre una coincidencia si lo que está buscando se encuentra en cualquier lugar dentro de la celda. Tampoco presta atención a las mayúsculas de lo que está buscando ni a las mayúsculas de cualquier cosa en el rango de búsqueda.
_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 (10083) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Where_Is_that_Text [¿Dónde está ese texto?]
.