So erhalten Sie mehrzeilige Sortier- / Filterheader in Excel

17

Ich habe eine Tabelle, die 2 Zeilen für Header-Informationen verwendet. Das Filtern durch Auswählen einer Spalte setzt implizit nur eine Zeile mit Kopfzeileninformationen voraus. Die Sortierung enthält ein Kontrollkästchen für die Kopfzeile, mit dem jedoch nur die Behandlung der ersten Zeile als Kopfzeile umgeschaltet wird.

Gibt es eine Möglichkeit, Excel die ersten beiden Zeilen als Überschriften behandeln zu lassen?

Dan Neely
quelle

Antworten:

18

Nein. Lassen Sie die erste Zeile aus Ihrem Bereich aus, wenn Sie automatisch filtern. Auf diese Weise werden die Schaltflächen für den automatischen Filter nur in der unteren Kopfzeile angezeigt und die Daten werden gefiltert. Ich gehe davon aus, dass Ihre zweite Kopfzeile gerade in Ihre 'Daten' aufgenommen wird.

Sie können keine einzelne Zelle auswählen und dies mit Excel herausfinden. Sie müssen den Zellbereich auswählen, den Excel enthalten soll.

DaveParillo
quelle
Es ist. Ich wusste nicht, dass ich eine bestimmte Zelle auswählen konnte, um die Filterung zu starten, anstatt eine Spaltenauswahl vorzunehmen.
Dan Neely
7

Eine einfache Möglichkeit, die Sortierfunktion mit mehreren Kopfzeilen auszuführen, besteht darin, eine leere Zeile direkt über der Zeile einzufügen, nach der Sie sortieren möchten (im Idealfall befindet sie sich ganz unten in Ihrer Kopfzeile. Wenn nicht, machen Sie es so.) . Klicken Sie dann auf die 'Zeilennummer', die die leere Zeile hervorhebt. Klicken Sie mit der rechten Maustaste auf diese Zeile und wählen Sie "Ausblenden". Die neue, leere Zeile verschwindet und die Überschrift wird so angezeigt, wie Sie es möchten. Excel interpretiert Ihre Kategoriezeile als Überschrift.

George Cahill
quelle
2

Wenn Sie eine ganze Zeile auswählen (indem Sie die Zeilennummer links von der Zeile auswählen) und dann Ihren Filter aktivieren (Daten> Filter), werden Filter für alle Elemente unterhalb der ausgewählten Zeile angezeigt und alle darüber liegenden Elemente ignoriert.

user291695
quelle
Dies ist die richtige und einfachste Antwort. Dies funktioniert in Excel 2016, da dies eine viel ältere Frage ist.
Shawn
Vielen Dank! Warum machen es alle anderen hier so kompliziert?
user291695
@ user291695: Ich vermute ab dem OP-Datum, dass dies wahrscheinlich für eine ältere Version von MS Office wie für ältere Antworten der Fall war und die neueren Antworten einfach keinen Sinn ergeben. Ich weiß es nicht genau.
Fr0zenFyr
1

So filtern Sie eine Liste mit 2 Kopfzeilen, wobei die zweite Zeile die Spaltenüberschriften enthält:

  • Schneiden Sie die erste Reihe
  • Filter ausschalten
  • Aktivieren Sie die Filterung erneut, damit die zweite Zeile gefiltert wird. Dies teilt Excel mit, welche Zeile die Spaltenüberschriften enthält.
  • Fügen Sie die erste Zeile wieder oberhalb der Zeile mit den Filtern und Spaltenüberschriften ein
  • Überprüfen Sie anhand der Spaltenüberschriften in der zweiten Zeile, ob der Filter jetzt funktioniert.
PeterJHill
quelle
1

Okay, das Folgende funktioniert in Excel 2010, auch nach dem Speichern der Datei als Excel 2007 und dem erneuten Öffnen (also vermutlich auch in Excel 2007 ...)

