数据透视表过滤器

数据透视表过滤器

下面是大量数据及其数据透视表的简单表示

数据

+------+------+
| 项目 | 数据 |
+------+------+
| ABC | S |
| ABC | 你 |
| ABC | S |
| ABC | 你 |
| ABC | 你 |
| XYZ | U |
| XYZ | U |
| XYZ | U |
| XYZ | U |
| XYZ | U |
+------+------+

当我们将数据透视表应用于此数据时,
列标签 - 项目行
标签 - 数据
值 - 数据

我们得到,

+-------+---+---+-------+
|项目 | S |乌 |总计 |
+-------+---+---+-------+
| 美国广播公司 | 2 | 3 | 5 |
| XYZ | | 5 | 5 |
| 总计 | 2 | 8 | 10 |
+-------+---+---+-------+

我们如何才能显示下面的结果,
使用列标签上的值过滤器和标签过滤器的组合
,而不使用行标签过滤器(这是不可行的,因为原始数据有太多的行标签)

+-------+---+---+-------+
|项目 | S |乌 |总计 |
+-------+---+---+-------+
| 美国广播公司 | 2 | 3 | 5 |
| 总计 | 2 | 3 | 5 |
+-------+---+---+-------+

谢谢!

答案1

我认为您也可以在 Excel 2010 中完成这个很好的过滤(而我使用的是 2013)。

在此处输入图片描述

更新

这段代码可以完成以下任务:

Sub hide_pivot_items()
Dim pt As PivotTable
Set pt = ActiveSheet.PivotTables("PivotTable2")
Dim cell As Range

For Each cell In pt.PivotFields("Data").PivotItems("S").DataRange
    If cell.Value = vbNullString Then
        'hiding row
        pt.PivotFields("Proj").PivotItems(ThisWorkbook.ActiveSheet.Cells( _
            cell.Row, pt.PivotFields("Proj").DataRange.Column).Value).Visible = False
    End If
Next
End Sub

只需使用您的实际数据透视表名称,而不是PivotTable2第三行。

相关内容