Preencha o Excel, mas com base em vários valores

6

Eu tenho planilhas (não criadas por mim) que têm entradas em branco em uma coluna onde elas realmente devem ter dados. Eu quero pegar cada célula vazia e preenchê-la com o valor mais próximo acima dela. Estou procurando a menor intervenção manual possível, porque vou ter que fazer isso repetidamente.

Eu pensei que alguma versão anterior do Excel, ou talvez outra planilha do passado distante, faria isso por padrão - ou seja, se você selecionasse a coluna com foo e bar e escolhesse o equivalente a "preencher", você obteria o que está na coluna WANT. O que eu realmente obtenho no Excel é a coluna GET.

HAVE:            WANT:           GET:
foo     1        foo     1       foo     1
        2        foo     2       foo     2
bar     1        bar     1       foo     1
        2        bar     2       foo     2
        3        bar     3       foo     3

Estou preocupado que isso possa precisar que uma macro seja feita corretamente. Eu costumava ser um gênio com macros do Excel e, de repente, eles estavam todos em VB.

Minha posição de recuo será despejar tudo para o CSV e escrever um script Python, mas se houver alguma maneira de fazer isso no Excel, isso seria muito preferível. Mesmo que envolva alguns passos manuais diferentes, tudo bem; apenas não um passo por grupo de linhas. Isto é, um processo de "copiar a coluna, fazer X para ela, recortar e colar de volta" funcionaria, mas "fazer X para cada ocorrência de foo ou barra" não funcionaria. Os arquivos são grandes demais para isso.

Quaisquer pensamentos são apreciados!

    
por Jenn D. 10.06.2010 / 17:40

2 respostas

7

Sr. O Excel tem a resposta para versões pré-Ribbon do Excel. Abaixo estão as instruções para o Excel 2007. Com foo / bar na coluna A e seus dados na coluna B:

  1. Selecione todos os dados na coluna A, de cima para baixo.
  2. Clique em Início- > Localizar & Selecione > Vá para Especial
  3. Clique em "Blanks" e clique em "Ok". ( Neste ponto, todos os espaços em branco na coluna devem ser selecionados, e a célula A2 deve ser a célula ativa. )
  4. Pressione "=" e, em seguida, pressione para cima para selecionar a célula A1.
  5. Pressione Ctrl Digite para copiar a fórmula em todas as células selecionadas.

Optional Step 7 : Se você precisar apenas dos valores, copie toda a coluna e "Colar especial" apenas os valores acima.

    
por 10.06.2010 / 22:16
2

Para fazer isso manualmente:

Adicione uma coluna (B) entre a coluna foo-bar (digamos A) e a coluna numérica (agora C).

A fórmula em B1 é algo como =A1 , em B2 (e copiada até o final dos dados) =if(A2="",B1,A2) . A coluna B agora tem as foo-bars quase como você deseja, mas elas são o resultado de fórmulas ao invés de texto.

Copie a coluna B e paste special na coluna A como valores.

Agora você pode excluir a coluna B.

Se você tiver a ideia, provavelmente é mais rápido fazer isso do que anotar a descrição, mas se você preferir um script Python ou não dependerá do número de planilhas ...

    
por 10.06.2010 / 18:07