Microsoft Excelには、表示したい情報のみを含めるように大きなデータテーブルをフィルタリングするのに役立ついくつかの優れたツールが含まれています。事実上、フィルターを使用すると、必要なものが得られるまでデータを「スライスアンドダイス」することができます。

フィルタリングされたデータを印刷するときは、元のデータに対してどのようなスライスとダイシングが行われたかを知りたい場合があります。フィルタリング基準を表示するには、いくつかの方法があります。簡単な方法の1つは、Excelの高度なフィルタリング機能を使用することです。これには、データ用の小さな基準テーブルを設定する必要があります。基準テーブルが印刷物の一部になっている場合は、フィルタリング基準を非常に簡単に確認できます。

AutoFilterを使用する場合は、別のアプローチを使用する必要があります。そのようなアプローチの1つは、JohnWalkenbachのサイトで詳しく説明されています。

http://j-walk.com/ss/excel/usertips/tip044.htm

このソリューションは、ユーザー定義関数を使用して、現在の列で使用されているフィルタリング基準を返します。この関数をセルのその列で使用して、基準を表示できます。高度なフィルタリングを使用している場合、マクロアプローチはもう少し複雑です。次のマクロ(リストには2つあります)は、どの高度な基準が機能しているかを調べ、ヘッダーの左側に基準を配置します。

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_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3248)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Showing_Filter_Criteria_on_a_Printout [プリントアウトにフィルター基準を表示する]