Angenommen, ein 3-Zeilen-Header. Stellen Sie den Tabellenkalkulationsfilterbereich auf Start bei Zelle $ A $ 4 ein und stellen Sie sicher, dass er den gesamten Umfang der Daten abdeckt, die Sie sortieren möchten. SPEICHER DIE DATEI.

Von nun an behandelt jede Sortierung die Zeilen 1 bis 3 als Überschriften und sortiert daher nur noch ab Zeile 4. - WENN Sie den Filterbereich nicht ändern oder aufheben ...

deedgess
quelle
Die Antwort von deedgess hat bei mir funktioniert. Wenn Sie einen Filter hinzufügen, geht Excel davon aus, dass jede Zeile darüber eine Überschrift ist. In meinem Fall habe ich einen 2-Zeilen-Header. Ich habe Zeile 2 ausgewählt und den Filter aktiviert. Dann habe ich die benutzerdefinierte Sortierung ausgewählt und das Kontrollkästchen für die Überschrift aktiviert. Bei der Sortierung blieben sowohl Zeile 1 als auch Zeile 2 als Header erhalten.
1

Ich weiß, dass ich auf SuperUser und nicht auf StackOverflow bin, aber die Lösung für dieses Problem ist die Verwendung von VBA-Code in Excel 2016.

Ich habe ein ähnliches (komplexeres) Problem.

Ich möchte einige Filter für explizite Spalten hinzufügen, aber nicht für Zeile 1 nur für Zeile 2, wie Sie in der folgenden Abbildung sehen können.

Bildbeschreibung hier eingeben

Ich habe versucht, Excel GUI zu verwenden, aber dies scheint unmöglich zu sein. Deshalb habe ich folgenden Code geschrieben:

'********************************************************
'* 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

Die Logik dieses Codes ist

A. Vereinigen Sie vertikal verbundene Header-Zellen, um Filter in Zeile 2 hinzuzufügen

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

Die Zellen A1 und A2 sind nicht eingetaucht.

B. Fügen Sie in allen Zellen von Zeile 2 AutoFilter hinzu

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

AutoFilter wird für Zellen in allen Zeilen außer Zeile 1 generiert.

C. Entfernen oder verbergen Sie die FILTER Combobox für einige Spalten

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

DropBox der Spalte "C" ist ausgeblendet.

D. Verbinden Sie nicht verbundene Zellen, um den ursprünglichen Zustand wiederherzustellen

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

Die Zellen A1 und A2 werden wieder zusammengeführt.

schlebe
quelle
0

Excel 2007 erkennt auf intelligente Weise, ob mehrzeilige Überschriften vorhanden sind. Ich habe gerade ein einfaches Experiment gemacht, bevor ich dies geschrieben habe.

Positionieren Sie den Cursor vor der ersten Sortierung direkt unter der Überschrift. Das ist es! Sortieren ist in Ordnung, Filtern ist in Ordnung. Excel hat die erste Zeile meiner Überschriften ignoriert. Es wird nur die 2. Zeile als realer Header verarbeitet.

thenonhacker
quelle
3
Nein, das funktioniert nicht. Es ist richtig, dass Excel 07 in einigen Fällen mehrzeilige Überschriften automatisch erkennt , diese basieren jedoch auf dem Zellinhalt und nicht auf der Zelle, auf die Sie klicken. Handelt es sich bei den ersten beiden Zeilen beispielsweise um Text und ist alles darunter numerisch, wird in Excel davon ausgegangen, dass die ersten beiden Zeilen beide Überschriften sind.
Josh
0

Markieren Sie die zu sortierenden Zellen (alle mit Ausnahme der Überschriften) und wählen Sie dann Filter aus.

Laurah
quelle
0

Ich verwende Excel 2010. Um die Überschriftenzeilen (z. B. die ersten 4 Zeilen) beizubehalten, markieren Sie Zeile 5 und aktivieren Sie dann die Filter. Zeilen 1 - 4 sind vom Filter ausgeschlossen.

