Martha tenga cuidado la respuesta "sencilla y didáctica" no SIRVE, por 2 motivos:
1. No se puede utilizar LIKE, porque se estuviera, por ejemplo, la palabra camadrid o Madridaña los tendría en cuenta. Además, sobran los &, es suficiente con Como "*madrid*"
2. ¿Dónde están los demás registros?
Lo explico con esta imagen
Esta consulta es con el criterio Como "*madrid*" por esto toma los registros encerrados en rojo.
Para hacer esto se deben utilizar funciones que faciliten el trabajo. He creado la tabla con los datos de su pregunta para ser más exactos.
DISEÑO DE LAL CONSULTA
TEXTO DE LA COLUMNA TERCERA
TERCERA: SiInm(busca_palabra([OBSERVACION];"Madrid")=Verdadero;Extraer([OBSERVACION];3);"")
Observe que utilizo las funciones, busca_palabra() y Extraer()
RESULTADO DE LA CONSULTA
COPIE ESTAS FUNCIONES EN UN MÓDULO
Public Function busca_palabra(ByVal strPalabras As String, strCadena As Variant) As Boolean
' Función para buscar palabra de una frase
' Sintaxis:
' busca_palabra(<<texto>>,[palabra a buscar])
' Ejemplo de llamada:
' busca_palabra("soy de honda","honda") ---> Retorna True
' busca_palabra("soy hondano","honda") ---> Retorna False
' Elaborada por:
'
' Eduardo Pérez Fernández
' Fecha: 29/09/2022
Dim palabras As Variant
Dim contador As Integer
palabras = Split(strPalabras, " ")
For contador = LBound(palabras) To UBound(palabras)
strPalabras = palabras(contador)
If strPalabras = strCadena Then
busca_palabra = True
Exit For
End If
Next contador
End Function
Public Function extraer(strFrase As String, intPosicion As Integer) As String
'Función para estraer una palabra de una frase de acuerdo con la posición
'Parámetros:
' strFrase --> Frase a examinar
' intPosicion --> Posición de la palabra en la frase
'Ejemplo:
' extraer("Eduardo Pérez Fernández", 1) --- Retorna Eduardo (Primra palabra de la frase)
' extraer("Eduardo Pérez Fernández", 2) --- Retorna Pérez (Segunda palabra de la frase)
' extraer("Eduardo Pérez Fernández", 3) --- Retorna Fernández(Tercera palabra de la frase)
' extraer("Eduardo Pérez Fernández", 4) --- Retorna ! Error ...! (La posición supera el número de palabras)
'
'Elaborada Por:Eduardo Pérez Fernández
'Fecha : 5/10/2021
Dim PalArray() As String
Dim ctapalabras As Integer
PalArray() = Split(strFrase)
ctapalabras = UBound(PalArray()) + 1
If ctapalabras < intPosicion Then
extraer = "!! Error ...!!"
Exit Function
End If
extraer = Split(strFrase)(intPosicion - 1)
End Function
Las funciones permiten no solamente extraer la tercera palabra, puede ser primera o segunda.