Solución alternativa para buscar y unir solo palabras completas

Solución alternativa para buscar y unir solo palabras completas

Me acabo de dar cuenta de que no hay ninguna opción en Excel Buscar para "hacer coincidir sólo la palabra completa" (no estoy hablando de "hacer coincidir todo el contenido de la celda"), por ejemplo, la búsqueda de "parte" no debe coincidir con "pareja". MS Word tiene esta opción (consulte la captura de pantalla de MS Word).

¿Existe alguna solución para esto en Excel?

Word: ejemplo de 'Buscar sólo palabras completas'

Respuesta1

Como señaló Scott, mi respuesta original era incorrecta.

Debido a la multitud de formas en que puedes definir el límite de una palabra, esto será difícil de hacer con un foro. Supongo que es por eso que \b(límite de palabra) existe en las expresiones regulares. Si tan solo pudiéramos usarlos en el cuadro de diálogo buscar/reemplazar de Excel.

Instale este complemento de Excel,http://www.codedawn.com/excel-add-ins.phphaga clic en el nuevoBuscar y reemplazar RegEx(u opción de menú en 2003) y utilice este término de búsqueda \bword\b, desmarque/marque coincidencia de mayúsculas y minúsculas y presione Buscar.

Es importante que las b estén en minúsculas y tendrás que aprender un poco sobre expresiones regulares (recomendadoeste sitio) si desea buscar algo que involucre puntuación, pero está bien colocar cualquier letra o número estándar entre las \betiquetas si eso es todo lo que desea buscar.

Creo que cubrí la mayoría de los casos con esta prueba: imagen de prueba

Respuesta2

En cuanto a la fórmula, puede buscar "Palabra" (sin distinguir entre mayúsculas y minúsculas) con esta fórmula para obtener VERDADERO solo para la palabra exacta, asumiendo que no hay puntuación.

=ISNUMBER(SEARCH(" Word "," "&A1&" "))

Eso devolvería VERDADERO para texto como

Una palabra para el sabio oGrasa es la palabra

y correctamente FALSO paraEspada de Damocles.....pero también obtendrías FALSO por algo como

¡Mi palabra!porque el signo de exclamación niega la coincidencia

Para lidiar con la puntuación, puede usar múltiples funciones SUSTITUIR, por ejemplo, para ignorar la coma, el punto y coma y el signo de exclamación, puede usar esta versión.

=ISNUMBER(SEARCH(" Word "," "&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,",",""),";",""),"!","")&" "))

Respuesta3

Al ingresar los parámetros en la sección "Buscar", simplemente incluya un espacio antes o después de la palabra. En mi caso, "Van" impedía que "SAVANA" cambiara, y "Man" impediría que "Mankind" cambiara.

Respuesta4

He encontrado una solución para ese problema.

Debe crear una función a la que llamará después de haber realizado su búsqueda estándar y haber encontrado 1 resultado.

La función comprobará si la palabra está completa o es una nota. Aquí está el código de la función:

Comprueba el carácter antes y después de la expresión encontrada y si NO es una letra (acentuada o no), devuelve verdadero; en caso contrario, devuelve falso.

Function WholeWord(ByVal text As String, ByVal expression As String) As Boolean

Dim aux1 As Integer: aux1 = 0
Dim aux2 As Integer: aux2 = 0


Dim condition1 As Boolean: condition1 = False
Dim condition2 As Boolean: condition2 = False

aux1 = InStr(1, text, expression, vbTextCompare)

If aux1 = 1 Then
condition1 = True
Else
If UCase(Mid(text, aux1 - 1, 1)) Like "[!A-ZÂÊÎÔÛÁÉÍÓÚÇÃÕÀÈÌÒÙÄËÏÖÜ]" Then
condition1 = True
End If
End If

aux2 = aux1 + Len(expression)

If aux2 = Len(text) + 1 Then
condition2 = True
Else
If UCase(Mid(text, aux2, 1)) Like "[!A-ZÂÊÎÔÛÁÉÍÓÚÇÃÕÀÈÌÒÙÄËÏÖÜ]" Then
condition2 = True
End If
End If

If condition1 = True And condition2 = True Then
WholeWord = True
Else
WholeWord = False
End If

End Function

información relacionada