Отображение критериев фильтрации в распечатке (Microsoft Excel)
Microsoft Excel включает несколько отличных инструментов, которые помогут вам фильтровать большие таблицы данных, чтобы они включали только ту информацию, которую вы хотите отображать. По сути, фильтры позволяют «разрезать и нарезать» ваши данные, пока вы не получите именно то, что хотите.
При печати отфильтрованных данных вам может потребоваться знать, какие фрагменты и кубики были сделаны для исходных данных. Есть несколько способов отображения критериев фильтрации. Один из простых способов — использовать расширенные возможности фильтрации Excel, которые требуют создания небольшой таблицы критериев для ваших данных. Если таблица критериев является частью того, что вы печатаете, вы можете довольно легко увидеть свои критерии фильтрации.
Если вы используете автофильтр, вам нужно использовать другой подход. Один из таких подходов подробно описан на сайте Джона Уокенбаха:
http://j-walk.com/ss/excel/usertips/tip044.htm
Это решение использует определяемую пользователем функцию для возврата любых критериев фильтрации, используемых в текущем столбце. Функцию можно использовать в ячейке этого столбца для отображения критериев. Если вы используете расширенную фильтрацию, то макро-подход немного сложнее. Следующие макросы (их два в списке) проверяют, какие расширенные критерии используются, а затем помещают критерии в левую часть заголовка.
Sub AddFilterCriteria() Dim strCriteria As String strCriteria = FilterCriteria() If strCriteria = "" Then strCriteria = "No Filtering Criteria" Else strCriteria = "Filter Criteria:" & Chr(10) & strCriteria End If ' add Criteria string to Header/Footer With ActiveSheet.PageSetup .LeftHeader = strCriteria End With End Sub Function FilterCriteria() As String Dim rngCriteria As Range, col As Range, cel As Range Dim strCriteria As String, r As Integer, c As Integer Const strCriteriaRange As String = "Criteria" FilterCriteria = "" On Error Resume Next 'Set Criteria-Range reference Set rngCriteria = Range(strCriteriaRange) If Err <> 0 Then Exit Function On Error GoTo 0 ' Create Criteria String c = 0 For Each col In rngCriteria.Columns c = c + 1 ' CriteriaRange Columns r = 1 ' CriteriaRange Rows For Each cel In col.Cells If r = 1 Then strCriteria = strCriteria & "Criteria" _ & c & " (" & cel.Value & ") = " Else strCriteria = strCriteria & "'" & cel.Value & "'" If IsEmpty(cel.Offset(1, 0)) Then 'Add New row Char if not Last Criteria Column If c < rngCriteria.Columns.Count Then strCriteria = strCriteria & Chr(10) End If Exit For End If strCriteria = strCriteria & " " End If r = r + 1 Next cel ' next criteria row Next col ' next criteria column FilterCriteria = strCriteria End Function
Чтобы использовать этот макрос, просто запустите макрос AddFilterCriteria после настройки расширенной фильтрации. Макрос считывает таблицу критериев и объединяет критерии в строку, которая помещается в левый заголовок.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3248) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-visible_Filter_Criteria_on_a_Printout [Отображение критериев фильтрации в распечатке]
.