Búsqueda con Formula de Derecha a Izquierda

Buen dia, espero me puedan ayudar.

Tengo una base de datos de reportes en la cual hay una columna (en este caso la "V") que contiene el historial de cada reporte. Lo que necesito es buscar y extraer un texto en especifico, pero haciendo la búsqueda de derecha a izquierda.

Esto es un ejemplo de como esta la celda "V2"

Reporte 12345-6. Se necesita la reparación de muro dañado (18/11/2012) Reporte asignado a proveedor MUROS SA DE CV (18/11/2012) MUROS SA DE CV solicita NTE Amount is 1132.01 (20/11/2012) Reporte atendido por proveedor MUROS SA DE CV (21/11/2012) Ingresa NTE Amount is 1132.01 (21/11/2012) Actualizado NTE Amount is 920.93 Reporte atendido (22/11/2012)

La información que necesito me encuentre y extraiga es el ultimo "NTE Amount is (junto con los números de la derecha)" que este dentro de esa celda (la cantidad de números puede no ser siempre la misma dentro de esa celda al igual que puede ser menor o mayor).

En este ejemplo lo que necesitaría es que me extraiga "NTE Amount is 920.93"

No se si esto sea posible y si es posible, espero me puedan ayudar.

Muchas gracias

1 respuesta

Respuesta
1

Preparo una macro y te la envío.

¿Sólo dime el resultado en qué celda se va a poner?

Muchas gracias por tu atención. El resultado se podría poner en la celda continua a V2, que en este caso seria en W2.

Gracias y saludos

Con la siguiente macro te trae el texto y el importe, sólo tiene un pequeño detalle, si entre el importe y la siguiente palabra no hay un espacio, te puede traer más texto.
Instrucciones para ejecutar macro
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

Sub buscainstrrev()
'obtiene un texto y el importe
'Por.Dam
ufila = Range("V" & Rows.Count).End(xlUp).Row
For i = 2 To ufila
    texto = Range("V" & i)
    largo = Len(Range("V" & i))
    numini = InStrRev(texto, "NTE Amount is")
    For j = 1 To largo - numini + 14
        espacio = Mid(texto, numini + 13 + j, 1)
        If espacio = " " Then
            t2 = Mid(texto, numini, 14 + j)
            Exit For
        End If
    Next
    Range("W" & i) = t2
Next
End Sub

Muchas gracias por tu ayuda. Solo que al apretar F5 me aparece un recuadro (función Go To) en cual creo que hace una búsqueda con una referencia pero me parece que no es de la macro.

Lo que pasa es que en ese momento tienes activa la venta de excel, dale click a la venta de Microsoft Visual Basic.

Sigue nuevamente las instrucciones y no te cambies a la ventana de excel, estando en la venta de VBa presiona F5

Saludos. Dam

No olvides finalizar la pregunta

Muchas gracias por ayudarme y disculpa por seguir molestando. Me aparece que la macro tiene un error y me resalta esta parte en amarillo:

t2 = Mid(texto, numini, 14 + j)

Saludos y gracias por tu apoyo

Existen celdas que no tienen el texto "NTE Amount is"

Pero ya lo corregí, en esos casos no va a hacer nada.

Entra a MS-VBa y borra del panel toda la macro y copia esta nueva

Sub buscainstrrev()
'obtiene un texto y el importe
'Por.Dam
ufila = Range("V" & Rows.Count).End(xlUp).Row
For i = 2 To ufila
texto = Range("V" & i)
largo = Len(Range("V" & i))
numini = InStrRev(texto, "NTE Amount is")
If numini <> 0 Then
For j = 1 To largo - numini + 14
espacio = Mid(texto, numini + 13 + j, 1)
If espacio = " " Then
t2 = Mid(texto, numini, 14 + j)
Exit For
End If
Next
Range("W" & i) = t2
End If
Next
End Sub

Saludos.Dam
Si es lo que necesitas, podrías de favor, finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas