Preencher uma fórmula no Excel para um intervalo esparso

0

Estou criando uma folha do excel a partir do livro de tabela de som de um tanque de armazenamento de combustível, onde os valores de volume foram dados para cada quinto centímetro. Eu tenho que preencher as células vazias com os valores de interpolação para usar a função VLookUp depois, a fim de obter o volume como uma função de soar (primeira coluna) e trim (eixo x). Consegui inserir quatro linhas vazias entre cada valor dado. Em seguida, preencho as células intermediárias interpolando os valores das linhas superior e inferior. Em seguida, copio o intervalo de interpolação e colo no intervalo vazio. Isso é repetido centenas de vezes. Então, eu me pergunto se poderia haver uma maneira mais fácil, pois meu número total de tanques é de cerca de 20 e a profundidade (eixo y) é de cerca de 10000 cm. O problema é que, se eu copiar e colar apenas uma fórmula, a célula de destino vazia ainda será substituída pelo valor vazio. Caso contrário, eu poderia reutilizar as fórmulas do primeiro tanque.

...   
...  
125     475.4   474.9   474.3   473.7   473.1   472.4   471.8   471.2 ...    
126     475.4   474.9   474.3   473.7   473.1   472.4   471.8   471.2 ...   
127     474.7   474.1   473.5   472.9   472.3   471.6   471.0   470.4 ...   
128     473.9   473.3   472.8   472.1   471.5   470.9   470.3   469.6 ...   
129     473.2   472.6   472.0   471.3   470.7   470.1   469.5   468.8 ...   
130     472.4   471.8   471.2   470.6   469.9   469.3   468.7   468.0 ...  
131                                 
132                                 
133                                 
134                                 
135     469.3   468.7   468.0   467.4   466.8   466.2   465.5   464.9 ...  
136                                 
137                                 
138                             
139                             
140     466.1   465.5   464.9   464.3   463.6   463.0   462.4   461.8 ...  
141                             
142                             
143                             
144                             
145     463.0   462.4   461.8   461.2   460.5   459.9   459.3   458.6 ...  
146                             
147                             
148                             
149  
...  

Obrigado pela sua atenção.

    
por off-signer 14.11.2017 / 11:01

1 resposta

2

Com base no que eu entendi melhor, sugiro uma solução baseada principalmente na função OFFSET e em duas colunas auxiliares. Isso é feito para uma única coluna. Você precisará repetir o mesmo para todas as colunas.

Esta solução envolve recriar toda a coluna em outro lugar através da fórmula OFFSET e, em seguida, você precisa copiar e colar especial - > Valores de volta à coluna original.

Supondo que seus dados estejam nas Células B1: B16. Agora crie duas colunas auxiliares. Uma coluna à esquerda com sequência repetitiva 0 1 2 3 4. Tudo o que você precisa fazer é selecionar esse intervalo e simplesmente colá-lo em todas as linhas aplicáveis abaixo. A seqüência deve repetir novamente nas células coladas. Da mesma forma, uma coluna à direita com sequência repetitiva 0 4 3 2 1.

Agora, em D1, coloque a seguinte fórmula e arraste-a até o comprimento desejado da coluna.

=IF(ISNUMBER(B1),B1,OFFSET(B1,-VALUE(A1),0)-(((OFFSET(B1,-VALUE(A1),0)-OFFSET(B1,VALUE(C1),0))/5)*A1))

Agora, basta copiar-colar - > Colar especial - > Valores, Coluna D para outro local e reconstruir toda a sua folha dessa maneira.

Dessa forma, você não precisa copiar manualmente a fórmula ajustando as células do valor final novamente entre os dois valores finais.

Suposições -

  1. Existem intervalos exatos de 4 linhas entre todas as células aplicáveis.

  2. A extrapolação não é baseada em nenhuma matemática complexa, uma simples subtração de volumes iguais entre os dois valores finais. Se você estiver usando alguma matemática complexa, possivelmente você pode precisar de outra solução.

  3. Os valores estão sempre em ordem decrescente de cima para baixo.

Explore esta solução e veja se combina com você.

    
por 14.11.2017 / 19:31