删除空白的Excel数据透视表条目

我有一个数据透视表,基于PowerPivot在行中的多个级别。 相当多的元素都是空白的。 有没有办法抑制空白行?

我的数据透视表目前看起来像这样。

Product1 Release 1 Iteration 1 (blank) Iteration 2 (blank) Release 2 (blank) (blank) Product2 (blank) Product3 Release 1 Iteration 1 Sprint 1 (blank) (blank) (blank) 

这就是我想要的样子

 Product1 Release 1 Iteration 1 Iteration 2 Release 2 Product2 Product3 Release 1 Iteration 1 Sprint 1 

这只是一个例子。 我试图设置每个级别的filter不显示空白,但如果我筛选每个级别来隐藏空白字段的数据透视表中没有任何项目。 看来,Excel结束筛选每个级别有任何空白值。

不知道我是否有道理或提供足够的信息进行故障排除。 我现在几乎脑子已经死了,所以我很抱歉。

请让我知道,如果没有任何意义,或者如果我可以提供任何额外的信息,以澄清我想要做什么,遇到什么。

谢谢。

编辑:改变了代码块更清晰,并添加了“后”代码块来显示我想要的。 我想问题是,整个数据透视表的行的“深度”必须相等。 例如,如果我有3个缩进的第一个项目,其他人也必须显示3个缩进值的数据。 如果我隐藏空白,并导致第一个项目的数据缩进值1,它将隐藏其他项目的非空白,如果它们出现在1缩进后。 仍然不确定是否有任何意义:)我需要一些睡眠。

我认为你应该能够检查Show items with no data on rows Show items with no data on columns和/或在数据透视表选项下的显示中显示Show items with no data on columns

我最终使用一个扁平的数据透视表,而不是从PowerPivot“pipe理”屏幕。 这似乎正在做我所需要的。

我需要解决完全相同的问题,但是想要在更改pivottable过滤或刷新数据时自动隐藏这些行,所以我写了一个从持有pivottable的表上的“Worksheet_PivotTableUpdate”事件调用的函数,尽pipe如果你愿意的话,你可以把它从一个button上取下来。 这最初做了这个工作,通过扫描在透视表中的每一行,隐藏它,如果它是可见的,不需要(如行的第一个单元格是“(空白)”),或显示它,如果它是隐藏的,应该不会的,否则就把它隐藏起来或者看起来就像是一样。

但是,我发现这个函数的运行速度非常慢,所以这里是我的下一个尝试,它首先隐藏数据透视表中的所有行,然后find第一列中的所有空白单元格,将它们添加到范围对象中,然后隐藏该范围内的每个单元格的整个行。 这个版本工作速度快十倍:-)

传入可转位表所在工作表的名称,可转换表的名称以及要在需要隐藏的行中查找的可选string; 如果不是由调用函数提供的,则默认为“(空白)”。

如果我犯了任何人的variables或函数命名约定(我只是一个黑客;-))提前道歉

 Sub FixBlankPivotRowsV2(ByVal SheetName As String, ByVal PivotName As String, Optional HideDefn as String = "(blank)") Dim CurrPivot As PivotTable Dim CurrRow As Range Dim BlankRange As Range 'NB This is where we'll build the range of things to hide, which will initially be Nothing, as we never initialise it. Dim oldStatusBar As Boolean 'Show a nice message in the status bar oldStatusBar = Application.DisplayStatusBar Application.DisplayStatusBar = True Application.StatusBar = "Hiding blank entries in " & SheetName & ", back in a sec..." Application.ScreenUpdating = False 'Get the pivottable to work with Set CurrPivot = ActiveWorkbook.Sheets(SheetName).PivotTables(PivotName) 'Unhide all of the pivot rows first CurrPivot.RowRange.Rows.EntireRow.Hidden = False 'Loop around each row in the pivottable For Each CurrRow In CurrPivot.RowRange.Rows If CurrRow.Offset(0, 0).value = HideDefn Then If BlankRange Is Nothing Then 'This is the first blank row we've found, so just set the range up to be the first cell of that range Set BlankRange = CurrRow.Offset(0, 0) Else 'Add the newly found blank row to the range using a Union Set BlankRange = Union(BlankRange, CurrRow.Offset(0, 0)) End If End If Next 'Only hide things if there's anything to hide! If BlankRange Is Nothing Then Debug.Print "Nothing to hide!" Else BlankRange.EntireRow.Hidden = True End If 'Set the status bar back the way it was Application.ScreenUpdating = True Application.StatusBar = False Application.DisplayStatusBar = oldStatusBar End Sub 

我寻找了一种方法来使用Go To Specialtypes的函数来select第一列中的所有“空格”单元格,但找不到任何适合该法案的内容,所以请让我知道如果您知道如何做这样的事情会更快。

我希望这可以帮助那里的人!

尝试select数据透视表“空白”中的单元格按删除button,然后按空格键。

不知道为什么或如何工作,但我收集了数据透视表中包含(空白),然后热空格键的单元格之一。 然后我点击返回键,同一列中的所有(空白)单元格变为空白。 对表格中的其他列重复此操作。