Removendo células vazias de um intervalo

Formulação do problema

Temos um intervalo de células com dados que contém células vazias:

 

A tarefa é remover células vazias, deixando apenas células com informações.

Método 1. Áspero e rápido

  1. Selecionando o intervalo original
  2. Pressione a tecla F5, Próximo botão Destaques (Especial). Na janela que se abre, selecione Células vazias(Em branco) e clique OK.

    Removendo células vazias de um intervalo

    Todas as células vazias no intervalo são selecionadas.

  3. Damos um comando no menu para excluir as células selecionadas: clique com o botão direito- Excluir células (Excluir células) com deslocamento ascendente.

Método 2: Fórmula de matriz

Para simplificar, vamos nomear nossos intervalos de trabalho usando Gerente de Nomes (Gerenciador de Nomes) aba Fórmula (Fórmulas) ou, no Excel 2003 e anterior, o menu Inserir - Nome - Atribuir (Inserir — Nome — Definir)

 

Nomeie o intervalo B3:B10 Ter Vazio, intervalo D3:D10 – Nenhum Vazio. Os intervalos devem ser estritamente do mesmo tamanho e podem ser localizados em qualquer lugar um em relação ao outro.

Agora selecione a primeira célula do segundo intervalo (D3) e insira esta fórmula assustadora nela:

=SE(LINHA() -LINHA(NãoVazio)+1>NOTROWS(SimVazio)-COUNTBLANK(SimVazio);””;INDIRETO(ENDEREÇO(MENOR((SE(Vazio<>“”,LINHA(Vazio);LINHA() + ROWS(Existem Vazios))); LINHA()-ROW(Sem Vazios)+1); COLUMN(Existem Vazios); 4)))

Na versão em inglês será:

=SE(LINHA()-LINHA(NãoVazio)+1>LINHAS(Vazio)-CONTADO EM BRANCO(Vazio),””,INDIRETO(ENDEREÇO(PEQUENO((SE(Vazio<>“”,LINHA(Vazio),LINHA() +LINHAS(TemVazio))),ROW()-ROW(NãoVazio)+1),COLUNA(TemVazio),4)))

Além disso, deve ser inserido como uma fórmula de matriz, ou seja, pressione após colar Entrar (como sempre) e Ctrl + Shift + Enter. Agora, a fórmula pode ser copiada usando o preenchimento automático (arraste a cruz preta no canto inferior direito da célula) – e obteremos o intervalo original, mas sem células vazias:

 

Método 3. Função personalizada no VBA

Se houver suspeita de que você terá que repetir frequentemente o procedimento para remover células vazias dos intervalos, é melhor adicionar sua própria função para remover células vazias ao conjunto padrão uma vez e usá-la em todos os casos subsequentes.

Para fazer isso, abra o Editor do Visual Basic (ALT + F11), insira um novo módulo vazio (menu Inserir - Módulo) e copie o texto desta função para lá:

Function NoBlanks(DataRange As Range) As Variant() Dim N As Long Dim N2 As Long Dim Rng As Range Dim MaxCells As Long Dim Result() As Variant Dim R As Long Dim C As Long MaxCells = Application.WorksheetFunction.Max( _ Application.Caller.Cells.Count, DataRange.Cells.Count) ReDim Result(1 To MaxCells, 1 To 1) For Each Rng In DataRange.Cells If Rng.Value <> vbNullString Then N = N + 1 Result(N, 1 ) = Rng.Value End If Next Rng For N2 = N + 1 To MaxCells Result(N2, 1) = vbNullString Next N2 If Application.Caller.Rows.Count = 1 Then NoBlanks = Application.Transpose(Result) Else NoBlanks = Result Fim Se Função Fim  

Não se esqueça de salvar o arquivo e voltar do Editor do Visual Basic para o Excel. Para usar esta função em nosso exemplo:

  1. Selecione um intervalo suficiente de células vazias, por exemplo F3:F10.
  2. Vá para o menu Inserir – Função (Inserir - Função)ou clique no botão Inserir função (Inserir Função) aba Fórmula (Fórmulas) nas versões mais recentes do Excel. Na categoria Usuário definido (Usuário definido) escolha nossa função Sem Espaços.
  3. Especifique o intervalo de origem com vazios (B3:B10) como o argumento da função e pressione Ctrl + Shift + Enterpara inserir a função como uma fórmula de matriz.

:

  • Excluindo todas as linhas vazias em uma tabela de uma só vez com uma macro simples
  • Removendo todas as linhas vazias em uma planilha de uma só vez usando o complemento PLEX
  • Preencher rapidamente todas as células vazias
  • O que são macros, onde inserir código de macro no VBA

 

Deixe um comentário