Tony Bray
quelle
0

Ich hatte das gleiche Problem, daher führte mich jeder Beitrag dazu, wie das für mich funktioniert (bis jetzt).

  1. FÜGEN Sie eine leere Zeile unterhalb der Kopfzeile (n) für mehrere Zeilen hinzu (wenn Ihre Kopfzeile 5 Zeilen mit Informationen und / oder ungeraden Zellengrößen enthält, lautet Ihre NEUE leere Zeile Zeile6).

  2. Klicken Sie auf Zeile 6 (ganz links / klicken Sie tatsächlich auf die "6" (Excel Row #), um die gesamte Zeile / bis unendlich auszuwählen). Achten Sie darauf, KEINE andere ZELLE anzuklicken, bis Sie # 3 und # 4 unten abgeschlossen haben, oder Sie werden die Zeile "abwählen". Sie möchten es "Ausgewählt" behalten.

  3. Gehen Sie zur Registerkarte ANSICHT> Fenster einfrieren> Einfrieren aufheben (löschen Sie dies zuerst)> Einfrieren. Dies friert Ihren 5-Zeilen-Header und auch die leere Zeile (Zeile 6) ein.

  4. Halten Sie "ALT" gedrückt und drücken Sie dann die folgenden Tasten: D, F, F (dies ist die Verknüpfung zum Ein- und Ausschalten / Löschen aller Filter auf dem Blatt.

  5. Von diesem Punkt an müssen Sie diese Filter immer dann aktivieren, wenn Sie dieses Blatt wieder verwenden (wenn Sie sie zuvor aus irgendeinem Grund deaktiviert haben). > Schalten Sie alle Ihre Filter EIN (wie in Nr. 4 erläutert).

Es tut mir leid, dass Sie so wortreich sind, aber nachdem Sie es ein paar Mal gemacht haben, werden Sie es wahrscheinlich lieben (wenn Sie häufig Filter verwenden).

JohnB
quelle
0

Schritt 1 Markieren Sie die untere Kopfzeile. und dann können Sie nur die Zellen in einer Zeile oder die gesamte Zeile auswählen.

Schritt 2 Klicken Sie als nächstes auf "Sortieren & Filtern" auf der Registerkarte "Startseite" und wählen Sie "Filtern" aus. Excel fügt allen Spaltennamen Filterpfeile hinzu.

Schritt 3 Klicken Sie dann auf einen Pfeil und wählen Sie später eine Sortieroption aus, um die gesamte Tabelle nach dieser Spalte zu sortieren.

Schritt 4: Klicken Sie abschließend auf "Sortieren & Filtern" und wählen Sie erneut "Filtern", wenn Sie die Pfeile entfernen möchten, aber den vom Filter definierten Sortierbereich beibehalten möchten. Jetzt können Sie normal sortieren. Excel ignoriert die zusätzlichen Kopfzeilen

pte coaching
quelle
-1

In einigen Fällen können Sie auch einen Wert in die zweite Spalte eingeben, der den Filter einschließt, und dann den Text dieser Zelle mit der Hintergrundfarbe der Zelle abgleichen. Nicht besonders hübsch, da der Header (Zeile 1) nicht horizontal in der Zelle zentriert ist, aber es funktioniert ...

Tony
quelle
-1

Ich hatte das gleiche Problem und fand eine Lösung, die für mich funktioniert. Für jede Zeile in der Kopfzeile, die Sie nicht sehen möchten, machen Sie die Buchstaben weiß (oder die Hintergrundfarbe). Wenn Sie sortieren, werden in den Zeilen nicht alle Überschriften angezeigt. Schade, wenn Sie etwas ändern möchten, aber in diesem Fall können Sie sie auch hellgrau machen.

Job Oosterhuis
quelle