referenciando células em outras colunas

1

Digamos que eu esteja na coluna 6, linha 10.

Os dados da coluna 4 são uma letra por célula, algo assim: a, b, a, c, d, e, b, c, f, d

Eu quero uma fórmula que pesquise o valor da coluna 4, linha 10 ... obtém d.

Em seguida, verifica se uma célula anterior contém d ... neste caso, sim, na linha 5.

Em seguida, vai para a coluna 2, linha 10, e obtém o valor lá ... digamos 15.

Em seguida, vai para a coluna 2, linha 5, e obtém o valor lá ... digamos 5.

Em seguida, faz o cálculo (15-5) e insere o valor 10 na coluna 6, linha 10.

Isso é possível no Excel?

Seria ótimo se pudesse ser feito.

Obrigado.

    
por itid 12.08.2010 / 09:10

3 respostas

1

Para esta solução, uma coluna fictícia (G: G) é adicionada.

Fórmula:
G1 contém =B1 para copiar o valor para o lado direito da coluna D (para vlookup ). Copie para G2:G10

F1 contém =B1-VLOOKUP(D1,D:G,4,FALSE) . Copie para F2:F10 . Subtrai o valor da primeira linha correspondente de B1. (Nota: 4 significa que a coluna G é a quarta coluna no intervalo D:G )

   |   A   |   B   |   C   |   D   |   E   |   F   |   G   
---+-------+-------+-------+-------+-------+-------+-------
 1 |       |       |       |   a   |       |     0 |     0 
 2 |       |       |       |   b   |       |     0 |     0 
 3 |       |       |       |   a   |       |     0 |     0 
 4 |       |       |       |   c   |       |     0 |     0 
 5 |       |     5 |       |   d   |       |     0 |     5 
 6 |       |       |       |   e   |       |     0 |     0 
 7 |       |       |       |   b   |       |     0 |     0 
 8 |       |       |       |   c   |       |     0 |     0 
 9 |       |       |       |   f   |       |     0 |     0 
10 |       |    15 |       |   d   |       |    10 |    15 

O método acima calcula Value of current row - Value of the FIRST MATCHING ROW independentemente de existirem 1 "d", 2 "d", 3 "d" ou mais.

Como mencionado por @hyperslug, por favor esclarecer :

  • E se houver 3 "d"?
  • E se houver apenas 1 "d"?
por 12.08.2010 / 11:24
0

Então, apenas para esclarecer.

Para qualquer linha com um determinado valor, ela executa um cálculo matemático e gera a resposta no final da linha?

Haverá apenas duas letras iguais por célula, e é sempre o maior número de células menos o menor número de células?

Se sim, então deve ser fácil o bastante, contanto que você possa primeiro classificar por letra e, em seguida, por índice (para classificar por índice, tenha apenas uma inicial 1,2,3 ... n + 1 como uma coluna). maneira você terá algo como: a, a, b, b, c, c, d, d, e, e, f, f Eu não estou 100% na sintaxe do excel, mas isso deve lhe dar um bom começo para 10 .

    
por 12.08.2010 / 09:48
0

Eu dividiria o problema e usaria algumas colunas extras para etapas intermediárias, o que você tem em sua explicação. Você pode ocultar os cálculos intermediários ou combiná-los em uma grande fórmula complicada, se necessário.

Então, começando na 7ª coluna, longe de onde você quer a resposta, e assumindo que você só quer lidar com a primeira ocorrência, G10:

=MATCH(D10,D$1:D9,0)

H10:

=OFFSET(B10,G10-ROW(G10),0)

Então F10 pode ser:

=B10-H10

Colocá-lo em conjunto dá uma fórmula:

=B10-OFFSET(B10,MATCH(D10,D$1:D9,0)-ROW(B10),0)

Se você não quer erros, pode agrupar tudo em uma função IFERROR .

Mais elegantemente, e se você quiser remover todas as ocorrências de "d", ou se houver apenas uma outra ocorrência, use a fórmula:

=B10-SUMIFS($B$1:B9,$D$1:D9,D10)

    
por 12.08.2010 / 10:12