Como obter cabeçalhos de filtragem / classificação com várias linhas no excel


17

Eu tenho uma planilha que usa 2 linhas para informações de cabeçalho. A filtragem selecionando uma coluna pressupõe implicitamente apenas 1 linha de informações do cabeçalho. A classificação tem uma caixa de seleção de linha de cabeçalho, mas que apenas alterna o tratamento da primeira linha como um cabeçalho.

Existe uma maneira de fazer o Excel tratar as duas primeiras linhas como cabeçalhos?

Respostas:


18

Não. Omita a primeira linha do seu intervalo ao filtrar automaticamente. Dessa forma, os botões de filtro automático aparecem apenas na linha inferior do cabeçalho e os dados são filtrados. Espero que agora sua segunda linha de cabeçalho seja puxada para seus 'dados'.

Você não pode selecionar uma única célula e fazer com que o Excel descubra isso. Você precisa selecionar o intervalo de células que deseja incluir no Excel.


Isto é. Não sabia que podia selecionar uma célula específica para iniciar a filtragem, em vez de fazer uma seleção de coluna.
11119 Dan Neely

7

Uma maneira fácil de realizar a função de classificação usando várias linhas de cabeçalho é inserir uma linha em branco logo acima da linha pela qual você deseja classificar (idealmente, ela é a mais baixa no cabeçalho. Caso contrário, faça isso) . Em seguida, clique no número da 'linha' destacando a linha vazia. Clique com o botão direito do mouse nessa linha e selecione "Ocultar". A nova linha vazia desaparecerá, deixando o cabeçalho da maneira que você deseja e o Excel interpretará a linha da categoria como cabeçalho.


2

Se você selecionar uma linha inteira (selecionando o número da linha à esquerda da linha) e ativar o filtro (Dados> Filtro), ele fornecerá filtros para tudo abaixo da linha selecionada e ignorará tudo acima dela.


Esta é a resposta correta e a mais fácil. Isso funciona no excel 2016, pois é uma pergunta muito antiga.
Shawn

Obrigado! Por que todo mundo aqui está fazendo isso tão complicado?
precisa saber é o seguinte

@ user291695: A partir da data do OP, acho que foi assim que provavelmente foi feito para uma versão mais antiga do MS Office, como nas respostas mais antigas, e as respostas mais recentes simplesmente não fazem sentido. Não sei ao certo embora.
Fr0zenFyr

1

Para filtrar uma lista com 2 linhas de cabeçalho, onde a segunda linha contém os títulos das colunas, aqui está o que eu fiz.

  • Cortar a primeira linha
  • Desativar a filtragem
  • Ative a filtragem novamente para que a segunda linha seja filtrada. Isso informa ao Excel qual é a linha com os títulos das colunas.
  • Cole a primeira linha novamente acima da linha com os filtros e os títulos das colunas
  • Verifique se o filtro agora funciona, com os títulos das colunas na segunda linha.

1

Ok, o seguinte funciona no Excel 2010, mesmo depois de salvar o arquivo como um Excel 2007 e reabri-lo (provavelmente também funciona no Excel 2007 ...)

Supondo um cabeçalho de 3 linhas. Defina o intervalo do filtro da planilha como Iniciar na célula $ A $ 4 e verifique se ele cobre toda a extensão dos dados que você deseja classificar. SALVE O ARQUIVO.

A partir de agora, qualquer tipo tratará as linhas 1 a 3 como cabeçalhos e, portanto, classificará da linha 4 em diante. - A menos que você altere ou cancele a faixa do filtro ....


A resposta da ação funcionou para mim. Quando você adiciona um filtro, o Excel assume que todas as linhas acima dele são um cabeçalho. No meu caso, eu tenho um cabeçalho de 2 linhas. Selecionei a linha 2 e liguei o filtro. Depois, selecionei a classificação personalizada e marquei a caixa quanto ao cabeçalho. Quando a classificação ocorreu, as linhas 1 e 2 permaneceram como cabeçalho.

1

Sei que estou no SuperUser e não no StackOverflow, mas a solução para esse problema pode ser encontrada usando o código VBA no Excel 2016.

Eu tenho um problema semelhante (mais complexo).

Quero adicionar alguns filtros em colunas explícitas, mas não na linha 1, apenas na linha 2, como você pode ver na captura da tela a seguir.

insira a descrição da imagem aqui

Eu tentei usar a GUI do Excel, mas isso parece impossível, então escrevi o seguinte código:

'********************************************************
'* SetFilter()
'********************************************************
'* PUBLIC method to call to define CUSTOM AutoFilter
'* on complex header.
'********************************************************

Sub SetFilter()
  'Compute last row number
  Dim nLast As Long
  nLast = Range("A" & Rows.Count).End(xlUp).Row

  'Lock screen update 
  Application.ScreenUpdating = False

  'Unmerge merged cells to allow adding filter
  Range("A1:A2").MergeCells = False
  Range("B1:B2").MergeCells = False
  Range("C1:C2").MergeCells = False
  Range("D1:D2").MergeCells = False
  Range("E1:E2").MergeCells = False
  Range("F1:F2").MergeCells = False

  'Add filter on row 2 and not 1  
  Range("A2:Z" & nLast).Select
  Selection.AutoFilter

  'Remove (or Hide) filter combobox for some columns
  Selection.AutoFilter Field:=GetColumnIndex("C"), VisibleDropDown:=False
  Selection.AutoFilter Field:=GetColumnIndex("G"), VisibleDropDown:=False
  Selection.AutoFilter Field:=GetColumnIndex("H"), VisibleDropDown:=False

  'Merge unmerged cells to restore previous state
  Range("A1:A2").MergeCells = True
  Range("B1:B2").MergeCells = True
  Range("C1:C2").MergeCells = True
  Range("D1:D2").MergeCells = True
  Range("E1:E2").MergeCells = True
  Range("F1:F2").MergeCells = True

  'Unlock screen update 
  Application.ScreenUpdating = True

