O Excel VLOOKUP é a melhor escolha para meu aplicativo?

O Excel VLOOKUP é a melhor escolha para meu aplicativo?

Eu tenho um arquivo Excel que rastreia a elevação máxima do sol ao longo do ano, uma linha por dia, dada uma lat/lon específica. Se eu editar lat/lon, a elevação máxima diária muda.

Gostaria de escrever uma fórmula que consulte todo o banco de dados (2 colunas, 366 linhas) e me forneça o dia em que o sol começa a atingir uma determinada elevação e, novamente, quando ele não atinge mais essa elevação.

Por exemplo, Honolulu experimentará um ângulo máximo de elevação solar de 80 graus em 1º de maio, permanecendo em 80 graus ou mais (uma vez por dia) até 19 de agosto, quando cairá abaixo de 80 graus novamente.

Gostaria de uma função Excel que gerasse essas duas datas, visto que já tenho os dados de elevação.

Obrigado!

Responder1

A solução aqui é usar uma combinação de INDEX()e MATCH()em uma fórmula de matriz.

Escrevi duas fórmulas de matriz que resolvem o problema.

Data de início: {=INDEX(Dates, MATCH(TRUE, (Elevation>=Find_Elevation), 0), 1)}

Data final: {=INDEX(Dates, MATCH(TRUE, (Elevation>=Find_Elevation), 1), 1)}

Aqui está como eles funcionam

  • Elevationé um intervalo nomeado que contém todas as elevações do ano, Find_Elevationé um intervalo nomeado que é o que procuramos. No seu exemplo, isso é80
  • A expressão (Elevation>=Find_Elevation)retorna uma matriz de TRUEe FALSE(é por isso que precisa ser uma fórmula de matriz). Ele retorna TRUEsempre que a elevação de cada dia for maior ou igual à elevação que você está procurando.
  • A MATCH()função com terceiro argumento 0retorna o índice da primeira vez que vê TRUE. Este é o índice do primeiro dia em que o sol está acima da elevação que você procura.
  • Usar o terceiro argumento 1na MATCH()função faz com que ele retorne na última vez que for visto TRUE. Este é o índice do último dia em que o sol esteve acima da elevação que você procura.
  • Passamos ambos como segundo argumento para INDEX()e ele retorna a data correspondente ao valor retornado porMATCH()

Usei FormulaChop para gerar as fórmulas acima (Divulgação completa: escrevi FormulaChop). Aquié uma captura de tela de como o FormulaChop exibe esta fórmula.Aquié um link para uma planilha que demonstra a fórmula. Por favor, desculpe o fato de que tive que compensar as elevações solares.

informação relacionada