Como encontrar um índice específico de um valor que aparece várias vezes em uma tabela

0

Eu tenho uma função do Excel que localiza o índice AmountNamedRangedo segundo maior valor, uma vez que o correspondente DateNamedRangeestá nos últimos trinta dias.

=ArrayFormula(Match(Large(If(DateNamedRange > Today() - 30, AmountNamedRange, 0), 2), AmountNamedRange, 0))

Isso funciona bem o suficiente, desde que não haja outras linhas na tabela com a mesma quantidade. Se existe, porém, essa fórmula fornece o índice da primeira linha com a mesma quantidade que a segunda maior quantidade nos últimos trinta dias. Percebo que minha explicação é confusa, então aqui está um exemplo (suponha que hoje seja 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

Nesse caso, o segundo maior valor nos últimos 30 dias é 27 (índice 6), mas minha fórmula retornará o índice 2 porque Matchlocaliza a primeira linha da tabela que corresponde ao valor. Como posso modificar minha fórmula para retornar corretamente 6?

Daniel
fonte
@ pat2015 Meu critério é que seja o índice que corresponde ao valor que Large()retorna. Nesse caso, ele deve ser 6 porque o índice 2 não está dentro do intervalo de 30 dias.
Daniel
Primeiro, encontre a primeira data que atenda às suas necessidades. Altere (reconstrua com base no resultado) os parâmetros para MATCH () de acordo.
Hannu 31/01

Respostas:

1

Você precisa usar a mesma expressão que o segundo parâmetro para o MATCHqual você usou LARGE, para que ele não apareça apenas em Montantes, mas apenas os montantes nos últimos 30 dias:

=MATCH(LARGE(IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 2), IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 0)
(ainda é uma fórmula de matriz)

insira a descrição da imagem aqui

Máté Juhász
fonte