Index - Sintaxe do comando de correspondência

2

Eu quero varrer uma matriz com 10 colunas e 17 linhas que contêm 0 na maioria das células.

Eu preciso varrer de cima para baixo linha por linha e quero destacar o índice (na linha 1 como 5) na localização L3 na folha para a primeira aparição do número 1.

Você pode ver que, inicialmente, o valor 1 aparece em E10.

Não consigo entender qual fórmula excel usar para obter o valor de 5 (índice na linha 1 correspondente à coluna E10) por ter detectado 1 pela primeira vez na coluna E, que deve imprimir o valor 5 em L3.

    
por Pankaj Kumar 10.03.2016 / 23:15

2 respostas

0

Não tenho certeza se isso funcionará para você, mas você pode usar a fórmula

=MATCH(1,A3:J3,0)
em L3 e, em seguida, arraste para baixo até L20. O resultado mostrará em qual coluna a primeira ocorrência da string de pesquisa é encontrada. Aqui está um exemplo:

Se essa solução um pouco desajeitada não funcionar, estou pensando em usar uma função definida pelo usuário para obter o que você deseja. Não seria muito difícil, apenas alguns loops para / next. Eu provavelmente poderia escrevê-lo, mas como eu não faço código o tempo todo, pode demorar um pouco.

    
por 12.03.2016 / 01:07
0

Eu encontrei uma solução para o seu problema. Use a seguinte fórmula em L3:

=INDEX(A1,J1,1,MATCH(1,INDIRECT("A"&SMALL(IF(A3,J20=1,ROW(A3,J20),5000),1)&":J"&SMALL(IF(A3:J20,ROW(A3:J20),5000),1)),0))

Explicação:

  • A1: J1 é o intervalo de pesquisa
  • 1 é a linha de pesquisa
  • SMALL(IF(A3:J20=1,ROW(A3:J20),5000);1) Localiza todas as linhas que contêm um 1 e, em seguida, retorna o menor (adicionei o valor 5000 para ter certeza de que a opção false de se definitivamente não é o menor número nesse array)
  • A função INDIRECTO é então usada para criar uma "linha" através da qual MATCH pode procurar o número correto para usar em INDEX

Você sempre pode fazer perguntas adicionais, se minha resposta não estiver clara.

    
por 11.03.2016 / 15:46