Fórmula de hoja de cálculo para mostrar los precios más recientes

Fórmula de hoja de cálculo para mostrar los precios más recientes

He creado una hoja de cálculo de LibreOffice Calc con columnas AC. En la columna A, tengo una lista de piezas compradas (en orden cronológicamente ascendente). En la columna B, tengo una lista de precios correspondientes. En la columna C, quiero mostrar elúltimo precio de comprapara la parte actual.

Esto es lo que se me ocurrió para hacerlo:

=INDIRECT(CONCATENATE("B",TEXT(MATCH(A8,A1:A7,1),"#")))

Básicamente funciona, pero hay dos problemas:

  1. Es muy complicado. ¿Existe una forma más sencilla de lograr esto?
  2. Si la pieza nunca se ha comprado antes, mostrará el precio de cualquier pieza que esté en la fila de arriba.

ACTUALIZACIÓN: Con más pruebas, definitivamente no funciona como se esperaba. No puedo decir si es un error en la función MATCH o si no es la función apropiada para el trabajo. La función COINCIDIR encuentra "menor o igual" y creo que la condición "menor" está causando problemas.

Respuesta1

Este es un problema bastante similar alCómo hacer que BUSCARV devuelva elúltimo¿fósforo?. Asoluciónde Excellll se adapta bastante bien a sus necesidades.

=INDEX(IF($A$1:$A$1000=A1,$B$1:$B$1000),MAX(IF($A$1:$A$1000=A1,ROW($A$1:$A$1000))))

Hice los rangos de búsqueda arbitrariamente grandes. Puede utilizar un rango enorme, por lo que no necesita ajustar la fórmula a medida que agrega más datos. Mi ejemplo de prueba tenía sólo seis entradas; las filas no utilizadas no coincidirán con nada, por lo que se ignoran.

Esta es la fórmula que va en C1, por lo que el objetivo de búsqueda es A1 (dos ubicaciones).

La función MAX encuentra la fila coincidente con el número más alto (orden cronológico, por lo que será la más reciente).

Es una fórmula matricial, por lo que debe ingresarse con Ctrl-Shift-Enter. Una vez que ingresa C1, puede copiar la celda con Ctrl-C, seleccionar un rango de celdas, según sea necesario, y pegar con Ctrl-V. Si agrega más datos, copie y pegue otro bloque de celdas.

O envuelva esto en una prueba de celda en blanco y complete previamente más celdas de las que necesitará:

=IF(ISBLANK(A1),"",formula_above)

Con este enfoque, las celdas previamente completadas permanecerán en blanco hasta que agregue datos para la fila.

información relacionada