17

У меня есть электронная таблица, которая использует 2 строки для информации заголовка. Фильтрация путем выбора столбца неявно предполагает только 1 строку информации заголовка. У сортировки есть флажок строки заголовка, но это только переключает обработку первой строки как заголовка.

Есть ли способ заставить Excel обрабатывать первые две строки как заголовки?

13 ответов13

18

Нет. Опустите первый ряд из вашего диапазона, когда вы автоматически фильтруете. Таким образом, кнопки автоматического фильтра появляются только в нижней строке заголовка, и данные фильтруются. Я ожидаю, что прямо сейчас ваша вторая строка заголовка втягивается в ваши «данные».

Вы не можете выбрать одну ячейку, и вам нужно это понять. Вы должны выбрать диапазон ячеек, которые вы хотите включить в Excel.

7

Самый простой способ выполнить функцию сортировки, используя несколько строк заголовка, - вставить пустую строку чуть выше строки, по которой вы хотите отсортировать (в идеале, она должна быть самой нижней в вашем заголовке.Если нет, сделайте это так.) Затем нажмите на номер строки, выделяя пустую строку. Щелкните правой кнопкой мыши по этой строке и выберите «Скрыть». Новая пустая строка исчезнет, оставив заголовок таким, каким вы хотели его видеть, и Excel будет интерпретировать строку категории как заголовок.

2

Если вы выберете целую строку (выбрав номер строки слева от строки), а затем включите свой фильтр (Данные> Фильтр), он даст вам фильтры для всего, что находится под выбранной строкой, и игнорирует все, что находится над ним.

1

Чтобы отфильтровать список с 2 строками заголовков, где вторая строка содержит заголовки столбцов, вот что я сделал.

  • Вырежьте первый ряд
  • Отключить фильтрацию
  • Снова включите фильтрацию, чтобы отфильтровать второй ряд. Это говорит Excel, который является строкой с заголовками столбцов.
  • Вставьте первый ряд снова над строкой с фильтрами и заголовками столбцов.
  • Проверьте, работает ли теперь фильтр с заголовками столбцов во второй строке.
1

Хорошо, следующее работает в Excel 2010, даже после сохранения файла обратно в Excel 2007 и повторного открытия (так что предположительно работает и в Excel 2007 ...)

Предполагая 3 строки заголовка. Установите диапазон фильтра электронных таблиц «Начать с ячейки $ A $ 4» и убедитесь, что он охватывает весь объем данных, которые вы хотите отсортировать. СОХРАНИТЬ ФАЙЛ.

Отныне любой вид будет обрабатывать строки с 1 по 3 как заголовки и, следовательно, сортировать только начиная со строки 4. - Если вы не измените или не отмените диапазон фильтра ....

1

Я знаю, что я использую SuperUser, а не StackOverflow, но решение этой проблемы можно найти с помощью кода VBA в Excel 2016.

У меня похожая (более сложная) проблема.

Я хочу добавить несколько фильтров для явных столбцов, но не для строки 1, а только для строки 2, как вы можете видеть на следующем снимке экрана.

Я пытался использовать Excel GUI, но это кажется невозможным, поэтому я написал следующий код:

'********************************************************
'* 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. Слейте вертикально объединенные ячейки заголовка, чтобы добавить фильтр в строке 2

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

Ячейки А1 и А2 не объединены.

Б. Добавьте автофильтр во все ячейки строки 2

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

Автофильтр создается для ячеек во всех строках, кроме строки 1.

C. Удалить или скрыть FILTER Combobox для некоторых столбцов

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

DropBox столбца "C" скрыт.

D. Объединить незакрепленные клетки, чтобы восстановить исходное состояние

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

Клетки А1 и А2 снова объединены.

0

У меня была такая же проблема, поэтому вклад каждого привел меня к тому, как дела для меня (пока).

  1. ДОБАВЬТЕ пустую строку под заголовком Multi-row(s) (если ваш заголовок имеет 5 строк информации и / или нечетные размеры ячеек, тогда ваша НОВАЯ пустая строка будет Row6).

  2. Нажмите на Row6 (в крайнем левом углу / на самом деле нажмите "6" (Excel Row #), чтобы выбрать всю строку / до бесконечности). ОБЯЗАТЕЛЬНО НЕ нажимайте ни на одну другую ячейку, пока не закончите # 3 и # 4 ниже или не отмените выделение строки. Вы хотите оставить его "выбранным".

  3. Перейдите на вкладку "ПРОСМОТР"> «Стоп-кадр»> "Разморозить" (сначала очистите ее)> «Стоп-кадр». Это замораживает ваш заголовок из 5 строк, а также пустую строку (row6).

  4. Удерживая нажатой клавишу "ALT", нажмите следующие клавиши: D, F, F (это ярлык для включения и выключения / удаления всех фильтров на листе.

  5. С этого момента, всякий раз, когда вы вернетесь к использованию этого листа и вам понадобятся эти фильтры (если вы ранее отключили их по какой-либо причине), затем> выберите пустую строку (как описано в # 2); > Включите все свои фильтры (как описано в # 4).

Извините, что так многословен, но после того, как вы сделаете это несколько раз, вам, скорее всего, понравится (если вы часто используете фильтры).

0

Excel 2007 может определить, есть ли у вас многострочные заголовки. Я сделал простой эксперимент прямо сейчас, прежде чем писать это.

Перед выполнением первой сортировки поместите курсор прямо под заголовком. Это оно! Сортировка в порядке, фильтрация в порядке. Excel игнорировал 1-й ряд моих заголовков. Он просто обрабатывает 2-й ряд как настоящий заголовок.

0

Выделите ячейки, которые нужно отсортировать (все, кроме заголовков), а затем выберите фильтр.

0

Я использую Excel 2010. Чтобы сохранить строки заголовков (например, первые 4 строки), выделите строку 5, а затем включите фильтры. Ряды 1 - 4 исключены из фильтра.

0

Шаг 1 Выделите нижнюю строку заголовка. и затем Вы можете выбрать только ячейки в строке или выделить всю строку.

Шаг 2, затем нажмите «Сортировка и фильтр» на вкладке «Главная», затем вы можете выбрать «Фильтр». Excel добавляет стрелки фильтра ко всем именам столбцов.

Шаг 3, затем нажмите стрелку, а затем выберите вариант сортировки, чтобы отсортировать всю таблицу по этому столбцу.

Шаг 4, наконец, нажмите «Sort & Filter» и снова выберите "Filter", если вы хотите избавиться от стрелок, но сохраните область сортировки, определенную фильтром. теперь вы можете сортировать нормально, Excel игнорирует лишние строки заголовка

-1

У меня была такая же проблема, и я нашел решение, которое работает для меня. Для каждой строки в заголовке, которую вы не хотите видеть, вы делаете буквы белыми (или цвет фона). При сортировке вы не видите одинаковые заголовки в строках. Плохо, когда вы хотите что-то изменить, но в этом случае вы также можете сделать их светло-серыми.

-1

Другой способ сделать это в некоторых случаях - ввести значение во втором столбце, которое заставит фильтр включить его, а затем привести текст этой ячейки в соответствие с цветом фона ячейки. Не очень красиво, поскольку заголовок (строка 1) не будет горизонтально центрирован в ячейке, но будет работать ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .