Estoy intentando recuperar una puntuación asociada con una empresa, pero solo quiero la entrada más reciente. Si no hay ninguna puntuación, quiero que la celda esté en blanco.
Compañías | Puntaje | Fecha |
---|---|---|
A | 3.5 | 2/1/2020 |
A | 4.3 | 16/01/2019 |
En este caso, si quisiera la puntuación de la Empresa A, me gustaría que me devolviera el 3,5. Si busco la Compañía D, me gustaría que la celda permanezca en blanco.
¡¡Muchas gracias por cualquier ayuda de antemano!!
Respuesta1
Respuesta2
Usar XLOOKUP()
:
=XLOOKUP(F2, SORTBY(A2:A41, C2:C41), SORT(C2:C41), "", 0, -1)
SORTBY()
coloca su matriz de búsqueda, A2:A41 en la fórmula, en orden ordenado por la columna C, la columna de la que desea obtener los valores. Lo está ordenando de modo que la última instancia del valor de búsqueda XLOOKUP()
que se encuentre si se busca de arriba a abajo sea la que desea, no una entrada aleatoria.
Para garantizar esto, ordene POR su columna de valor de retorno, la columna C en este caso (es decir, C2:C41 en la fórmula) en dirección ascendente, es decir, el valor más bajo primero y el más alto al final. Como hay fechas en esa columna y Excel considera las fechas como números, esto no causa dificultades.
Entonces, en este punto, Excel ve el rango de datos con la fecha de valor más alto, la última fecha, para cada conjunto de valores del rango de búsqueda, al final del rango de datos virtuales que se ha creado.
XLOOKUP()
Luego se le dice que busque desde el final hasta el principio (de abajo hacia arriba) y, por lo tanto, cuando encuentra el valor de búsqueda que se le proporciona, encuentra el último de ellos en cualquier conjunto de esos valores en el rango de datos virtuales de la fórmula. Por lo que devolverá el registro correspondiente en la columna de resultados también virtual. Dado que eso también se ordenó, con solo SORT()
este tiempo ya que no necesita más, y dado que las dos clasificaciones se realizaron mediante la misma columna "ordenar por", el registro en la columna C coincidirá con el registro original de la columna A: en otras palabras, las filas de pares de las dos columnas permanecieron juntas en lugar de convertirse en un desastre.
Entonces creó un rango de datos virtuales de la matriz de búsqueda y la matriz de resultados en la que los pares permanecieron coincidentes. Ordenó las dos matrices para que cada valor de búsqueda se agrupara con sus valores similares, asegurando, debido a la clasificación por la matriz de resultados, que el último de ellos será el que desea. Y como XLOOKUP()
se puede mirar de principio a fin, se puede encontrar.
En realidad, podría realizar la clasificación en dirección descendente, desde la fecha más alta hasta la fecha más baja para cada conjunto de valores de búsqueda idénticos. Entonces podrías XLOOKUP()
mirar de principio a fin si tuvieras algún motivo para ello.