Numeração de linhas do Excel com base em uma condição?

0

Eu tenho uma planilha em que o usuário poderia inserir uma lista de pontos de dados a serem plotados em um gráfico. Existem 100 linhas com a coluna mais à esquerda contendo uma caixa de seleção para cada linha. Eu quero que o usuário seja capaz de marcar 10 das 100 caixas e ter esses dados plotados em um gráfico em ordem de cima da lista para baixo.

As caixas de seleção estão vinculadas a uma coluna que exibe true de false. Por fim, terei uma coluna com 90 linhas 'FALSE' e 10 'TRUE'. As linhas que são verdadeiras podem estar em lugares diferentes toda vez que a planilha é usada, incluindo a primeira linha contendo true.

Eu quero que os dados das 10 linhas verdadeiras sejam copiados para uma tabela de 10 linhas (na mesma planilha) e sejam plotados para um gráfico.

Eu pensei em numerar as linhas verdadeiras 1-10 de cima para baixo, o que tornaria simples copiar os dados para a tabela de 10 linhas.

No entanto, não consigo fazer com que a numeração dessas linhas "verdadeiras" funcione com uma linha de início diferente a cada vez. O mais próximo que consegui foi usando a fórmula COUNTIF.

Alguém pode ajudar?

    
por vaux_2 24.08.2016 / 11:41

2 respostas

1

Embora existam soluções mais elegantes, as fórmulas são um pouco mais complexas, mas isso fornecerá uma solução muito simples e fácil de implementar.

Vamos supor que os seus valores VERDADEIRO / FALSO (e eu estou supondo que estes traduzidos para 1s e 0s em suas células) estejam no intervalo D3: D103, e vamos supor ainda que o texto associado a cada um desses potenciais 100 TRUE / FALSES está no intervalo E3: E103.

Na célula C3, coloque a seguinte fórmula e copie para C103: =SUM(D$3:D3)

Isto lhe dará algo como 0,0,0,1,1,1,1,1,1,2,2,2,2,2,3,3,3,3,3 etc indo para baixo, dependendo de onde os 1s estão na Coluna D.

(Se você não tem 1s e 0s, e você realmente tem as entradas TRUE / FALSE direto do Controle de Formulários, use =SUMPRODUCT(--(D$3:D3)) )

Agora, em células J6: J15, coloque os valores 1,2,3,4,5,6,7,8,9,10, e, em seguida, na célula K6, coloque a seguinte fórmula e copie para K15: =VLOOKUP(J6,$C$3:$E$103,3,0)

O que você verá agora na coluna K é o texto associado a cada uma das 10 opções que foram marcadas, na ordem em que aparecem na lista.

Se você quisesse saber qual número na lista eles realmente eram, então, diga a célula L6, a seguinte fórmula e copie para L15: =MATCH(J6,$C$3:$C$103,0)

Se você quisesse saber a linha real em que cada entrada apareceu, então diga a célula M6, a seguinte fórmula e copie para M15:% =MATCH(J6,$C$3:$C$103,0)+ROW($C$3)-1

    
por 24.08.2016 / 12:48
0

Ok, consegui fazê-lo funcionar, é um pouco confuso, mas funciona bem. Tive que aumentar meu alcance para 150 linhas para cobrir os dados que seriam inseridos.

Eu tinha todos os meus / false falsos na coluna I, então na coluna Ji coloquei os números de linha apenas das linhas contendo true ...

=IF(I7=FALSE, "", ROW())

Em seguida, na coluna K, usei a função RANK para atribuir os números 1-10 que eu queria. A numeração de linhas só aumentará sempre na lista para que a função de classificação em ordem descendente funcione bem.

=IF(J7="", "", RANK(J7,$J$7:$J$156, 1))

Em seguida, eu era capaz de usar a função VLOOKUP para coincidir com esses números 1-10 para os dados que eu queria extrair para preencher a tabela de 10 linhas que eu tenho em outro lugar na folha para plotagem em um gráfico.

Tenho certeza de que há muitas maneiras melhores de fazer isso, mas infelizmente estou em um prazo para que isso seja concluído, para que eu possa revisitar isso mais tarde para ver se posso melhorar isso.

Muito obrigado pelas postagens, pois isso me deu outra maneira de tentar, o que acabou levando a que funcionasse.

    
por 26.08.2016 / 12:31