Excel: para A1, encontre a célula subseqüente mais alta antes que uma célula de A1 seja encontrada

0

Eu tenho uma coluna de preços flutuantes ao longo do tempo na coluna A, digamos que o preço de uma determinada ação por causa de argumentos.

Na coluna B, quero saber o quão alto o preço foi, a partir desse ponto, antes de se tornar menor do que o valor atual.

Então, estou pensando que preciso de uma fórmula que passe por todas as células subseqüentes até que uma célula < A1 é encontrado, de todas as células neste intervalo, imprima o mais alto.

Qualquer ajuda seria muito apreciada! Obrigado :)

    
por Sam J 05.05.2017 / 15:31

1 resposta

0

Exemplo de trabalho mínimo. Suponha que o os preços estão em C5:C23 , então este fórmula de matriz em D5 :

=MAX(INDIRECT("C"&ROW()&":C"&(ROW()+MATCH(-1,SIGN(C5:$C$23-C5),FALSE)-2)))

resultados copiados para baixo:

Notequeoserros#N/Asãosignificativos,sinalizamqueabaixonãohápreçomenordoqueissonacolunaCàesquerdadacélulacom#N/A.

**Editar**Comentários

Opontochaveélocalizarumalinhacomopreçoqueémenorquenalinhaatual(C5).Um"índice de queda" - o número de linhas da linha atual até a linha onde o preço é menor. Uma função

=MATCH(-1,SIGN(C5:$C$23-C5),FALSE)

retorna o número da linha (contando a linha atual como 1 ) para o qual ele encontra a primeira correspondência exata ( -1 ) na matriz, que é preenchida com os sinais de diferença entre a matriz de preços abaixo ( C5:$C$23 ) e o preço atual ( C5 ).

Dado que "drop index", é simples para construir uma referência de texto do intervalo antes de soltar:

=("C"&ROW()&":C"&(ROW()+MATCH(-1,SIGN(C5:$C$23-C5),FALSE)-2))

e, em seguida, use INDIRECT() para converter este texto em referência e encontre o máximo desejado com MAX() .

    
por 05.05.2017 / 20:50