End Sub

'********************************************************
'* GetColumnIndex()
'********************************************************
'* return column's index from column letters
'********************************************************

Function GetColumnIndex(sColLetter As String) As Integer
    Dim n As Integer: n = 0
    Dim iMax As Integer: iMax = Len(sColLetter)
    Dim i As Integer
    Dim sChar As String
    Dim c As Integer

    For i = 1 To iMax
        sChar = Mid(sColLetter, i, 1)
        c = 1 + Asc(sChar) - Asc("A")
        n = n * 26 + c
    Next

    If n = 1 Then
      n = 1
    End If

    GetColumnIndex = n
End Function

A lógica deste código é

A. Unmerge as células de cabeçalho mescladas verticalmente para permitir adicionar filtro na linha 2

Range("A1:A2").MergeCells = False

As células A1 e A2 estão inalteradas.

B. Adicione o AutoFiltro em todas as células da linha 2

Range("A2:Z" & nLast).AutoFilter

O AutoFiltro é gerado para células em todas as linhas, exceto a linha 1.

C. Remova ou oculte a caixa de combinação FILTER para algumas colunas

Selection.AutoFilter Field:=GetColumnIndex("C"), VisibleDropDown:=False

DropBox da coluna "C" está oculto.

D. Mesclar células não imersas para restaurar o estado original

Range("A1:A2").MergeCells = True

As células A1 e A2 são mescladas novamente.


0

O Excel 2007 pode detectar com inteligência se você possui cabeçalhos de várias linhas. Fiz um experimento simples agora antes de escrever isso.

Antes de fazer sua primeira classificação, posicione o cursor logo abaixo do cabeçalho. É isso aí! A classificação está correta, a filtragem está correta. O Excel ignorou a primeira linha dos meus cabeçalhos. Ele apenas processa a segunda linha como o cabeçalho real.


3
Não, isso não funciona. É verdade que o Excel 07 pode detectar automaticamente cabeçalhos de várias linhas em alguns casos, mas é baseado no conteúdo da célula, não na célula em que você clica. Por exemplo, se as duas primeiras linhas forem texto e tudo abaixo for numérico, o Excel assumirá que as 2 primeiras linhas são os dois cabeçalhos.
Josh

0

Destaque as células que precisam ser classificadas (todas, exceto os cabeçalhos) e selecione filtro.


0

Estou usando o Excel 2010. Para manter as linhas de cabeçalho (por exemplo, as 4 primeiras), realce a linha 5 e ative os filtros. As linhas 1 a 4 são excluídas do filtro.


0

Eu tinha o mesmo problema, então a contribuição de todos me levou à maneira como funciona para mim (até agora).

  1. ADICIONE uma linha em branco abaixo do cabeçalho de várias linhas (se o cabeçalho tiver 5 linhas de informações e / ou tamanhos de células ímpares, sua NOVA linha em branco será a Linha6).

  2. Clique na Linha6 (à esquerda / na verdade clique no "6" (Nº da linha do Excel) para selecionar a linha inteira / até o infinito). Certifique-se de não clicar em nenhuma outra CÉLULA, até concluir os itens 3 e 4 abaixo ou 'Desmarcar' a linha. Você deseja mantê-lo 'Selecionado'.

  3. Vá para a guia VIEW> Congelar painéis> Descongelar (faça isso primeiro para limpá-lo)> Congelar. Isso congelará seu cabeçalho de 5 linhas e também a linha em branco (linha6).

  4. Mantenha pressionada a tecla "ALT" e pressione as seguintes teclas: D, F, F (este é o atalho para ativar e desativar / limpar / limpar todos os filtros na folha.

  5. A partir deste momento, sempre que você voltar a usar esta planilha e precisar dos Filtros ativados (se você os desativou anteriormente por qualquer motivo), selecione> sua linha em branco (conforme explicado no item 2); > Ligue todos os seus filtros (como explicado no item 4).

Desculpe por ser tão prolixo, mas depois de fazer algumas vezes, provavelmente vai adorar (se você usar muito os filtros).


0

Etapa 1 Destaque a linha do cabeçalho inferior. e, em seguida, você pode selecionar apenas as células em uma linha ou selecionar a linha inteira.

Etapa 2, clique em "Classificar e filtrar" na guia Início e selecione "Filtro". O Excel adiciona setas de filtro a todos os nomes de colunas.

Etapa 3, clique em uma seta e depois selecione uma opção de classificação para classificar a tabela inteira por essa coluna.

Etapa 4, finalmente, clique em "Classificar e filtrar" e selecione "Filtro" novamente se quiser se livrar das setas, mas mantenha a área de classificação definida pelo filtro. agora você pode classificar normalmente, o Excel ignora as linhas extras do cabeçalho


-1

Outra maneira de realizar, em alguns casos, é inserir um valor na segunda coluna que fará com que o filtro o inclua e fazer com que o texto dessa célula corresponda à cor de fundo da célula. Não é tão bonito, já que o cabeçalho (linha 1) não será centralizado horizontalmente na célula, mas funcionará ...


-1

Eu tive o mesmo problema e encontrei uma solução que funciona para mim. Para cada linha do cabeçalho que você não deseja ver, você torna as letras brancas (ou a cor de fundo). Quando você classifica, não vê os mesmos cabeçalhos nas linhas. Muito ruim quando você quer mudar alguma coisa, mas nesse caso você também pode torná-las cinza claro.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.