数据透视表 - 过滤行

时间:2013-09-26 18:58:22

标签: excel excel-vba pivot-table excel-2013 vba

我正在为我拥有的数据创建数据透视表。数据如下所示:

    ID  Policy_July Policy_June Policy_May  Policy_April            Label

    13  High        Med         High        High        High        Good
    2   Low         Low         Low         Low         Low         Good
    3   Low         Low         Low         Low         Low         Good
    4   High        Med         High        High        High        Good
    5   High        Low         High        High        High        Good
    6   Low         Low         Low         Low         Low         Bad
    7   High        Med         High        High        High        Bad
    8   High        Low         High        High        High        Bad

我将7月份的结果与其他月份进行比较。有没有办法可以为行添加过滤器以使我能够将“Policy_June”更改为“Policy_March”?基本上,我可以在数据透视表中使用过滤器来代替列的过滤器吗?如果是的话,请您指导我如何做到这一点?

同样,我正在寻找的是在数据透视表上方有一个过滤器按钮,可以让我将“Policy_June”更改为“Policy_April”。

其次,有没有一种方法可以将“Grand Total”作为一个列(就像我在数据透视表底部一样)?我试图将“Bad”和“Good”的值相加为“High”,并在黄色列中显示结果。

如果您需要任何其他说明,请与我们联系。

1 个答案:

答案 0 :(得分:1)

您可以通过为其提供类似于以下的布局来规范化数据:

ID   PolicyMonth  Status  Label
13   July         High    Good
13   June         Med     Good
13   May          High    Good
...

并创建一个垂直ID(行标签)和水平(列标签)方向状态的数据透视表。然后,您可以过滤行和列标签以获取单个(或多个)值。

不确定您希望如何处理交叉点数据(状态,标签),因为您只能默认汇总/计数/平均/最小/最大...这可能需要将低/中/高转换为数字(0,1,2)和行总数的平均值。

修改

根据您的意见,我了解您想要分析Delta ......

open image in new tab to get larger size

  • 列A..G包含原始数据

  • 列H..L包含根据公式

    的数字表示

    H5:=IF(B5="High",2,IF(B5="Med",1,0))

  • 单元格C1和C2包含要比较的月份名称...它们与H4..L4中的标题相同;随意改变...使用值列表和单元格下拉列表进行数据验证是可以想象的

  • 列M - 大技巧 - 使用INDEX和MATCH函数计算,即

    M4:=INDEX(H5:L5,1,MATCH($C$1,$H$4:$L$4,0))-INDEX(H5:L5,1,MATCH($C$2,$H$4:$L$4,0))

  • 使用Diff作为行标签创建数据透视表,并将计数(ID)作为数据创建,显示保持平坦(0),向上或向下跳过1或2级...这当然可以是过滤以压制或突出保持平等的那些。

  • Diff中的结果可以使用嵌套的IF进一步处理成DiffText并显示在pivot行而不是Diff

  • 截图中的
  • :3 ID保持不变,3 ID提升1级,2 ID提升2级

  • 如果您向行标签添加ID,数据透视表可以深入到ID级别以显示WHO是好人/坏人

希望这比我的第一次尝试更接近。

在新标签页中打开图片以获得更大的尺寸