Excel última aparición de una cadena determinada en una columna

Excel última aparición de una cadena determinada en una columna

Estoy usando la función BUSCAR para encontrar la última aparición de una cadena determinada en una columna proporcionada, como esta:

LOOKUP(A3;Runs!D3:D6;Runs!A3:A6)

Sin embargo, los límites en el vector están codificados: ¡Ejecuta!A3:A6. Quiero que este valor se establezca dinámicamente en la última celda con datos de la columna. Encontré esta fórmula que da el índice de la última fila:

COUNTA(Runs!A:A)

Esta otra función me da la referencia de la celda (el contenido de la celda), pero parece que no puedo fusionarla con la fórmula BUSCAR:

INDIRECT("Runs!A"&COUNTA(Runs!A:A))

¿Hay alguna forma de establecer el límite superior para BUSCAR dinámicamente?

EDITAR: no hay filas en blanco en el rango de filas.

Saludos

Respuesta1

Lo entiendo: el problema es lograr que su rango dinámico funcione como una especificación de rango dentro de BUSCAR. Ya casi estabas allí. Prueba esto:

    LOOKUP(A3;INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D));Runs!A3:A6)

Respuesta2

la función offset() resolverá tu problema

reemplace ¡Ejecuta! A3: A6 conCOMPENSACIÓN($A$3,0,0,CONTARA($A$3:$A$1000),1)

puedes ser un poco sofisticado con un rango de definición dinámicahttp://support.microsoft.com/kb/830287

Respuesta3

Terminé haciendo esto. Gracias a todos por sus comentarios, la respuesta de fixer1234 fue especialmente útil. La BÚSQUEDA no daba resultados precisos, así que la cambié por un par ÍNDICE/COINCIDENCIA. También se agregó un cheque N/A.

IF(ISNA(INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0))), "", INDEX(INDIRECT("Runs!A3:A"&COUNTA(Runs!A:A)), MATCH(A3, INDIRECT("Runs!D3:D"&COUNTA(Runs!D:D)), 0)))

información relacionada