Tengo una función de Excel que encuentra el índice AmountNamedRange
de la segunda cantidad más grande dado que su correspondiente DateNamedRange
es dentro de los últimos treinta días.
=ArrayFormula(Match(Large(If(DateNamedRange > Today() - 30, AmountNamedRange, 0), 2), AmountNamedRange, 0))
Esto funciona bastante bien siempre que no haya otras filas en la tabla con la misma cantidad. Sin embargo, si tal cosa existe, esta fórmula proporciona el índice delprimerofila con la misma cantidad que la segunda cantidad más grande en los últimos treinta días. Me doy cuenta de que mi explicación es confusa, así que aquí hay un ejemplo (supongamos que hoy es el 31/01/2017):
1 Date Amount
2 12/2/2016 27
3 12/6/2016 66
4 12/15/2016 99
5 1/8/2017 45
6 1/20/2017 27
7 1/22/2017 18
En este caso, la segunda cantidad más grande en los últimos 30 días es 27 (índice 6), pero mi fórmula devolverá el índice 2 porque Match
encuentra la primera fila de la tabla que coincide con la cantidad. ¿Cómo puedo modificar mi fórmula para devolver correctamente 6?
Respuesta1
Debe usar la misma expresión como segundo parámetro MATCH
que usó para LARGE
, por lo que no solo buscará en Montos, sino solo los montos de los últimos 30 días:
=MATCH(LARGE(IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 2), IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 0)
(sigue siendo una fórmula matricial)