Incrementa um valor de célula a cada 23 linhas

0

Eu tenho a declaração abaixo a cada 23ª linha em um formato CSV de planilha do Excel (não há fórmulas no documento, apenas assumi que usar o Excel seria a maneira mais fácil de mudar isso!)

wp_pos=(13.0479,0.100,-165.4428) - os valores são sempre diferentes

Eu quero mudar cada ocorrência do segundo valor, (neste caso, 0,100)

Desejo alterá-lo para um valor total de 'valor de célula + 0,200 (ou seja, 0,30)

Se o documento for colocado no Excel, a linha

A célula A é wp_pos=(13.0479,0.100)

A célula B é 0,100 < - é esse valor que desejo alterar

Como faço para cada 23ª linha?

    
por Tonto 10.07.2013 / 01:08

2 respostas

3

Se a célula A contiver wp_pos=(13.0479,0.100,-165.4428) , o primeiro passo será dividir os valores. Então, selecione a coluna A e vá para Data/Text to Columns . Escolha vírgula os delímetros.

Agora você terá

A = wp_pos=(13.0479
B = 0.100
C = -165.4428)

Na coluna D1, coloque

=if(mod(row(),23)=0,B1+.2,B1)

Isto irá verificar se o número da linha é divisível por 23 exatamente, e em caso afirmativo, D1 irá conter B1 + .2, caso contrário, ele conterá B1

Em E1 put

=concatenate(A1,",",D1,",",C1)

Isso unirá tudo novamente. Copie D1 e E1 para o comprimento dos seus dados

Agora você pode copiar a coluna E1 e colar valores especiais em uma nova planilha, para obter fórmulas e exportar.

    
por 10.07.2013 / 02:35
0

Minha proposta abaixo assume wp_pos=(13.0479,0.1,-165.4428) na coluna A será substituída por wp_pos=(13.0479,0.3,-165.4428) na mesma coluna (onde quer que "wp_pos" ocorra nesta coluna), mas com a leitura da pergunta e comentários, isso pode não ser o requisito. Nesse caso, ignore-me!

Eu tenho uma fórmula um pouco complicada - não sei se é interessante:

=REPLACE(A4,SEARCH(",",A4,1)+1,SEARCH(",",A4,SEARCH(",",A4,1)+1)-SEARCH(",",A4,1)-1,TEXT(VALUE(MID(A4,SEARCH(",",A4,1)+1,SEARCH(",",A4,SEARCH(",",A4,1)+1)-'SEARCH(",",A4,1)-1)+0.2),"@"))

Adicionado : versão ligeiramente simplificada:

=REPLACE(A4,SEARCH(",",A4,1)+1,SEARCH(",",A4,SEARCH(",",A4,1)+1)-SEARCH(",",A4,1)-1,MID(A4,SEARCH(",",A4,1)+1,SEARCH(",",A4,SEARCH(",",A4,1)+1)-SEARCH(",",A4,1)-1)+0.2)

Eu suponho que poderia, possivelmente, ser simplificado ainda mais.

Eu abordaria a inserção dessas fórmulas de uma maneira um pouco diferente, mas estou assumindo que wp_pos= é um critério que podemos usar? Em vez de toda 23ª linha. Se não, então me ignore novamente!

De qualquer forma, caso seja de interesse, mas peço desculpas por ser um pouco elaborado :

  • Se os dados ainda não tiverem cabeçalhos de coluna, crie uma linha de cabeçalho fictícia. Basta inseri-lo na parte superior, digite Heading1 e arraste-o para a direita. Arraste uma coluna além da última coluna ocupada.
  • Use o AutoFiltro e, na primeira coluna, escolha Custom Filter e 'começa com', digite 'wp_pos'.
  • Clique na primeira célula de dados (da primeira coluna) e pressione Ctrl-Shift-Down para destacar na parte inferior.
  • Pressione Ctrl-Shift-Right para estender a seleção até o final.
  • Shift-Right para incluir a coluna em branco.
  • Pressione Ctrl . (period) para transformar a célula no canto superior direito da célula ativa.
  • Ctrl-Shift-Right para recolher a seleção para apenas esta coluna. Você pode ter que pressionar isso algumas vezes, até que apenas esta coluna em branco seja selecionada.
  • Digite a fórmula na célula ativa, alterando A4 para o que for o número da linha atual.
  • Pressione Ctrl-Enter para preencher essa fórmula nas células selecionadas.

Você não pode Copy/Paste-Special, Values com a seleção atual. Portanto, você precisa remover o filtro, selecionar essa nova coluna e, em seguida, copiar / colar-especial, valores (sobre a mesma coluna). Em seguida, copie a mesma coluna novamente, selecione a primeira coluna. Clique com o botão direito do mouse para encontrar o Colar especial e clique na opção para pular espaços em branco . As células wp_pos originais serão substituídas, mas as outras permanecerão intactas.

Como eu disse, elabore! Mas este esboço pode conter algumas informações úteis (para alguém ..).

    
por 10.07.2013 / 22:30